Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1517

 

Всем привет. Ребята, помогите объединить 2 индикатора. Уже 3 дня сижу и ничего не получается.

Первый индикатор показывает тренд а второй выдает алерт и и показывает точку входа стрелкой. Мне нужно сделать так чтоб второй индикатор выдавал сигналы только по тренду. 

Помогите их сделать одним целым или подскажите что я не так делал.

Файлы:
 
jarikn:

Всем привет. Ребята, помогите объединить 2 индикатора. Уже 3 дня сижу и ничего не получается.

Первый индикатор показывает тренд а второй выдает алерт и и показывает точку входа стрелкой. Мне нужно сделать так чтоб второй индикатор выдавал сигналы только по тренду. 

Помогите их сделать одним целым или подскажите что я не так делал.

Лови

Файлы:
 

Да что-же вы тут лепите¿¿¿ Документацию никто не читает?

Bars

Запросить количество баров на заданном интервале

int  Bars( 
   string           symbol_name,     // имя символа 
   ENUM_TIMEFRAMES  timeframe,       // период 
   datetime         start_time,      // с какой даты 
   datetime         stop_time        // по какую дату 
   );

Возвращаемое значение

Если указаны параметры start_time и stop_time, то функция возвращает количество баров в диапазоне дат. Если эти параметры не указаны, то функция возвращает общее количество баров.

Bars - Доступ к таймсериям и индикаторам - Справочник MQL4
Bars - Доступ к таймсериям и индикаторам - Справочник MQL4
  • docs.mql4.com
Bars - Доступ к таймсериям и индикаторам - Справочник MQL4
 

Подскажите что я делаю не так) или как правильно 


void Lvls(datetime data, double OPEN, double avg)
  {

   double hi = OPEN + avg;

   double lo = OPEN - avg;
   
   Print("ХАЙ РАВЕН :", hi," ЛОУ РАВЕН :", lo, "ЦЕНА ОТКРЫТИЯ : ", OPEN);
   
   string up = "LVL_UP_" + TimeToString(data);
   string low = "LVL_LOW_" + TimeToString(data);

//Хай
   ObjectCreate(NULL,up,OBJ_TREND,0,data,hi,data,hi,clrBlue,STYLE_SOLID,2,true,true,false,true,false,1);

//Лоу
  ObjectCreate(NULL,low,OBJ_TREND,0,data,lo,data,lo,clrRed,STYLE_SOLID,2,true,true,false,true,false,1);
  }
  


В общем во первых объекты создаются на графике, но не отображаются, во вторых хоть я цвет линий ставил разный, в свойствах линии имеют свои правильные имена, но цвет их в обоих случаях красный, в третьих не могу понять какую дату указывать у 2 точки привязки если я хочу чтоб линия продолжалась вправо, но не была лучом ?

 
MakarFX:

Функция работает корректно.

Попробуй так

и добавь в функцию закрытия ордеров обновление баланса

попробую в течении дня, спасибо

 
Alexey Viktorov:

Я уже заблудился в ваших пожеланиях и советах вам… Поэтому возможно мой совет совсем не в тему, ну уж извиняйте…

Я так понимаю, надо на начало дня зафиксировать баланс и в течении дня считать прибыль\потери с соответствии с которыми надо принять решение о продолжении торговли…

Так вот решение

Если в течении дня будет перезапуск советника, то в OnInit() надо предусмотреть подсчёт прибыли\убытков сегодняшних ордеров с учётом свопов и комиссий и высчитать баланс на начало дня.

Я верю в способности Макара, он может всё это показать уже в коде…

попробую в течении дня, спасибо

 
MakarFX:

Лови

Это все? а я долбал мозги 3 дня))))) ух, спасибо большое
 
MakarFX:

Лови

посмотрел по истории, все равно не то. когда тренд бай - может выдавать сигнал на селл и наоборот. не подскажете в какой строке внести изменения? а так все супе. спасибо большое
 
jarikn:
посмотрел по истории, все равно не то. когда тренд бай - может выдавать сигнал на селл и наоборот. не подскажете в какой строке внести изменения? а так все супе. спасибо большое
Я их только объединил.
 
Алексей КоКоКо:

Подскажите что я делаю не так) или как правильно В общем во первых объекты создаются на графике, но не отображаются, во вторых хоть я цвет линий ставил разный, в свойствах линии имеют свои правильные имена, но цвет их в обоих случаях красный, в третьих не могу понять какую дату указывать у 2 точки привязки если я хочу чтоб линия продолжалась вправо, но не была лучом ?

void Lvls(datetime data, double OPEN, double avg)
  {

   double hi = OPEN + avg;
   double lo = OPEN - avg;
   
   int shift = Period()*60*5;
   
   Print("ХАЙ РАВЕН :", hi," ЛОУ РАВЕН :", lo, "ЦЕНА ОТКРЫТИЯ : ", OPEN);
   
   string up = "LVL_UP_" + TimeToString(data);
   string low = "LVL_LOW_" + TimeToString(data);

//Хай
   ObjectCreate(NULL,up,OBJ_TREND,0,data,hi,data+shift,hi,clrBlue,STYLE_SOLID,2,true,true,false,true,false,1);

//Лоу
  ObjectCreate(NULL,low,OBJ_TREND,0,data,lo,data+shift,lo,clrRed,STYLE_SOLID,2,true,true,false,true,false,1);
  }
Причина обращения: