Neo traderBot

Neo traderBot

Você sabia?

Abordamos o tema de automatização de estratégias em NTSL, MQL5 e NinjaScript!

leaf leftleaf right
Notifications
Clear all

BuyStop e SellShortStop

3 Posts
2 Usuários
0 Reactions
85 Visualizações
(@rodrigoschmoeller)
Membro ativo
Registrou: 7 meses atrás
Posts: 4
Iniciador do tópico  

Quero saber como faço no meu codigo para minhas ordens nao sairem no proximo candle, elas só ficam na tela enquando o candle da condição valida esta aberta, quando o candle fecha as ordens some da tela, quero que elas permanecam até a proxima condição,, Codigo abaixo:

 

input
  FastAverage(21);
  SlowAverage(8);
  pQtdePeriodosAnaliseVolat(100);
var  
  sAvgFast     : Float;
  sAvgSlow     : Float;
  sPrevAvgFast : Float;
  sPrevAvgSlow : Float;
  valorA    :real;
  ValorB    :real;
  amplitude :real;
   p0, p1, p2, p3, p4, p5,var2,var1 : real;
   contador, contador2 :integer;

begin
  // Armazena os valores das médias em variáveis de apoio
  sAvgFast     := MediaExp(FastAverage, Close);
  sAvgSlow     := MediaExp(SlowAverage, Close);
  sPrevAvgFast := sAvgFast[1];
  sPrevAvgSlow := sAvgSlow[1];
  var2 := p3-4 * MinPriceIncrement;
  var1 := p3+4 * MinPriceIncrement;
  if  (BuyPosition = 0) and (SellPosition = 0) and (sPrevAvgFast < sPrevAvgSlow) and (sAvgFast > sAvgSlow) and (contador=0) then
  BEGIN
       
      ValorA   :=  abs(LOW);
      ValorB   :=  abs(HIGH);
      amplitude := abs(ValorB-ValorA) ;
      p0 := valorA + (amplitude * 0);
      p1 := valorA + (amplitude * 0.382);
      p2 := valorA + (amplitude * 0.5);
      p3 := valorA + (amplitude * 0.618);
      p4 := valorA + (amplitude * 1);     //abertura do candle
      p5 := valorB - (amplitude * 1.61);                      //stop
               
 /////////////////////////////              
BuyStop(p2);
PaintBar(clVerde);
 end;
if isBought then
 begin
   
SellToCoverLimit(p3); 
SellToCoverStop(p5 - 8 * MinPriceIncrement,buyposition);

end;
//FECHAMENTO
//FIM ORDEM DE COMPRA ACIMA E CODIÇÃO DE FECHAMENTO ABAIXO SE CRUZAR MEDIAS.


         if (BuyPosition=1)and(SellPosition=0) and (sPrevAvgFast > sPrevAvgSlow) and (sAvgFast < sAvgSlow) then
              BEGIN
      ClosePosition;
      PaintBar(clblue);
       If (hasPendingOrders) then
          CancelPendingOrders;
              end;
 ////////////////////////////////////
      
      if contador=0 then
      begin
      HorizontalLine(p0, clVermelho);
      HorizontalLine(p1, clVerdeClaro);
      HorizontalLine(p2, clVerdeClaro);
      HorizontalLine(p3, clVerdeClaro);
      HorizontalLine(p4, clVerde);
      HorizontalLine(p5, clVermelho);

      contador := contador+ 2;
   
end;
      


   if  (BuyPosition = 0) and (SellPosition = 0)and (sPrevAvgFast > sPrevAvgSlow) and (sAvgFast < sAvgSlow) and (contador=2)  then
 begin
      
      ValorA   :=  abs(LOW);
      ValorB   :=  abs(HIGH);
      amplitude := abs(ValorB-ValorA) ;
      p5 := valorA + (amplitude * 0);
      p4 := valorA + (amplitude * 0.382);
      p3 := valorA + (amplitude * 0.5);
      p2 := valorA + (amplitude * 0.618);
      p1 := valorA + (amplitude * 1); //abetura do candle
      p0 := valorA + (amplitude * 1.61);                 //stop

   //////////////////////////////////////// 

  SellShortStop(p2);
      PaintBar(ClRed);
    end;
      if IsSold then
  begin
   BuyToCoverLimit(p3); 
   BuyToCoverStop(p0 + 8 * MinPriceIncrement,sellposition);
  
   end;
   //FIM DA ORDE DE VENDA
   //FIM ORDEM DE VENDA ACIMA E CODIÇÃO DE FECHAMENTO ABAIXO SE CRUZAR MEDIAS.
          if (BuyPosition=0)and(SellPosition=1) AND (sPrevAvgFast < sPrevAvgSlow) and (sAvgFast > sAvgSlow) then
   BEGIN

      ClosePosition;
      PaintBar(clblue);
      If (hasPendingOrders) then
          CancelPendingOrders;
             end;  
 ////////////////////////////////////////////////
 if (contador=2)  then
 begin
       HorizontalLine(p0, clVermelho);
       HorizontalLine(p1, clVerde);
       HorizontalLine(p2, clVerdeClaro);
       HorizontalLine(p3, clVerdeClaro);
       HorizontalLine(p4, clVerdeClaro);
       HorizontalLine(p5, clVermelho);
     
      contador := contador - 2;      


end;
end;
end;

     
      


   
Citar
 Mkw
(@mkw)
Membro eminente
Registrou: 12 meses atrás
Posts: 18
 

Bom dia,

Você esta usando entradas e saídas de fibonacci em pontos fixo, tente pensar como ponto móvel, usando highest e lowest e adicionando um ponto ou mais pontos de fibonacci. Veja exemplo do tradingview e no final tem o codigo em aberto: https://www.tradingview.com/script/SWe51Ddl-Fibonacci-Golden-Wave-Flux-Charts/

Espero ter ajudado.

Mkw


   
ReplyCitar
(@rodrigoschmoeller)
Membro ativo
Registrou: 7 meses atrás
Posts: 4
Iniciador do tópico  

minha ordem ela plota na tela no ponto X DA FIBO, o candle fecha ela some da tela, ai o preço sobe e fecharia la no meu alvo, ou desce e fecharia no meu alvo, e nao tenho mais ordem na tela rsrss, quero que elas fiquem travada até a reversão da tendencia..


   
ReplyCitar