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.Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
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.