ЗигЗаг с другого инструмента

 

Друзья, добрый день.

Хотел спросить у вас по такому поводу:

Можно ли на графике одного финансового инструмента выводить ЗигЗаг, построенный по другому финансовому инструменту?

(например, у меня открыто окно с котировками EURUSD, а индикатор рисует мне в этом окне ЗигЗаг, построенный по котировке GBPUSD)

Заранее большое спасибо за совет.

 

Не вижу препятствий, вот только где будет этот ЗЗ если судить по разности цен между валютами???

 
Можно написать облегченный индикатор в отдельном окне, показывающий только время пиков, например от -1 до 1. Для Ваших целей должно хватить.
 

зная время пиков ЗЗ с другой валюты привяжите его к High и Low текущей, да и вся недолга....

 
xrust:

зная время пиков ЗЗ с другой валюты привяжите его к High и Low текущей, да и вся недолга....


xrust, большое вам спасибо за рекомендацию.

сейчас буду соображать, как привязать.

(в качестве небольшой просьбы, если у вас будет возможность и время, пришлите, плз, элементарный пример с кодом (хотя бы, как соседние вершины привязывать) - с графическими объектами только начинаю дружить)

 
Morzh09:


xrust, большое вам спасибо за рекомендацию.

сейчас буду соображать, как привязать.

(в качестве небольшой просьбы, если у вас будет возможность и время, пришлите, плз, элементарный пример с кодом (хотя бы, как соседние вершины привязывать) - с графическими объектами только начинаю дружить)

Как пример, скрипт который находит последний экстремум  ZigZag на паре GBPUSD, запоминает время открытия того бара, на котором сформировался экстремум, далее уже на текущем графике, то есть на том, на который был брошен скрипт (например EURUSD), находит по сохраненному времени бар (с помощью функции iBarShift(), которая возвращает сдвиг, найденный по переданному времени) и ставит на нем вертикальную линию.

//+------------------------------------------------------------------+
int start(){
   for(int shift = 0; shift <= iBars("GBPUSD", 0) ; shift++){
      double zz = iCustom("GBPUSD",0,"ZigZag",12,5,3,0,shift);
      if(zz > 0){
         datetime time_zz = iTime("GBPUSD", 0, shift);
         break;
      }
   }
   ObjectCreate("VLINE_ZZ_GBPUSD", OBJ_VLINE, 0, Time[iBarShift(NULL, 0, time_zz)], 0);
}
//+------------------------------------------------------------------+
 

ToLik_SRGV, xrust, вам большое спасибо.

разобрался, всё теперь работает.

//================================================

но, возникла следующая проблема:

есть такой замечательный индикатор: VelocityWaves (см. приложение)

он рисует прямоугольники, сформированные ЗигЗагом.

//================================================

я немного изменил код этого индикатора, и теперь он, на графике одного финансового инструмента рисует прямоугольники, сформированные ЗигЗагом на другом финансовом инструменте.

НО, при этом, если я одновременно хочу добавить этот индикатор на первый финансовый инструмент, "прямоугольники" со второго фининструмента пропадают!

//================================================

Отсюда - вопрос: можно ли в рамках одной ТаймСерии размещать графические объекты, координаты которых могут как бы "пересекаться"???

(могу уточнить вопрос, если неясно выразился)

Файлы:
velowaves.mq4  5 kb
 
Morzh09 ... 

То есть, у вас на одном графике, прямоугольники родные, и на нем же, сформированные с другой пары, я правильно понял?
Если да то это просто конфликт имен объектов, а не координат (они могут быть какие угодно).

Просто создайте внешнюю переменную в настройках индикатора, в которую будете задавать уникальный префикс к вновь создаваемым объектам. И используйте ее в создании и изменении этих самых объектов.

 

Друзья, приветствую вас.


Хотел спросить у вас совета по пересчету координат:

как бы координаты со второй валютной пары сделать "относительными" к первой.

дело в том, что если котировки нескольких фининструментов отличаются существенно, "прямоугольники индикатора" располагаются в разных концах экрана, что не очень удобно для восприятия.

Заранее большое спасибо.

Причина обращения: