дело в том, что свечи Heiken Ashi "синтетические":
Open = [Open (предыдущего бара) + Close (предыдущего бара)]/2
High = Max (High,Open,Close)
Low = Min (Low,Open, Close)
Может я, что не понимаю, но цвет Heiken Ashi как раз по этой формуле которую я в самом начале написал,, определяется.
В коде на mql5 почти так же и написано.
if (haOpen<haClose) ExtColorBuffer[i]=0.0; // set color DodgerBlue else ExtColorBuffer[i]=1.0; // set
Код вот тут https://www.mql5.com/ru/forum/115531 есть, там даже алерт вкручен последним for.
Но на всякий случай прикреплю файл сюда.
Вот я так понимаю заполняются массивы, по которым рисуются бары, 3 и 4 (c 1) это толстые свечи, красный и синий цвета соответственно.
Но как потом это рисуется терминалом я не понимаю, точнее не понимаю алгоритм выбора цвета, на графике.
Думал может сначала рисуется красный цвет, а потом синий, и он накладывается на красный и поэтому не видно красную свечу, но такое бывает и наоборот,
значит дело не в том какой массив (цвет) сначала рисуется.
SetIndexStyle(0,DRAW_HISTOGRAM, 0, 1, Red); SetIndexBuffer(0, ExtMapBuffer1); SetIndexStyle(1,DRAW_HISTOGRAM, 0, 1, RoyalBlue); SetIndexBuffer(1, ExtMapBuffer2); SetIndexStyle(2,DRAW_HISTOGRAM, 0, 3, Red); SetIndexBuffer(2, ExtMapBuffer3); SetIndexStyle(3,DRAW_HISTOGRAM, 0, 3, RoyalBlue); SetIndexBuffer(3, ExtMapBuffer4); for(i=0; i<pos2; i++) ExtMapBuffer1[i]=iMAOnArray(ExtMapBuffer7,Bars,MaPeriod2,0,MaMetod2,i); for(i=0; i<pos2; i++) ExtMapBuffer2[i]=iMAOnArray(ExtMapBuffer8,Bars,MaPeriod2,0,MaMetod2,i); for(i=0; i<pos2; i++) ExtMapBuffer3[i]=iMAOnArray(ExtMapBuffer5,Bars,MaPeriod2,0,MaMetod2,i); for(i=0; i<pos2; i++) ExtMapBuffer4[i]=iMAOnArray(ExtMapBuffer6,Bars,MaPeriod2,0,MaMetod2,i);
в этом же топике есть такой добавленный кусок кода, выводит алерт
for(i=0; i<pos2; i++) { if(ExtMapBuffer4[i+2]>ExtMapBuffer4[i+1]&&ExtMapBuffer4[i+1]<ExtMapBuffer4[i]&& Time[i]!= LastTime) { Alert("Вверх ","Символ ",Symbol()," Период ",GetNameTF()); LastTime = Time[i]; } if(ExtMapBuffer4[i+2]<ExtMapBuffer4[i+1]&&ExtMapBuffer4[i+1]>ExtMapBuffer4[i]&& Time[i]!= LastTime) { Alert("Вниз ","Символ ",Symbol()," Период ",GetNameTF()); LastTime = Time[i]; } }
может так же можно определить и цвет.
Сглаженные значения Опен и Кллозе - это 3 и 4 буферы. Вы же считываете 2 и 3.
Пробуйте так :
double HAOpen = iCustom(NULL, 0, "Heiken_Ashi_Smoothed", MaMetod, MaPeriod, MaMetod2, MaPeriod2, 3, 1); double HAClose = iCustom(NULL, 0, "Heiken_Ashi_Smoothed", MaMetod, MaPeriod, MaMetod2, MaPeriod2, 4, 1);
if(HAClose>HAOpen){Blue}; if(HAClose<HAOpen) {Red}.
Удачи.
Сглаженные значения Опен и Кллозе - это 3 и 4 буферы. Вы же считываете 2 и 3.
Пробуйте так :
if(HAClose>HAOpen){Blue}; if(HAClose<HAOpen) {Red}.
Удачи.
в документации по iCustom написано: mode - Индекс линии индикатора. Может быть от 0 до 7. т.е. считаем с нуля.
и поэтому ExtMapBuffer4 это iCustom(NULL, 0, "Heiken_Ashi_Smoothed", MaMethod< MaPeriod, MaMethod2, MaPeriod2, 3, 1);
Посмотрите на функцию SetIndexBuffer.
Так, что я правильно считываю значения.
И такое определение цвета не подходит к subj, уже проверено.
Как правильно определить цвет я пока так и не понял.
в документации по iCustom написано: mode - Индекс линии индикатора. Может быть от 0 до 7. т.е. считаем с нуля.
и поэтому ExtMapBuffer4 это iCustom(NULL, 0, "Heiken_Ashi_Smoothed", MaMethod< MaPeriod, MaMethod2, MaPeriod2, 3, 1);
Посмотрите на функцию SetIndexBuffer.
Так, что я правильно считываю значения.
И такое определение цвета не подходит к subj, уже проверено.
Как правильно определить цвет я пока так и не понял.
Точно - не туда глянул.
И такое определение цвета не подходит к subj, уже проверено.
Как правильно определить цвет я пока так и не понял.
Что не устраивает в таком определении цвета ?
Так определяется цвет (направление) "тела" свечи. Если считать, что красный - селл, а синий - бай, то должно соответствовать.
Кстати, в этом варианте индикатора могут быть свечи с разным цветом тела свечи и теней.
Удачи.
Что не устраивает в таком определении цвета ?
Так определяется цвет (направление) "тела" свечи. Если считать, что красный - селл, а синий - бай, то должно соответствовать.
Кстати, в этом варианте индикатора могут быть свечи с разным цветом тела свечи и теней.
Удачи.
По этой формуле скажем, свеча должна быть красная, а на графике она синяя, хотя HAOpen > HAClose.
Это я определил выводя HAOpen и HAClose через Print.
А нарвался я на это написав советника который при смене цвета свечи закрывает ордер.
Вот стал разбираться почему некоторые ордера закрыты не в том месте.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте.
Не понимаю, как определить смену цвета у Heiken Ashi Smoothed
Думал, что правильный способ такой
но оказалось, нет, есть бары где цвет к примеру синий (buy), но HAOpen > HAClose.
Вот не могу сообразить как по цифрам определить какого цвета бар на Heiken Ashi Smoothed