Ordem esta expirando mesmo definindo para não haver expiração com ORDER_TIME_GTC.

 

Estou com um problema de expiração da ordem, se alguém puder me ajudar agradeço.

Desenvolvi um expert para validar estratégias no gráfico semanal ou diário. A situação que descrevo ocorre nos dois:

1. Quando aparece o sinal para uma nova entrada, no candle posterior ao do sinal, posiciono uma compra um tick acima da máxima do candle do sinal, com stop loss e take profit definidos.

2. Recebo a mensagem que a ordem foi colocada com sucesso e é mostrado no gráfico os locais da possivel entrada, stop loss e take profit, conforme defini.

3. O que acontece é que depois de alguns ticks recebo a mensagem de "order expired". O estranho é que isso acontece algumas vezes, em outras a entrada é realizada, assim como os alvos de stop loss ou take profit.


Obs: 

Já utilizei o ORDER_TIME_GTC, desta forma:

trade.BuyStop(volume, priceBuy, symbol, stopLoss, takeProfit, ORDER_TIME_GTC, 0)

e o ORDER_TIME_SPECIFIED (passando uma data de expiração de 1 ano para frente):

trade.BuyStop(volume, priceBuy, symbol, stopLoss, takeProfit, ORDER_TIME_SPECIFIED, expiration)


Já tentei com o TypeFilling configurado como ORDER_FILLING_FOK ou ORDER_FILLING_RETURN:

trade.SetTypeFilling(ORDER_FILLING_FOK);

Razão: