А зачем делать преобразования цен, если исходя из Вашей логики нужно наложить зиг-заг одной валютной пары на график движения другой пары? Есть решение проще - проходимся по свечкам одной валютной пары и записываем в массив те номера свеч, на которых стоят точки экстремума зиг-зага. Затем обращаемся к другой валютной паре и отрисовываем линии зигзага именно по тем номерам свеч, которые лежат в нашем массиве. Наносим на хай/лоу этих свечек. Если нужны исходные цены точек экстремума, то их можно сунуть в другой массив. И для этого не нужно запускать советников на разных влютных парах, так как название нужной валютной пары можно указать явно, например в том же iCustom().
Отрисованный таким образом зиг-заг будет не таким красивым как на своей родной валютной паре, но наложение сделать вполне можно.
Как вариант: можно работать через коэффициент. Например, пишем скрипт, который выведет на экран текущие биды этих двух валютных пар. Пусть это указаннный Вами 1.4532 и 0.8564. Почему скриптом - потому, чтоб уменьшить погрешность - нужны цены именно двух последних тиков.
Вычисляем коэффициент. К = 1.4532 / 0.8564 = 1,696870621205044371788883699206 = 1,6969.
Теперь весь поток цен экстремумов второго торгового инструмента умножаем на "К" и получаем цены первого торгового инструмента. Например, 0,8563*1,6969 = 1,4475. Только вот экстремумы наложенного зиг-зага могут в этом случае оказаться далеко отстоящими от свечек.
Навалял от руки в виде примера...
//+------------------------------------------------------------------+ //| Multy_ZZ.mq4 | //| Copyright © 2010, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2010, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #property indicator_chart_window #property indicator_buffers 1 #property indicator_color1 Red //---- buffers double ExtMapBuffer1[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_SECTION); SetIndexBuffer(0,ExtMapBuffer1); SetIndexEmptyValue(0,0.0); //---- return(0); } //+------------------------------------------------------------------+ int start() { int limit; int counted_bars=IndicatorCounted(); //---- last counted bar will be recounted if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; //---- for(int i = 0; i < limit; i++){ double up = iCustom("GBPUSD", 0, "Zigzag2_R_", 12, 5, 3, 0, i); double dn = iCustom("GBPUSD", 0, "Zigzag2_R_", 12, 5, 3, 1, i); if(up != 0){ExtMapBuffer1[i]=High[i];} if(dn != 0){ExtMapBuffer1[i]=Low[i];} } //---- return(0); } //+------------------------------------------------------------------+
drknn, xrust, большущее вам спасибо!!!
Дополнил индикатор пересчетом цен - теперь всё рисуется симпатично :)
Сюда загляните https://www.mql5.com/ru/forum/127547 там Nen запостил один из своих ЗЗ
xrust, спасибо большое за ссылку.
//===================================================================================
Подскажите, плз, когда у вас будет возможность:
встречали ли вы ЗигЗаг, который на графике котировок рисуется сразу с нескольких ТаймФреймов?
(Например, открыт график валютной пары с таймфреймом H1, и на нем рисуется ЗигЗаг с H1 и H4)
//===================================================================================
Заранее большое спасибо.
Есть такие ЗЗ в кодбез - несколько штук, сам писал парочку...
drknn, xrust, большущее вам спасибо!!!
Дополнил индикатор пересчетом цен - теперь всё рисуется симпатично :)

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день, уважаемые коллеги.
Затеял недавно некоторое статистическое исследование по ЗигЗагам, но так как от mql заметно поотвык, хотел бы обратиться к профессионалам.
//-------------------------------------------------------------------------------------------------------
Задача у меня поставлена так:
необходимо в окне некоторой валютной пары (например в окне котировок EURUSD) вывести ЗигЗаг, построенный на котировках другой валютной пары (например, GBPUSD).
Пример такого индикатора находится во вложении.
НО, данная задача упирается в проблему "преобразования цены второй пары в относительную цену к первой котировке" (если котировки сильно отличаются друг от друга, например 1.4532 и 0.8564, то ЗигЗаг будет "скакать" по монитору)
//-------------------------------------------------------------------------------------------------------
подскажите, пожалуйста, как такое относительное преобразование цены выполнить.
//-------------------------------------------------------------------------------------------------------
Заранее большое спасибо.