Um backtesting adequado deve buscar simular situações práticas do mercado (slippage, custo de operação, etc...)
Imagine se ao entrar em uma operação tenho uma meta de ganho. Antes de atingir este ganho, faço um breakeven de 100 pontos a cada ganho de 300 pontos. Ao atingir a meta de ganho, R$300 reais por exemplo, quero ajustar mais o breakeven para mitigar ainda uma possivel perda, por exemplo, ajustado 100 pontos a cada 100 de ganho deixando o stop muito proximo ao preço.
Oi @alexandrecnunes!
Isso que você explicou é um stop móvel. Porém, mais elaborado...
Só para a gente padronizar os termos...Breakeven é zerar risco...dentro de um trade, entendemos como colocar o stop no mesmo ponto de entrada da operação (ou preço médio, caso tenha feito montagem de posição).
O que você está descrevendo é um stop móvel com dois modos...um primeiro mais "frouxo" com maior distância em relação à cotação. E um segundo nível, quando alcança sua meta, de seguir o preço com uma distância menor.
Via código é possível programar essa estratégia de gestão de trade com um stopmóvel multinível (chamemos assim).
Você já viu os snippets de stop móvel? Bastaria fazer uma adaptação neles...
@admin Sim, usei a expressão errada, era stop movel que estava me referindo.
Mas minha duvida principal é qual função que devo usar para saber o valor de gain e ver se atingiu a meta estipulada.
Oi @alexandrecnunes!
A sua verificação de ganho em reais terá que ser calculada da seguinte forma:
Para posições compradas/vendidas:
if MinPriceIncrement = 0.5 then fator := 10 else if MinPriceIncrement = 5 then fator := 0.2 else fator := 1; resultadoOperacaoCompra := BuyPosition*(Close-buyPrice)*fator; resultadoOperacaoVenda := SellPosition*(SellPrice - Close)*fator;
Infelizmente não existe uma funcionalidade nativa que dê esse resultado por uma chamada de função. O código acima é o caso mais simples...quando se faz uma única entrada e o tamanho da posição não se altera até o encerramento da posição.
No caso de trades com entradas e saídas parciais, a situação se complica bastante. É bem relacionado ao ponto de cobertura que você perguntou em outro tópico (ainda vou trabalhar naquele código hoje).
Espero ter ajudado!
Abs!
@admin Imaginei que complicaria quando colocasse saidas parciais.
O profit ainda é meio engessado para criar estrategias mais elaboradas.
Por isso estou estudando em paralelo o MT5.
Acho uma boa estratégia da sua parte!
Daqui a pouco poderemos trocar experiências sobre MT5.
Abs!