Обсуждение статьи "Рецепты MQL5 - Мультивалютный эксперт: пример простой, точной и быстрой схемы"

 

Опубликована статья Рецепты MQL5 - Мультивалютный эксперт: пример простой, точной и быстрой схемы:

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

Рецепты MQL5 - Мультивалютный эксперт: пример простой, точной и быстрой схемы

Автор: Anatoli Kazharski

 
Подскажите, пожалуйсмта, индикатор EventsSpy, необходимо размещать в окне каждого добавленного в советник инструмента?
 
RekkeR:
Подскажите, пожалуйсмта, индикатор EventsSpy, необходимо размещать в окне каждого добавленного в советник инструмента?
Достаточно чтобы индикатор находился в папке индикаторов: Metatrader 5\MQL5\Indicators и эксперт сам всё установит.
 
tol64:
Достаточно чтобы индикатор находился в папке индикаторов: Metatrader 5\MQL5\Indicators и эксперт сам всё установит.

Не ожидал быстрого ответа, спасибо!

spy_indicator_handles[s]=iCustom(Symbols[s],_Period,"EventsSpy.ex5",ChartID(),0,CHARTEVENT_TICK);

Подскажите пожалуйста еще, очему указано именно .ех5? 

 
RekkeR:

Не ожидал быстрого ответа, спасибо!

spy_indicator_handles[s]=iCustom(Symbols[s],_Period,"EventsSpy.ex5",ChartID(),0,CHARTEVENT_TICK);

Подскажите пожалуйста еще, очему указано именно .ех5? 

Почему именно так, не знаю. Такие правила. Посмотрите в справке описание к функции iCustom.
 
//+------------------------------------------------------------------+
//| Получает хэндлы индикаторов                                      |
//+------------------------------------------------------------------+
void GetIndicatorHandles()
  {
//--- Пройдемся по всем символам
   for(int s=0; s<NUMBER_OF_SYMBOLS; s++)
     {
      //--- Если торговля по этому символу разрешена
      if(Symbols[s]!="")
        {
         //--- Если хэндл еще не получен
         if(signal_indicator_handles1[s]==INVALID_HANDLE || signal_indicator_handles2[s]==INVALID_HANDLE || signal_indicator_handles3[s]==INVALID_HANDLE || signal_indicator_handles4[s]==INVALID_HANDLE)
           {
            //--- Получим хэндл индикатора
            signal_indicator_handles1[s]=iMA(Symbols[s],_Period,IndicatorPeriod1[s],0,MODE_SMA,PRICE_CLOSE);
            signal_indicator_handles2[s]=iMA(Symbols[s],_Period,IndicatorPeriod2[s],0,MODE_SMA,PRICE_CLOSE);
            signal_indicator_handles3[s]=iMA(Symbols[s],_Period,IndicatorPeriod3[s],0,MODE_SMA,PRICE_CLOSE);
            signal_indicator_handles4[s]=iMA(Symbols[s],_Period,IndicatorPeriod4[s],0,MODE_SMA,PRICE_CLOSE);
            //--- Если не удалось получить хэндл индикатора
            if(signal_indicator_handles1[s]==INVALID_HANDLE || signal_indicator_handles2[s]==INVALID_HANDLE || signal_indicator_handles3[s]==INVALID_HANDLE || signal_indicator_handles4[s]==INVALID_HANDLE)
               Print("Не удалось получить хэндл индикатора для символа "+Symbols[s]+"!");
           }
        }
     }
  }
tol64
:

Почему именно так, не знаю. Такие правила. Посмотрите в справке описание к функции iCustom.

Спасибо. 

Странно, что нет ажиотажа по поводу этого советника, можно сказать "приоткрыт железный занавес мультивалютности", для масс.

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

 
RekkeR:

Спсибо.

Странно, что нет ажиотажа по поводу этого советника, можно сказать "приоткрыт железный занавес мультивалютности".

Да он уже давно приоткрыт. Я просто выложил свою версию, может кому-нибудь будет так удобнее. 

Вот ещё статьи на эту тему:

Создание мульти-экспертов на основе торговых моделей 

Создание эксперта, торгующего на разных инструментах 

 
tol64:

Да он уже давно приоткрыт. Я просто выложил свою версию, может кому-нибудь будет так удобнее. 

Вот ещё статьи на эту тему:

Создание мульти-экспертов на основе торговых моделей 

Создание эксперта, торгующего на разных инструментах 

В обеих ссылках  Создание мульти-экспертов на основе торговых моделей , но я вторую статью читал, спасибо. 
 
Исправил ссылку. Что касается дополнений, то далее каждый может сам экспериментировать, усложнять и дополнять. От практики не увернуться. ))
 
tol64:
Исправил ссылку. Что касается дополнений, то далее каждый может сам экспериментировать, усложнять и дополнять. От практики не увернуться. ))
Да, если бы еще "ошибок трудных, нам не готовил, просвещенья дух". ))
 
paladin800:

В цикле перебора символов от SymbolsTotal() надо отнять 1 (как ниже). Если SymbolsTotal() вернёт например 100, то надо сравнивать от 0 до 99.

Нет. Если делать так, как Вы советуете, то последний символ не будет проверен, поэтому нужно оставить так, как есть. 
Причина обращения: