Ordem limit sendo executada em preço diferente no backtest

 

Olá pessoal.

Estou testando um robô no ativo CCM$, e estou com o seguinte problema no backtest:

- fiz o código para enviar a ordem de venda do tipo trade.SellLimitnum candle novo, caso as condições tenham sido atendidas

- no visualizador do testador de estratégias vejo que a ordem está sendo enviada no valor correto, mas está sendo executada num valor fora, como no exemplo da imagem abaixo, que era pra ficar pendente até ser executada na mínima do candle anterior (risquei de amarelo).

estou usando conta demo da corretora XP

"cada tick" na modelagem, mas acontece nas outras também

----------------

Acabei de verificar que se eu uso a opção "OHLC por 1 minuto" na modelagem acontece outra coisa estranha, ele manda e executa a ordem na posição correta, porém mesmo sem o preço ter chegado lá!

--------------

Alguem poderia me ajudar com isso?

Obrigado desde já!

Estratégias de teste - Trading algorítmico, robôs comerciais - Ajuda para o MetaTrader 5
Estratégias de teste - Trading algorítmico, robôs comerciais - Ajuda para o MetaTrader 5
  • www.metatrader5.com
O testador de estratégias permite testar e otimizar estratégias de negociação ( experts ) antes de as usar em uma...
Arquivos anexados:
111.png  2 kb
222.png  2 kb
 
gustavogdarosa:

Olá pessoal.

Estou testando um robô no ativo CCM$, e estou com o seguinte problema no backtest:

- fiz o código para enviar a ordem de venda do tipo trade.SellLimitnum candle novo, caso as condições tenham sido atendidas

- no visualizador do testador de estratégias vejo que a ordem está sendo enviada no valor correto, mas está sendo executada num valor fora, como no exemplo da imagem abaixo, que era pra ficar pendente até ser executada na mínima do candle anterior (risquei de amarelo).

estou usando conta demo da corretora XP

"cada tick" na modelagem, mas acontece nas outras também

----------------

Acabei de verificar que se eu uso a opção "OHLC por 1 minuto" na modelagem acontece outra coisa estranha, ele manda e executa a ordem na posição correta, porém mesmo sem o preço ter chegado lá!

--------------

Alguem poderia me ajudar com isso?

Obrigado desde já!


Olá Gustavo!


Esqueceu de anexar a imagem...

 

Envia a mensagem como o colega aí falou e observe que ordens do tipo limit serão executadas no melhor preço que ele encontrar, ou seja, nem sempre serão executadas no preço que você as colocou.

Para "garantir" que as ordens sejam executadas no preço determinado deve-se fazer uma compra a mercado ou por uma ordem tipo stop.

O garantir acima foi entre " porque, pode ainda haver um atraso até que o servidor execute sua ordem e assim o preço também pode não ser executado no valor determinado.

Para evitar também possíveis e desagradáveis derrapagens você deve definir um valor de desvio (deviation).

 
Vinicius de Oliveira #:


Olá Gustavo!


Esqueceu de anexar a imagem...

@Vinicius de Oliveira vacilei! Colei a imagem e ela ficou no corpo do texto, mas depois de enviado não foi postada. Já anexei! Obrigado pelo toque.

@Adailton Silva obrigado pela dica! Eu ja tinha dado uma estudada sobre os tipos de ordem, mas na minha cabeça eu jurava que a ordem limit era a que eu precisava! Agora relendo e pensando, para rompimento a ordem stop que é a adequada. Tenho certeza que vai resolver meu problema. Muito obrigado!

Razão: