Только вот я не пойму нужно буферы прописывать или нет, и структура кода там другая...
xrust писал (а) >>
это - Функция называется, ну как Print() У Вас в коде, присобачте ее за последней закр скобкой, и вызывайте стеми парамеррами кот Вам нужны
это - Функция называется, ну как Print() У Вас в коде, присобачте ее за последней закр скобкой, и вызывайте стеми парамеррами кот Вам нужны
Попытался вставить объект следующим образом, ничего не получилость...
ObjectCreate("resistance", OBJ_TREND, 0, r_a, fr_1, r_b, fr_2); ObjectSet("resistance", OBJPROP_COLOR , Blue); ObjectSet("resistance", OBJPROP_RAY , 0); ObjectSet("resistance", OBJPROP_STYLE , 1); ObjectSet("resistance", OBJPROP_WIDTH , 1);
Весь код стал выглядеть так:
//+------------------------------------------------------------------+ //| trend lines.mq4 | //| fomiN andreY aleksandrovicH | //| | //+------------------------------------------------------------------+ #property copyright "fomiN andreY aleksandrovicH" #property link "" #property indicator_chart_window //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { //---- int counted_bars=IndicatorCounted(); int limit; int i=0, a, r_a, r_b; //---- last counted bar will be recounted if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; for(i=3; i<Bars; i++) { double fr_2=0; fr_2=iFractals(NULL, 0, MODE_UPPER, i); if (fr_2>0) { r_b=i; for(a=i+1;a<Bars;a++) { double fr_1=0; fr_1=iFractals(NULL, 0, MODE_UPPER, a); if (fr_1>0) { r_a=a; break; } } break; } } Print ("номер бара ", r_a, " fr_1 = ", fr_1, " номер бара ", r_b, " fr_2 = ", fr_2); // НУЖНО ПРОВЕСТИ ЛУЧ ИЗ ТОЧКИ С КООРДИНАТАМИ: r_a - номер бара, fr_1 - цена, // ЧЕРЕЗ ТОЧКУ: r_b - номер бара, fr_2 - цена. ObjectCreate("resistance", OBJ_TREND, 0, r_a, fr_1, r_b, fr_2); ObjectSet("resistance", OBJPROP_COLOR , Blue); ObjectSet("resistance", OBJPROP_RAY , 0); ObjectSet("resistance", OBJPROP_STYLE , 1); ObjectSet("resistance", OBJPROP_WIDTH , 1); //---- return(0); } //+------------------------------------------------------------------+
Файлы:
trendqlines.mq4
3 kb
Файлы:
currenttrend.mq4
8 kb
Спасибо, я прочитал описание индикатора, но честно признаюсь многого не понял, я не програмист, едва занаю простейшие функции MQL4.
Индикатор запустил на графике но он пишет что нет выраженного тренда, пробовал менять таймфреймы в свойствах индикатора, ничего не рисуется....
Если не сложно укажите на мою ошибку в МОЁМ коде...
Зарнее благодарю за помощь.
Вот исправленный код, там показано как вызывать внешнюю функцию
//+------------------------------------------------------------------+ //| trend lines.mq4 | //| fomiN andreY aleksandrovicH | //| | //+------------------------------------------------------------------+ #property copyright "fomiN andreY aleksandrovicH" #property link "" #property indicator_chart_window //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { //---- int counted_bars=IndicatorCounted(); int limit; int i=0, a, r_a, r_b; //---- last counted bar will be recounted if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; for(i=3; i<Bars; i++) { double fr_2=0; fr_2=iFractals(NULL, 0, MODE_UPPER, i); if (fr_2>0) { r_b=i; for(a=i+1;a<Bars;a++) { double fr_1=0; fr_1=iFractals(NULL, 0, MODE_UPPER, a); if (fr_1>0) { r_a=a; break; } } break; } SetTLine(Red, "", r_a, fr_1, 0,r_b, True); } Print ("номер бара ", r_a, " fr_1 = ", fr_1, " номер бара ", r_b, " fr_2 = ", fr_2); //---- return(0); } //+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 12.10.2007 | //| Описание : Установка объекта OBJ_TREND трендовая линия | //+----------------------------------------------------------------------------+ //| Параметры: | //| cl - цвет линии | //| nm - наименование ( "" - время открытия текущего бара) | //| t1 - время открытия бара ( 0 - Time[10] | //| p1 - ценовой уровень ( 0 - Low[10]) | //| t2 - время открытия бара ( 0 - текущий бар) | //| p2 - ценовой уровень ( 0 - Bid) | //| ry - луч (False - по умолчанию) | //| st - стиль линии ( 0 - простая линия) | //| wd - ширина линии ( 1 - по умолчанию) | //+----------------------------------------------------------------------------+ void SetTLine(color cl, string nm="", datetime t1=0, double p1=0, datetime t2=0, double p2=0, bool ry=False, int st=0, int wd=1) { if (nm=="") nm=DoubleToStr(Time[0], 0); if (t1<=0) t1=Time[10]; if (p1<=0) p1=Low[10]; if (t2<=0) t2=Time[0]; if (p2<=0) p2=Bid; if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_TREND, 0, 0,0, 0,0); ObjectSet(nm, OBJPROP_TIME1 , t1); ObjectSet(nm, OBJPROP_PRICE1, p1); ObjectSet(nm, OBJPROP_TIME2 , t2); ObjectSet(nm, OBJPROP_PRICE2, p2); ObjectSet(nm, OBJPROP_COLOR , cl); ObjectSet(nm, OBJPROP_RAY , ry); ObjectSet(nm, OBJPROP_STYLE , st); ObjectSet(nm, OBJPROP_WIDTH , wd); }
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Уважаемые програмисты, помогите пожалуйста ПРОВЕСТИ ЛУЧ ИЗ ТОЧКИ С КООРДИНАТАМИ: r_a - номер бара, fr_1 - цена, ЧЕРЕЗ ТОЧКУ: r_b - номер бара, fr_2 - цена.
Код индикатора: