Обычно все идут в обратную сторону - графические объекты переделывают в буферы.
Для линии надо две точки, индексы 0 и barsToCount-1, буферы Sup_line[], Res_line[] и Time[].
Обычно все идут в обратную сторону - графические объекты переделывают в буферы.
Для линии надо две токи, индексы 0 и barsToCount-1, буферы Sup_line[], Res_line[] и Time[].
Я обычно стрелки переделываю в буферы, а тут понадобилось в объекты.
Две точки это понятно, но как их получить? Где они в коде то ?
ObjectCreate(Res_line_name,OBJ_TREND,0,Time[==],price==,Time[==],price==); ObjectSet(Res_line_name,OBJPROP_STYLE,STYLE_SOLID); ObjectSet(Res_line_name,OBJPROP_WIDTH,2); ObjectSet(Res_line_name,OBJPROP_COLOR,Yellow); ObjectCreate(LR_line_name,OBJ_TREND,0,Time[==],price==,Time[==],price==); ObjectSet(LR_line_name,OBJPROP_STYLE,STYLE_SOLID); ObjectSet(LR_line_name,OBJPROP_WIDTH,2); ObjectSet(LR_line_name,OBJPROP_COLOR,Yellow); ObjectCreate(Sup_line_name,OBJ_TREND,0,Time[==],price==,Time[==],price==); ObjectSet(Sup_line_name,OBJPROP_STYLE,STYLE_SOLID); ObjectSet(Sup_line_name,OBJPROP_WIDTH,2); ObjectSet(Sup_line_name,OBJPROP_COLOR,Yellow);
Я обычно стрелки переделываю в буферы, а тут понадобилось в объекты.
Две точки это понятно, но как их получить? Где они в коде то ?
вот одна линия, по моему
// Linear regression line in buffer for(x=0;x<barsToCount;x++) LR_line[x]=a+b*x;
То есть в коде почему то прорисовывают каждую точку этой линии, если я не туплю конечно
Ну а вики поможет получить две любые точки этой линии и создать объект будет уже не проблематично
Я обычно стрелки переделываю в буферы, а тут понадобилось в объекты.
Две точки это понятно, но как их получить? Где они в коде то ?
hint - прямая строиться по двум точкам. То есть по минимуму можно взять значения от двух предыдущих баров.
PS переменные a,h,b в коде явно определяют прямые и вместо заполнения буферов можно нарисовать объекты (это после комента:
// Drawing support - resistance lines
Если проверить эти точки комментом то все точки определены на каждой линии с начала и Time1[barsToCount], но как определить вторую точку и Time2
// Drawing support - resistance lines if (h>l){ for(x=0;x<barsToCount;x++){ Sup_line[x]=a-h+b*x; Res_line[x]=a+h+b*x; } } else { for(x=0;x<barsToCount;x++){ Sup_line[x]=a-l+b*x; Res_line[x]=a+l+b*x; Comment(" ПРОВЕРКА = ",Res_line[x]," "," == ",LR_line[x]," "," == ",Sup_line[x]," "); }
Если проверить эти точки комментом то все точки определены на каждой линии с начала, но как определить Time1 и вторую точку и Time2
![iBarShift - Доступ к таймсериям и индикаторам - Справочник MQL4 iBarShift - Доступ к таймсериям и индикаторам - Справочник MQL4](https://c.mql5.com/36/14/ibarshift-dostup-k-taymseriyam.png)
- docs.mql4.com
Ничего не получается.
Ладно, тогда по другому надо решить с оповещением.
Изначально задача была добавить Alert в код, но встал вопрос как определить касание линии ценой Bid? Где эти точки на нулевом баре?
Вот и придумалось линии сделать объектами и применять сторонний индикатор для alert который видит любые линии на графике.
Как же теперь добавить alert в код ? Может с этим будет проще ? Поможете ?
Ничего не получается.
Ладно, тогда по другому надо решить с оповещением.
Изначально задача была добавить Alert в код, но встал вопрос как определить касание линии ценой Bid? Где эти точки на нулевом баре?
Вот и придумалось линии сделать объектами и применять сторонний индикатор для alert который видит любые линии на графике.
Как же теперь добавить alert в код ? Может с этим будет проще ? Поможете ?
Res_line[x]=a+h+b*x;
примерно так //из эксперта
if(MathAbs(iCustom(NULL,0,"название файла индикатора",2,0)-Bid[0])<=Point()) Alert(...);
или //из индикатора
if(MathAbs(Res_line[0]-Bid[0])<=Point()) Alert(...);
Нижняя
iCustom(NULL,0,"название файла индикатора",1,0)
Sup_line[x]=a-h+b*x;
Средняя -
iCustom(NULL,0,"название файла индикатора",0,0)
LR_line[x]=a+b*x;
касание верхней линии ценой Bid, а именно
Ок, сейчас сделаю по этим точкам на нулевом баре.
==================================================
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
==================================================
Вот спасибо, всё работает))
Обычно все идут в обратную сторону - графические объекты переделывают в буферы.
Для линии надо две точки, индексы 0 и barsToCount-1, буферы Sup_line[], Res_line[] и Time[].
Вот же написал где в коде брать:
Sup_line[0] - Time[0], Sup_line[barsToCount-1] - Time[barsToCount-1]
Res_line[0] - Time[0], Res_line[barsToCount-1] - Time[barsToCount-1]
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Сигнальный индикатор Alert не видит эти трендовые линии на графике.
Как бы эти линии переделать в объекты ?