Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
MetaQuotes Software Corp.
Модератор
185970
MetaQuotes Software Corp.  

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

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

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

Автор: Anatoli Kazharski

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

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

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

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

Anatoli Kazharski
61242
Anatoli Kazharski  
RekkeR:

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

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

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

Почему именно так, не знаю. Такие правила. Посмотрите в справке описание к функции iCustom.
RekkeR
1891
RekkeR  
//+------------------------------------------------------------------+
//| Получает хэндлы индикаторов                                      |
//+------------------------------------------------------------------+
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.

Спасибо. 

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

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

Anatoli Kazharski
61242
Anatoli Kazharski  
RekkeR:

Спсибо.

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

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

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

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

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

RekkeR
1891
RekkeR  
tol64:

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

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

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

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

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

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

Нет. Если делать так, как Вы советуете, то последний символ не будет проверен, поэтому нужно оставить так, как есть. 
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий