A NeoTraderBot é a primeira comunidade aberta no Brasil com foco em compartilhar informações sobre automatização de estratégias
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;