Abordamos o tema de automatização de estratégias em NTSL, MQL5 e NinjaScript!
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;
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
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..