Neo traderBot

Neo traderBot

Você sabia?

A NeoTraderBot é a primeira comunidade aberta no Brasil com foco em compartilhar informações sobre automatização de estratégias

leaf leftleaf right
Notifications
Clear all

Setup 123 - Inspirado nas ideias de Stormer (L&S Quant)

1 Posts
1 Usuários
0 Reactions
366 Visualizações
(@admin)
Membro Admin
Registrou: 2 anos atrás
Posts: 216
Iniciador do tópico  

Prezados membros,

 

       por oportunidade da série de vídeos "Passeando pela Lojinha", na qual realizamos a análise de desempenho das estratégias mais assinadas na Loja de Estratégias do Profit Chart, e tendo em vista que a estratégia disponibilizada pela L&S Quant de Setup 123 não está correta para tempos gráficos acima de 1D (verificação realizada em 26/03/2023), compartilho abaixo a implementação da Comunidade NeoTraderBot.

 

var
  bGraficoTemporalDiarioOuAcima: boolean;
  bSinalCompra123, bSinalVenda123: boolean;
  fMedia08, fMedia80: float;
  fPrecoStop, fPrecoAlvo: float;
begin
  if CurrentBar = 0 then
  bGraficoTemporalDiarioOuAcima :=  (GraphicInterval = itDaily) 
                                 or (GraphicInterval = itWeekly)
                                 or (GraphicInterval = itMonthly);
  

  bSinalCompra123 := false;
  bSinalVenda123 := false;
  fMedia08 := MediaExp(8, Close);
  fMedia80 := MediaExp(80, Close);
  plot(fMedia08);
  plot2(fMedia80);

  
  if not hasPosition
  and (
        (not bGraficoTemporalDiarioOuAcima)
        or
        ((bGraficoTemporalDiarioOuAcima) and not(bSinalCompra123[1] or bSinalVenda123[1]))
      )
  then
  begin
    // Indentificação Padrão 123 de Compra
    if (Low > Low[1])
    and (Low[1] < Low[2])
    and (fMedia08 > fMedia80)
    and (fMedia08 > fMedia08[1])
    and (fMedia80 > fMedia80[1])
    then
    begin
      bSinalCompra123 := true;
      PaintBar(clBlue);
      PlotText("C", clBlue,3, 10, Low - 3*MinPriceIncrement);

      fPrecoStop := Low - MinPriceIncrement;
      fPrecoAlvo := High + 1.61*(High - Lowest(Low,3));
    end;
  
    // Indentificação Padrão 123 de Venda
    if (High < High[1])
    and (High[1] > High[2])
    and (fMedia08 < fMedia80)
    and (fMedia08 < fMedia08[1])
    and (fMedia80 < fMedia80[1])
    then
    begin
      bSinalVenda123 := true;
      PaintBar(clRed);
      PlotText("V", clRed,3, 10, High + 3*MinPriceIncrement);

      fPrecoStop := High + MinPriceIncrement;
      fPrecoAlvo := Low - 1.61*(Highest(High,3) - Low);
    end;
  end;

  //Tratamento dos sinais de identificação
  if not bGraficoTemporalDiarioOuAcima
  then
  begin
    if bSinalCompra123
    then BuyStop(High + MinPriceIncrement, High + MinPriceIncrement);
  
    if bSinalVenda123 
    then SellShortStop(Low - MinPriceIncrement, Low - MinPriceIncrement);
  end
  else
  begin
    if bSinalCompra123[1]
    then BuyStop(High[1] + MinPriceIncrement, High[1] + MinPriceIncrement);
  
    if bSinalVenda123[1] 
    then SellShortStop(Low[1] - MinPriceIncrement, Low[1] - MinPriceIncrement);
  end;

  // Gestão das posições
  if isBought then
  begin
    SellToCoverStop(fPrecoStop, fPrecoStop - 10*MinPriceIncrement);
    SellToCoverLimit(fPrecoAlvo);
  end;

  if isSold then
  begin
    BuyToCoverStop(fPrecoStop, fPrecoStop + 10*MinPriceIncrement);
    BuyToCoverLimit(fPrecoAlvo);
  end;

end;
This topic was modified 2 anos atrás by Johnathas

   
Citar