OnChartEvent события в ТС

 

Предлагаю делиться опытами и наблюдениями в этой ветке

Konstantin Gruzdev первый предложил на форуме идею Event spy
Konstantin Gruzdev
Konstantin Gruzdev
  • 2016.01.15
  • www.mql5.com
Профиль трейдера
 

краткая версия которую я использую, индикатор

#property description "iSpy"
#property indicator_chart_window
#property indicator_plots 0
#define RESET 0
//---
input long     chartID=0;; // идентификатор графика-получателя события
input ushort   eventID=0;  // идентификатор события
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,     // размер массива price[]
                const int prev_calculated, // обработано баров на предыдущем вызове
                const int begin,           // откуда начинаются значимые данные
                const double& price[]      // массив для расчета
               )
  {
//--- проверка на новый бар
   //if(prev_calculated==rates_total)
   //   return(rates_total);
//---первый запуск инициализация
   if(prev_calculated==0)
      EventChartCustom(chartID,eventID,0,0.0,NULL); // чтобы робот не ждал новый бар, в release return(rates_total);
   else
      EventChartCustom(chartID,eventID,0,0.0,NULL); // посылает событие new tick
//---
   return(rates_total);
  }
 
Fast235:

Предлагаю делиться опытами и наблюдениями в этой ветке

Константин Груздев первый предложил на форуме идею Event spy

Это к ручной торговле? Сегодня более важна автоматическая торговля с использованием роботов или советников

 

получение с индикаторов

//+------------------------------------------------------------------+
//| Обработчик событий на графиках                                   |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,         // Идентификатор события
                  const long &lparam,   // Параметр события типа long
                  const double &dparam, // Параметр события типа double
                  const string &sparam) // Параметр события типа string
  {
//Print("id: ",id," lparam: ",lparam," dparam: ",dparam," sparam: ",sparam +" (str.",__LINE__,")");
//--- Если это пользовательское событие
   if(id>=CHARTEVENT_CUSTOM) // Цикл событий по символам
     {
      //static CNewBar M1;
      const int number=id-CHARTEVENT_CUSTOM; //приведем в нормальный вид номер символа 0-7
      //--- проверим новый ли бар
      //if(M1.NewBar(number,PERIOD_M1))
        {
         //---
         //Print(TimeToString(TimeCurrent(),TIME_SECONDS)," -> id=",id-CHARTEVENT_CUSTOM," "+Symbols[number]+" (str.",__LINE__,")");
         //--- проверка времени для Open Position
         if(time_mode.GetTimeMode(TimeCurrent())==TRADE_ON)
           {
            //--- Проверяет сигналы и торгует по ним
            CheckSignalsAndTrade(number); //передается имя символа
            return;
           }
        }
     }
  }
 

видно что передается только идентификатор, именно это дало большой прирост


здесь заложен код Vasiliy Sokolov

 

if(time_mode.GetTimeMode(TimeCurrent())==TRADE_ON)
 
Fast235:

краткая версия которую я использую, индикатор

Очень навороченная версия, что сам использую в бою.

Отправляется не просто сообщение о том, что тик пришел, а еще и сам тик - MqlTick.

HistoryTicks
HistoryTicks
  • www.mql5.com
Библиотека доступа советников к прошедшим тикам.
 

сразу скажу, комменты многолетние не убираю, там может что угодно написано)

Василий Соколов почему то не отобразился, скопировал-вставил из его профиля, 

прошу поправить модераторов

 
fxsaber:

Очень навороченная версия, что сам использую в бою.

Отправляется не просто сообщение о том, что тик пришел, а еще и сам тик - MqlTick.

пока не рассматривал это, Константин еще говорил что можно передавать сразу цену и не запрашивать ее далее

MQL5 only без проставок)
 

за основу было взято из статьи ANATOLI KAZHARSKI

https://www.mql5.com/ru/articles/648

но там багов тьма. новичкам не рекомендую в этот лес

Рецепты MQL5 - Мультивалютный эксперт: пример простой, точной и быстрой схемы
Рецепты MQL5 - Мультивалютный эксперт: пример простой, точной и быстрой схемы
  • www.mql5.com
В этой статье мы рассмотрим реализацию простой схемы для мультивалютного эксперта. В данном случае имеется в виду, что эксперт можно будет настроить на тестирование/торговлю по одинаковым условиям, но с разными параметрами для каждого символа. В качестве примера создадим схему для двух символов, но сделаем это так, чтобы при необходимости можно было добавлять дополнительные символы, внося небольшие изменения в код.
 
Есть еще такой вариант.
 
fxsaber:
Есть еще такой вариант.
MqlBookInfo

вроде не подходит

саб у тебя есть вариант OnTick

---

есть опыт из сервиса получать, в отличие от событийного?

-

недавно обвинял MQ, что у меня сделки не открываются некоторые, ошибка была в коде <>, одно из условий, стыдно очень.

еслиб был давний метод профилирования, я бы не убил месяц на этот поиск, профилирование показало бы что работает 3 из четырех условий

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