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

[Solucionado] poderiam avaliar o meu codigo não está funcionando com nuvens tilson que coloca a regra de confirmação com a media 32

4 Posts
2 Usuários
2 Reactions
142 Visualizações
(@geraldo-chaves)
Membro ativo
Registrou: 2 anos atrás
Posts: 4
Iniciador do tópico  

Boa tarde Johnathas e colegas do Forum, Voces poderiam avaliar o meu codigo e como colocar a regra de confirmação com a media 32, pois ainda tenho dificuldade na logica? Segue a abaixo o processo do setup e o codigo:

Confirmação
A calda (minima para baixa ou alta) e a Corpo (maxima para baixa ou alta ) do Renko

Entrada
1 - tilson acima/abaixo da media de 32
2 - O renko de 15 devem estar com a media de 32 na nesma direçao Input

MediaRapida(5);
MediaLenta(8);
MediaExtraLenta(32);

var

savgFast: float;
savgSlow: float;
savgExtraSlow: float;

Begin

savgFast:= (Tilson(0.40,MediaRapida));
savgSlow:= (Tilson(0.30,MediaLenta));
savgExtraSlow:= MediaExp(MediaExtraLenta,FECHAMENTO)

if (savgFast > savgSlow) then Paintbar(clverde);

if (savgFast < savgSlow) then Paintbar(clvermelho);

if (Hasposition = false ) then
Begin
if (savgFast > savgSlow) and (Minima < savgSlow) and (Maxima > savgFast) and (Fechamento > Abertura) then
BuyAtMarket;

if (savgFast < savgSlow) and (Minima < savgSlowL) and (Maxima > savgSlow) and (Fechamento < Abertura) e then
SellShortAtMarket;
end;

plot(savgFast);

plot2(savgSlow);

end;


   
Citar
Credson
(@m4tr1xbr)
Membro Moderator
Registrou: 2 anos atrás
Posts: 45
 

Fala Geraldo blz.

Bom não entendi muito bem o que você quer, mas vou postar algumas alterações que fiz e a partir delas você faz as alterações que desejar. 

Você não especificou as saídas da compra e da venda, em que momento você quer sair do trade. Ex. quando a tilson rápida cruzar a tilson lenta ou quando alguma tilson cruzar a média de 32, ou quando o preço fechar abaixo de alguma das médias. De qualquer forma é só alterar no código abaixo.

Apenas para melhorar a leitura do código criei mais 4 variáveis booleanas para definir quando um box é de alta ou baixa e para definir quando as tilsons estão acima da média de 32.

Outra coisa importante a se observar é o seguinte: No seu código você apenas define que uma média é maior que a outra: (savgFast > savgSlow) nesse caso a condição irá se repetir a cada novo candle até que a media vire para baixo (savgFast < savgSlow). 

Caso queira que a condição só seja acionada exatamente no cruzamento das média você deve utilizar a seguinte condição: ((savgFast[1] > savgSlow[1]) and (savgFast > savgSlow)) aqui estou dizendo que a condição se satisfaz exatamente no momento que a média savgFast cruz para cima da savgSlow. Essa condição só irá se repetir quando as médias cruzarem para baixo e depois cruzarem para cima novamente.

caso não entenda alguma coisa é só mandar msg.

 

var

  savgFast: float;
  savgSlow: float;
  savgExtraSlow: float;
  bBoxAlta:boolean;
  bBoxbaixa:boolean;
  bTendenciaAlta:boolean;
  bTendenciaBaixa:boolean;

Begin

  savgFast:= (Tilson(0.40,MediaRapida));
  savgSlow:= (Tilson(0.30,MediaLenta));
  savgExtraSlow:= MediaExp(MediaExtraLenta,FECHAMENTO);

  bBoxAlta :=(Fechamento > Abertura);  //Condição para definir um box de alta
  bBoxBaixa:=(Fechamento < Abertura);  //Condição para definir um box de baixa

  bTendenciaAlta:= (savgFast > savgSlow) and (savgSlow > savgExtraSlow);   //Verifica se as tilsons estão acima da média 32
  bTendenciaBaixa:=(savgFast < savgSlow) and (savgSlow < savgExtraSlow);   //verifica se as tilsons estão abaixo da média 32


  if (savgFast > savgSlow) then Paintbar(clverde);

  if (savgFast < savgSlow) then Paintbar(clvermelho);



  //Define as condições de entrada
  if Not(Hasposition) then  //Se não estiver posicionado
     begin

     //Condição de compra
      if (savgFast > savgSlow) and (Minima < savgSlow) and (Maxima > savgFast) and (bBoxAlta) and (bTendenciaAlta) then
        BuyAtMarket

      //Condição de venda
      else if (savgFast < savgSlow) and (Minima < savgSlow) and (Maxima > savgSlow) and (bBoxBaixa) and (bTendenciaBaixa) then
        SellShortAtMarket;
     end;


  //Define as condições de saída do trade 
  if (IsBought) and (fechamento < savgSlow) then
     ClosePosition; //Closeposition fecha qualquer posição abertra. Pode ser usado também "SellToCoverAtMarket"
     

  if (IsSold) and (fechamento > savgExtraSlow) then
     ClosePosition; //Closeposition fecha qualquer posição abertra. Pode ser usado também "BuyToCoverAtMarket"
    

  //Plota as médias Tilson e média de 32
  plot(savgFast);
    SetPlotColor (1,clAqua);
  plot2(savgSlow);
    SetPlotColor(2,clFuchsia);
  Plot3 (savgExtraSlow);


end;

   
Johnathas reacted
ReplyCitar
Credson
(@m4tr1xbr)
Membro Moderator
Registrou: 2 anos atrás
Posts: 45
 

Eu refiz todo o código, com base no setup que você quer executar dá uma olhada no post: Renko com nuvens de Tilson : “Tilson Box Breakout” – Compartilhamento de códigos fontes de membros da Comunidade – Neo TraderBot Forum


   
Johnathas reacted
ReplyCitar
(@geraldo-chaves)
Membro ativo
Registrou: 2 anos atrás
Posts: 4
Iniciador do tópico  

@m4tr1xbr Muito obrigado mesmo Credson pela sua ajuda, vou validar se codigo e se caso necessário vou tentar ajusta-lo, só faltou inserir no seu codigo as inputs

MediaRapida(5);
MediaLenta(8);
MediaExtraLenta(32);

Sobre as saida eu estou defindo em OCO por exemplo 300pts de gain e 150Loss no 12R masi ainda estou testando, gostei deste setup pois realmente é bem acertivo em determinas horarios do dia, eu vi este setup mas pelo https://www.youtube.com/watch?v=eFswgSfOGes&t=174s


   
ReplyCitar