Ordem pendente não executa depois do dia em que foi enviada

 

Olá pessoal!


Estou desenvolvendo um bot para swingtrade, que faz aumentos de posição (basicamente um preço médio quando o mercado vai contra).


Ainda estou apenas fazendo backtestes, mas me deparei com a seguinte situacao:

1) Quando envio uma ordem pendente e o preço chega nela no mesmo dia, executa normalmente;

2) Quando o preço do ativoo só chega na entrada da ordem em um dia posterior, a ordem continua na pedra mas não é executada. Isso tem acontecido também em alguns TP que também não são executados.

3) Estou testando isso no Forex, mt5.

4) Apenas para reforçar, este comportamento eu só identifiquei em backtest visual, no mercado real eu ainda não sei se o problema pode acontecer.

Segue a forma como coloco as ordens pendentes:



            entradaCalculada = latest_price.bid + DistanciaReentrada;

            mrequest.action = TRADE_ACTION_PENDING;                                // pending order

            mrequest.price = NormalizeDouble(entradaCalculada,_Digits);          // latest ask price

            mrequest.sl = NormalizeDouble(entradaCalculada + STP*_Point,_Digits); // Stop Loss

            mrequest.tp = NormalizeDouble(entradaCalculada - TKP*_Point,_Digits); // Take Profit

            mrequest.symbol = _Symbol;                                         // currency pair

            mrequest.volume = Reentry1LotSize;                                // number of lots to trade

            mrequest.magic = EA_Magic;                                        // Order Magic Number

            mrequest.type = ORDER_TYPE_SELL_LIMIT;                                     // Buy Order

            mrequest.type_filling = ORDER_FILLING_FOK;                          // Order execution type

            mrequest.deviation=100;                                            // Deviation from current price

             mrequest.comment = "Primeiro aumento";



A situação é esta na foto abaixo. O mercado atingiu o preço de entrada (no caso era uma venda), mas não executou. E se a ordem tivesse sido colocada no mesmo dia, teria executado sem problemas.



Será que é bug do backtest ou é bug do programador kkk? Em termos de mql5 eu sou um programador júnior.

Agradeço desde já quem puder dar uma força.

 
Geziel MC:


Bom dia,

o que aparece no log DIÁRIO?

 
Rogerio Giannetti Torres:

Bom dia,

o que aparece no log DIÁRIO?

Bom dia!


Esse é o problema, não tinha nada. Era como se a ordem não estivesse lá!

Mais uma coisa estranha aqui. Como a conta era hedge e uma conta demo na corretora, a conta venceu (nesta corretora a demo fica aberta por 30 dias). Hoje eu abri outra conta, e nesta conta não está acontecendo o problema. O quê será que pode ser? Ainda tenho que resolver isso, pois o bot será utilizado em uma conta de um amigo, e ele que já tinha me percebido esta situação nos backtestes na conta real dele.