Советники: Futures Portfolio Control Expiration

 

Futures Portfolio Control Expiration:

Советник демонстрирует использование функций, заложенных в скрипте Current Next Futures, для автоматического перехода на новый фьючерс перед экспирацией. Советник открывает позицию по трем инструментам соответствующего объема, указанных в входных параметрах. Отрицательные значения объема - для продажи, положительные - для покупки. За несколько часов до экспирации фьючерса (указывается в параметре hours_before_expiration) закрывает позицию и открывает новую на новом фьючерсе.

Предупреждение: Советник не тестировался в реальной торговле, написан для тестера.

Автор: Sergey Chalyshev

 

Проверил на реале, поставил на график, он открыл позицию, затем сменил время так что бы оно вышло за пределы экспирации текущего символа, робот закрыл позицию и открыл ее уже на другом обращении.

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

 

Добавил строчку

//+------------------------------------------------------------------+
void CheckPos(string sym, string & TradeFutures, double lot)
  {
   if(SymbolInfoInteger(TradeFutures,SYMBOL_EXPIRATION_TIME)-TimeCurrent()<hours_before_expiration*60*60)
     {
      trade.PositionClose(TradeFutures);
         Sleep(3000);
      SymbolSelect(TradeFutures,false);
      TradeFutures=NextFutures(sym);
     }
   if(!PositionSelect(TradeFutures))
     {
      if(lot>0) trade.Buy(lot,TradeFutures);
      if(lot<0) trade.Sell(-lot,TradeFutures);
      ChartSetSymbolPeriod(0,TradeFutures,PERIOD_CURRENT);
         Sleep(3000);
     }
  }
//+------------------------------------------------------------------+

Все отлично переключается.

Спасибо за пример.

 
Konstantin Seredkin:

Добавил строчку

Все отлично переключается.

Спасибо за пример.

Если советник торгует несколько инструментов, то думаю нет смысла переключать график. Можно вообще повесить его на склейку.

Это всего лишь пример, дальше дело хозяйское.

Для реала я бы выкинул Sleep-ы и сделал нормальную проверку исполнения приказов. Но не хотелось загромождать суть примера, это уже другая тема.

 
Sergey Chalyshev:

Если советник торгует несколько инструментов, то думаю нет смысла переключать график. Можно вообще повесить его на склейку.

Это всего лишь пример, дальше дело хозяйское.

Для реала я бы выкинул Sleep-ы и сделал нормальную проверку исполнения приказов. Но не хотелось загромождать суть примера, это уже другая тема.

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

Как бы это все сделал, но возникла проблема в которой не могу разобраться как ее обойти

К примеру добавляя

ChartSetSymbolPeriod(0,TradeFutures,PERIOD_CURRENT);

График меняется, но если я пытаюсь после перехода щелкать таймфреймы, к примеру М5 М30 и т.д. робот возвращает на следующем тике тот ТФ на котором он поменял график фьючерса.

Также планировал сделать принудительный выбор торгуемого инструмента в настройках, ставим к примеру нефть,(по вашему примуру выбора) но робота кидаем на ртс, при инициализации график меняется на нефть... все это сделал, но при переходе на другой фьючерс при экспирации происходит зацикливание, робот инициализировался при установке на BR-5.18, затем происходит смена на 6.18 со сменой графика и вот тут на каждом тике начинается смена с 6.18 на 5.18 и обратно...

В этом вопросе я пока не силен, примеров такой работы в базе я не нашел, возможно это делается какими либо проверками, флагами и т.д. но пока не допедрил как это сделать. Был бы благодарен за пинок в нужное направление, думаю не я один... было шикарно увидеть расширенный пример V2, думаю со мной согласиться каждый, что данный алгоритм перехода и смена графика торговли должен быть вшит по умолчанию в каждый робот торгующий на ФОРТС, может быть и сами разработчики бы это в недрели в свою шикарную библиотеку.

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