Confira os nossos eBooks, Snippets e Fóruns produzidos para cada plataforma!
Gostaria de tirar uma dúvida, programei um robo que faz uma compra (com ordem limite) em uma média x, quando a diferença de 2 médias é y pontos e tem um stop de z pontos. Acontece que as vezes ele é stopado, e ainda da as condições para entrar no trade , então logo que é stopado, ele recompra, e eu não quero isso. Como faço para impedir de fazer uma compra logo depois de ser stopado? Desde já agradeço!
Olá Renan!
Uma forma de impedir de fazer a compra logo depois de ser stopado é utilizar um contador de barras. Mas poderia-se pensar diversas outras formas, como por exemplo, o preço movimentar x% ou y ticks.
Fiz o código abaixo de exemplo no caso de aguardar Barras após um loss. Este código funciona para backtesting. No caso de aplicar em um gráfico com dados tick a tick ou módulo de automação, a lógica precisa ser refinada pois os contadores devem atuar apenas no primeiro tick de cada barra.
Espero que lhe ajude. Grande abs!
const iBarrasAEsperarAposLoss = 3; var fResultadoDia: float; iData, iHorarioBarra: integer; iTimeOut: integer; begin //Zera a variavel de resultado diário if iData <> Date then begin fResultadoDia := 0; iData := Date; end; fResultadoDia := DailyResult(false); //Houve prejuízo na ultima operação if fResultadoDia < fResultadoDia[1] then begin iTimeOut := iBarrasAEsperarAposLoss; iHorarioBarra := Time; end; //Aguarda TimeOut if iTimeOut <> 0 then begin if Time <> iHorarioBarra then begin iHorarioBarra := Time; iTimeOut := iTimeOut - 1; end; end else begin // Abertura de posições if (not hasPosition) and (iTimeOut = 0) then BuyAtMarket; end; // Gestão das posições if isBought then begin SellToCoverStop(buyprice - 20*MinPriceIncrement, buyprice - 40*MinPriceIncrement); SellToCoverLimit(buyPrice + 60*MinPriceIncrement); end; end;
Possa ser que seja parecido a dúvida com a situação do amigo aí, a minha programação é baseado em fechamento de reversão mas eu queria bloquear o envio de uma nova ordem após um loss para evitar dias de tendência forte, caso o preço esteja subindo e faça uma venda e essa venha a dá loss, gostaria de impedir novas vendas e só liberar qnd tivesse um gain na compra