Neo traderBot

Neo traderBot

Você sabia?

Confira os nossos eBooks, Snippets e Fóruns produzidos para cada plataforma!

leaf leftleaf right
Notifications
Clear all

[Solucionado] Retração de Fibonacci

4 Posts
2 Usuários
1 Reactions
158 Visualizações
(@muricio)
Novo membro
Registrou: 2 anos atrás
Posts: 2
Iniciador do tópico  

Identificar como plotar os níveis de retração de Fibonacci no gráfico de 15 min  do mini índice e posicionar uma entrada no 38% desta retração.

Desde já te agradeço.


   
Citar
(@admin)
Membro Admin
Registrou: 2 anos atrás
Posts: 216
 

Boa noite Mauricio! Você poderia dar mais detalhes. Quando estava implementando fiquei na dúvida em alguns itens:

1) Se a última pernada for de alta, você quer deixar uma compra stop na retração de 38%?

2) Se a última pernada for de baixa, seria uma venda stop na retração de 38%?


   
ReplyCitar
(@muricio)
Novo membro
Registrou: 2 anos atrás
Posts: 2
Iniciador do tópico  

Bom dia,

Sim, tanto na compra quanto na venda, além disso, caso a entrada não seja acionada e o preço ultrapassar a máxima definida, a entrada deve ser cancelada.

Também imaginei a colocação de limites mínimos para considerar a retração.

Ex.: Caso a diferença entre mínimo e máxima seja menor que 400 pts, não montar posição. Tentando evitar assim muitas entradas no dia.

PS.: Parabéns pelo vídeo de ontem "Diferenças na execução de ordens", excelente para quem pretende programar de verdade.


   
Johnathas reacted
ReplyCitar
(@admin)
Membro Admin
Registrou: 2 anos atrás
Posts: 216
 

Oi Maurício!

Obrigado, cara! Que bom que gostou do vídeo! 

Olha, resolvi postar aqui embaixo uma primeira versão que plota apenas as retrações de fibonacci. Sugiro você fazer o seguinte: salve a estratégia e adicione a um gráfico junto com o indicador de identificação de topo e fundo com parâmetro de 2 candles.

Veja se as entradas que está propondo fazem sentido no tempo gráfico que deseja, tendo em vista as retrações.

 

const
  cRetracaoFibo1 = 0.618;
  cRetracaoFibo2 = 0.5;
  cRetracaoFibo3 = 0.3;

input
  pQtdeCandlesReversao(2);

var
  fTopoFundo1,fTopoFundo2 : float;
  fTBD                    : float;
  iProxRegistroTopoFundo  : integer;

begin

  // Detecta Topo e Fundos e armazena nas duas variaveis
  // fTopoFundo1 e fTopoFundo2
  fTBD := TopBottomDetector(pQtdeCandlesReversao);

  if fTBD <> 0 then
  begin
    if iProxRegistroTopoFundo = 0 then
      begin
        fTopoFundo1 := fTBD;
        iProxRegistroTopoFundo := 1;
      end
    else if iProxRegistroTopoFundo = 1 then
      begin
        fTopoFundo2 := fTBD;
        iProxRegistroTopoFundo := 0;
      end;
   end;


if (fTopoFundo1 <> 0) and (fTopoFundo2 <> 0) then
  begin
    if iProxRegistroTopoFundo = 0 then
      begin
        // Último valor registrado é um topo
        if fTopoFundo2 > fTopoFundo1 then
          begin
            PlotN(5,fTopoFundo1 + (fTopoFundo2 - fTopoFundo1) * cRetracaoFibo1);
            PlotN(4,fTopoFundo1 + (fTopoFundo2 - fTopoFundo1) * cRetracaoFibo2);
            PlotN(3,fTopoFundo1 + (fTopoFundo2 - fTopoFundo1) * cRetracaoFibo3);
          end
        else 
          // Último valor registrado é um fundo
          begin
            PlotN(3,fTopoFundo1 - (fTopoFundo1 - fTopoFundo2) * cRetracaoFibo1);
            PlotN(4,fTopoFundo1 - (fTopoFundo1 - fTopoFundo2) * cRetracaoFibo2);
            PlotN(5,fTopoFundo1 - (fTopoFundo1 - fTopoFundo2) * cRetracaoFibo3);
          end;
      end
      else
      begin
        // Último valor registrado é um topo
        if fTopoFundo1 > fTopoFundo2 then
          begin
            PlotN(5,fTopoFundo1 - (fTopoFundo1 - fTopoFundo2) * cRetracaoFibo1);
            PlotN(4,fTopoFundo1 - (fTopoFundo1 - fTopoFundo2) * cRetracaoFibo2);
            PlotN(3,fTopoFundo1 - (fTopoFundo1 - fTopoFundo2) * cRetracaoFibo3);
          end
        else 
          // Último valor registrado é um fundo
          begin
            PlotN(3,fTopoFundo1 + (fTopoFundo2 - fTopoFundo1) * cRetracaoFibo1);
            PlotN(4,fTopoFundo1 + (fTopoFundo2 - fTopoFundo1) * cRetracaoFibo2);
            PlotN(5,fTopoFundo1 + (fTopoFundo2 - fTopoFundo1) * cRetracaoFibo3);
          end;
      end;
  end;

  SetPlotColor(3,clGreen);
  SetPlotColor(4,clYellow);
  SetPlotColor(5,clRed);

  
end

   
ReplyCitar