Скачать MetaTrader 5

Помогите решить проблему с эксперацией отложенных ордером.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
pers1307
5
pers1307 2016.08.27 10:46 

Ребята есть проблема, немогу решить её уже который день. Нужен хэлп.

 Делаю так:

datetime newExpiration = TimeCurrent() + 12 * PeriodSeconds(PERIOD_MN1); 

 // Текущая цена 84000

 OrderOpen(

            _Symbol,

            ORDER_TYPE_SELL_STOP,

            volume,

            70000,

            70000,

            0.0,

            0.0,

            ORDER_TIME_SPECIFIED,

            newExpiration,

            comment

         );

Ордер открывается, время экспирации (newExpiration на год больше становится), но по факту в тестере сделка автоматически закрывается по экспирации через 7 дней.

Я не понимаю почему так. (Можно конечно отслеживать ордер и переоткрывать его, но незнаю как это сделать + в этой функции не задать magic number, направьте плж) 

 

Вот вариант сделать подругому, чтобы можнобыло достать состояние ордера по magic number:

MqlTradeRequest request={0};

MqlTradeResult  result={0};

 

ZeroMemory(request);

ZeroMemory(result);

      

datetime newExpiration = TimeCurrent() + 12 * PeriodSeconds(PERIOD_MN1); 

 

request.action   =TRADE_ACTION_PENDING;                             

request.symbol   =Symbol();                                         

request.volume   =1;                                              

request.deviation=1000;                                                

request.magic    =123;                                     

request.type     =ORDER_TYPE_SELL_STOP;                           

request.type_filling = ORDER_FILLING_FOK;

request.type_time    = ORDER_TIME_SPECIFIED;

request.expiration = newExpiration;     

request.price    = 70000;                  

 

//--- отправка запроса

   if(!OrderSend(request,result))

      PrintFormat("OrderSend error %d",GetLastError());                 // если отправить запрос не удалось, вывести код ошибки

 

//--- информация об операции 

   PrintFormat("retcode=%u  deal=%I64u  order=%I64u",result.retcode,result.deal,result.order);  

 

 

Но, тут уже возникает другая проблема: ордер не открывается: выпадывает с ошибкой (Invalid expiration). И тоже непонятно почему (пример взял из доков).

Направьте, пожалуйста. Подскажите, в чем косяк. 

prostotrader
2985
prostotrader 2016.08.27 11:25  
https://www.mql5.com/ru/forum/67298
ФОРТС: В помощь начинающим
ФОРТС: В помощь начинающим
  • отзывов: 1
  • www.mql5.com
Установка отложенного ордера командой OrderSend().
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий