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

 
все привет.нужна помощь переделать индикатор с открытым исходником   vhpchannel_02 мт5 для просматривать его на длинном участке истории.выложыть переделаный для скачки очень нада пож.
https://www.mql5.com/ru/forum/188487 сылка на материал.
Ищу канальные индикаторы для MT5
Ищу канальные индикаторы для MT5
  • 2017.03.28
  • www.mql5.com
Все привет, ищу любые канальные индикаторы, которых нет по умолчанию в MT5 Нужны для оптимизации ТС (какой их индикаторов покажет устойчивые резуль...
 
Alexey Viktorov:

Пока я отсутствовал тут уже ………

На первый взгляд вроде нормально. Проверить можно в скрипте в любой день. Но вот в документации мне не нравится пример. Вот как я советую написать

Спасибо, прекрасно работает!
 
Alexey Viktorov:

Для такой задачи


индикатор не подходит.
Why? Ведь так приятно жить без цикла на каждом тике.
 
Aleksei Stepanenko:
Why? Ведь так приятно жить без цикла на каждом тике.

Мне надо на каждом тике, т.к. нашел объект на покупку-купил, нашел объект на продажу-продал

 

Да я понял, и когда приходит событие, мы мгновенно узнаём о создании объекта. Даже раньше первого ближайшего тика, и без цикла. Вот в чём идея. Просто сидим и ждём.

Этот простой пример показывает, как можно следить за созданием объекта на текущем графике. Если извернуться, то можно следить за другими нужными графиками.

int OnInit() 
   {
   ChartSetInteger(ChartID(),CHART_EVENT_OBJECT_CREATE,true); 
   return(INIT_SUCCEEDED); 
   } 

void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) 
   {
   if(id==CHARTEVENT_OBJECT_CREATE)
      {
      printf(sparam);
      }
   }

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
   {
   return(rates_total);
   }

Стоимость усилий процессора: ноль.

 
Aleksei Stepanenko :
Why? Ведь так приятно жить без цикла на каждом тике .

Потому, что индикатор не может совершать торговые операции.

Я не против OnChartEvent, но он работает только на своём графике и тогда придётся вешать советник на каждый график, а Макар хочет чтобы советник висел только на одном графике.

Aleksei Stepanenko:

… Если извернуться, то можно следить за другими нужными графиками.

Стоимость усилий процессора: ноль.

Ну-ка, ну-ка… Может я чего-то такого не знаю? Как можно извернуться чтобы следить за другими нужными графиками с одного советника через OnChartEvent
 
Alexey Viktorov:

Потому, что индикатор не может совершать торговые операции.

Я не против OnChartEvent, но он работает только на своём графике и тогда придётся вешать советник на каждый график, а Макар хочет чтобы советник висел только на одном графике.

https://www.mql5.com/ru/forum/369209

OnChartEvent события в ТС
OnChartEvent события в ТС
  • 2021.05.13
  • www.mql5.com
Предлагаю делиться опытами и наблюдениями в этой ветке Konstantin Gruzdev первый предложил на форуме идею Event spy...
 
И¿ Опять индикатор на каждый график?
 
И¿ Опять индикатор на каждый график?

С OnChartEvent не иначе.

 
MakarFX:
Спасибо, прекрасно работает!

Код, который дал Алексей, запихните в Таймер с интервалом в пару секунд. Также добавьте строку, что если рынок закрыт - выход, чтобы не гонял цикл.

Такой подход немного разгрузит процессор на быстром рынке, а на медленном наоборот - позволит быстрее отследить появление объекта на другом графике.

Причина обращения: