Есть пользовательский индикатор ZigZag.mql4
Как отрисовывать советником его линии имея только буфер 0 ?
Вот, попробуйте.
#property strict //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { int n=1; //n - номер экстремума( 0 - последний) int i,k=iBars(NULL,0), ke=0; double zz=0; for(i=0; i<k; i++) { zz=iCustom(NULL, 0, "ZigZag",12, 5,3, 0, i); if(zz!=0) { ke++; if(ke>n) break; } } Alert(" Бар№ ",i," Значение = ",zz); } //+------------------------------------------------------------------+
Вот, попробуйте.
Спасибо, буду по экстремумам строить.
Есть пользовательский индикатор ZigZag.mql4
Как отрисовывать советником его линии имея только буфер 0 ?
Перебираем буфер и рисуем трендовые линии.
пс. у меня есть индикатор, который рисует ЗигЗаг линиями-объектами.
Перебираем буфер и рисуем трендовые линии.
пс. у меня есть индикатор, который рисует ЗигЗаг линиями-объектами.
Не совсем понятно как это организовать с перебором буферов. Можно пример?
ЗигЗаг этот как заполучить? :)
Не совсем понятно как это организовать с перебором буферов. Можно пример?
ЗигЗаг этот как заполучить? :)
Прежде всего, где вы видели ЗЗ с одним буфером? Классический - с тремя, многие другие - минимум тоже с тремя.
В классическом, из поставки терминала - вершина в 2-м буфере, впадина в 3-м.
Прежде всего, где вы видели ЗЗ с одним буфером? Классический - с тремя, многие другие - минимум тоже с тремя.
В классическом, из поставки терминала - вершина в 2-м буфере, впадина в 3-м.
У меня с одним буфером, который можно вызвать из вне
#property indicator_chart_window #property indicator_buffers 1 #property indicator_color1 Gold #property indicator_width1 2 //----------------------------+ int init() { IndicatorBuffers(6); SetIndexStyle (0,DRAW_SECTION,DRAW_LINE,EMPTY); SetIndexBuffer(0,zz); SetIndexEmptyValue(0,0.0); SetIndexBuffer(1,ha); SetIndexBuffer(2,la); SetIndexStyle (3,DRAW_SECTION,2); SetIndexBuffer(3,sa); SetIndexBuffer(4,fxH); SetIndexBuffer(5,fxL); if (chHL==false){ SetIndexDrawBegin(1,2*Bars); SetIndexDrawBegin(2,2*Bars); SetIndexDrawBegin(3,2*Bars); } else { SetIndexDrawBegin(1,1); SetIndexDrawBegin(2,1); SetIndexDrawBegin(3,1); } return(0); } int start() { // и т.д. // }
У меня с одним буфером, который можно вызвать из вне
Ну так сделайте ещё два доступными.
Рисует то буфер 0 вроде, а их ещё 5 и как определить кого делать доступным
1 и 2 наверно?
Рисует то буфер 0 вроде, а их ещё 5 и как определить кого делать доступным
Есть ещё два промежуточных буфера, которые в классическом варианте назывались ExtHighBuffer[] и ExtLowBuffer[], вот их надо на второе и третье места объявить, если они не там.
Подозреваю, что в вашем случае они уже там, под названиями ha[], la[]. Но раз уж код не показываете, то разбирайтесь самостоятельно, они ли это или нет.
Есть ещё два промежуточных буфера, которые в классическом варианте назывались ExtHighBuffer[] и ExtLowBuffer[], вот их надо на второе и третье места в ините передвинуть, если они не там.
Подозреваю, что в вашем случае они уже там, под названиями ha[], la[]. Но раз уж код не показываете, то разбирайтесь самостоятельно, они ли это или нет.
Возможно они. Я их сделаю доступными для вызова. А как в советнике с ними поступить чтобы рисовали?
Допустим:
double Ha=iCustom(Symbol(),0,"::Indicators\\ZigZag.ex4",ZZperiod,5,3, 1,1); double La=iCustom(Symbol(),0,"::Indicators\\ZigZag.ex4",ZZperiod,5,3, 2,1);Там же надо знать время 1 цена 1 и время 2 цена 2
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Есть пользовательский индикатор ZigZag.mql4
Как отрисовывать советником его линии имея только буфер 0 ?