Два отложенных ордера и iMA - страница 4

 

Two pending orders and iMA version   "1.000"

пока из функционала - только входные параметры и добавление пользовательского индикатора на график. Для этого необходимо наличие скомпилированного индикатора "Custom Moving Average Levels" в папке "каталог данных терминала"\MQL5\Indicators\MyInd". Это расположение задано в OnInit():

   IsSells=false;
//--- create handle of the indicator iMA
   handle_iMA_Custom=iCustom(Symbol(),Period(),"MyInd\\"+shortname,
                             ma_period,
                             ma_shift,
                             ma_method,
                             InpLevelUp*m_symbol.TickSize(),
                             InpLevelDown*m_symbol.TickSize());
//--- if the handle is not created 
   if(handle_iMA_Custom==INVALID_HANDLE)

Здесь все отступы заданы не в привычных пунктах, а в квантах (1 quantum = 1 TickSize).

Файлы:
 

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

Ловим пересечение

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

 
Vladimir Karputov:

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

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

 

Вы реализуете контртрендовую стратегию?
 
-Aleks-:

 

Вы реализуете контртрендовую стратегию?


Ещё не определился. Скорее всего будет настройка или/или: Sell/Buy:

Sell/Buy

 
Vladimir Karputov:


Ещё не определился. Скорее всего будет настройка или/или: Sell/Buy:

 

Я недавно эксперементировал с контртрендом на Si - оказалось, что торговля на минутках там сравни торговли на 15 минутках на форексе - хороший размах цены.
 

Two pending orders and iMA version   "1.001"

Введён параметр "Maximum spread (in pips)" - если спред выше, то не торгуем.

Также в OnInit() осуществляется проверка параметра "Maximum spread (in pips)":

   if(InpMaxSpread<m_symbol.TickSize())
     {
      Print("Error! \"Maximum spread\"(",InpMaxSpread,") < \"Tick Size\"(",m_symbol.TickSize(),")");
      return(INIT_PARAMETERS_INCORRECT);
     }

если он меньше, чем размер тика - то выходим.


На данном этапе значение параметра "Maximum spread (in pips)" и размера тика просто выводятся на экран, для информации.

Файлы:
 
version   "1.002" - исправленная (в вызове пользовательского индикатора было избыточное умножение на TickSize).
Файлы: