Neo traderBot

Neo traderBot

Você sabia?

Um backtesting adequado deve buscar simular situações práticas do mercado (slippage, custo de operação, etc...)

leaf leftleaf right
Notifications
Clear all

[Solucionado] Ao levar Stop, só voltar a operar após certas condições

3 Posts
2 Usuários
1 Reactions
165 Visualizações
(@alexandre-ferreira-cardoso)
Membro eminente
Registrou: 2 anos atrás
Posts: 17
Iniciador do tópico  

Boa noite,

Seria possível que ao ocorrer um stop loss (ou inverter uma posição com perdas), a automação somente volte a entrar em operações n minutos após o stop ou então quando o preço ficar acima ou abaixo do stop x pontos?
Tenho uma automação que é baseada no cruzamento de médias e uma operação pode ser encerrada por stop loss, ou pelo cruzamento no sentido oposto, invertendo a entrada. Mas em alguns momentos os preços ficam oscilando muito dentro de uma consolidação, invertendo a operação a toda hora, e normalmente com perdas.


   
Citar
masker
(@masker)
Membro confiável
Registrou: 2 anos atrás
Posts: 41
 

Olá, isso deve funcionar.

const
  // MUDE AQUUI O INTERVALO DE MINUTOS
  cIntervaloOperacoes = 30;

var
  iMinutosUltimaOperacao: integer;
  fMedia: float;
  bStopLoss: boolean;

begin
  // INICIA CONTADOR DE TEMPO DA ULTIMA OPERAÇÃO
  if Time <> iMinutosUltimaOperacao then
  begin
    iMinutosUltimaOperacao := Time;
  end;

  // SUA ESTRATÈGIA AQUI
  // Condição para abrir nova posição caso não tenha levado nenhum stoploss nos útimos minutos definidos
  if Time - iMinutosUltimaOperacao < cIntervaloOperacoes then
  begin



  end;

  // ATUALIZA O CONTADOR DE TEMPO SE OCORRER UM STOPLOSS
  if bStopLoss then
  begin
    iMinutosUltimaOperacao := Time;
    bStopLoss := false;
  end;


  // VERIFICA SE STOPLOSS FOI ATINGIDO
  if isBought and (Close < buyPrice - 5*MinPriceIncrement) then
  begin
    SellShortAtMarket;
    bStopLoss := true;
  end;
  if isSold and (Close > sellPrice + 5*MinPriceIncrement) then
  begin
    BuyAtMarket;
    bStopLoss := true;
  end;


  // GESTÃO DE ORDEM COMPRADA
  if isBought then
  begin


  end;

  // GESTÃO DE ORDEM VENDIDA
  if isSold then
  begin


  end;
end;

   
Johnathas reacted
ReplyCitar
(@alexandre-ferreira-cardoso)
Membro eminente
Registrou: 2 anos atrás
Posts: 17
Iniciador do tópico  

@masker Valeu. Ajudou muito! Obrigado!


   
ReplyCitar