Neo traderBot

Neo traderBot

Você sabia?

Um backtesting adequado deve buscar simular situações práticas do mercado (slippage, custo de operação, etc...)

leaf leftleaf right
Notifications
Clear all

Renko com nuvens de Tilson : "Tilson Box Breakout"

2 Posts
2 Usuários
1 Reactions
331 Visualizações
Credson
(@m4tr1xbr)
Membro Moderator
Registrou: 2 anos atrás
Posts: 45
Iniciador do tópico  

A partir da dúvida de outro usuário aqui do fórum resolvi construir esse código baseado em Gráfico Renko com Nuvens de Tilson. 

 

//==================================================================================================//
//                                        ..:::..                                                   //
//                                    :=**++=====-:                                                 //
//                                  :**=.      ..:--:.     ..:..                                    //
//                                 +**   ..:---===---:. :=====+=.                                   //
//                                 =**-:::::....:-=+*+-===-. .:++-                                  //
//                               ...***:            -*++=:-:   .=*:                                 //
//                            :----=+**+:           -+++.  :+:   ++                                 //
//                         .-=::==-::-**+=.        .+++-    .+=. :*:                                //
//                       .=+: :+=.    .++++-.     :++++       =+: +=                                //
//                      -*=. .+=        +++++-: :=**++-        +*:-=                                //
//                     =*=   +=         :+++++==++**++.        :**:=                                //
//                    -*+   :+           +++++====**++         .**:-                                //
//                    =*+   +:        .:-===++=-==**++-:..  ...=**.:                                //
//                    .**+-:+...::--========+:   :**++=======++++++++-:                             //
//                     .=+*++++**++++++====+*.   .++=========-----+=+**=                            //
//                        .--**+--::::-=======-:-++====-::.      .+  :**-                           //
//                         -:**.         ++==++++++++=           =-   +*-                           //
//                         =:**.        .++*++++++++++.         -+.  :*+.                           //
//                         +:=*=        :+**++-:-+++++-        :+:  -*+.                            //
//                         == =*-       =***=.   .-++++-      -+- .=+-                              //
//                         -*. -+-     :***-        -++*+. .:=+-.-+-.                               //
//                         .*=  .==.  .+**=          .=***===-:--:                                  //
//                          =*-   .=-.=+**:            =***:.:.                                     //
//                           ++=.   :==++*+-:.       ..:=+*-                                        //
//                            -++=-====..-=++++++==--:. .**+                                        //
//                             .:---:.   .::::..        :**-                                        //
//                                         .:-=---:---+**-                                          //
//                                           .::--=--:.                                             //
//                                              .:=:.                                               // 
//  ____                        _     _____                       _         _    _                  //
// / __ \                      | |   |  __ \                     | |       | |  (_)                 //
//| |  | | _   _   __ _  _ __  | |_  | |__) |  ___ __   __  ___  | | _   _ | |_  _   ___   _ __     //
//| |  | || | | | / _` || '_ \ | __| |  _  /  / _ \\ \ / / / _ \ | || | | || __|| | / _ \ | '_ \    //
//| |__| || |_| || (_| || | | || |_  | | \ \ |  __/ \ V / | (_) || || |_| || |_ | || (_) || | | |   //
// \___\_\ \__,_| \__,_||_| |_| \__| |_|  \_\ \___|  \_/   \___/ |_| \__,_| \__||_| \___/ |_| |_|   //
//                                                                                                  //
//   NOME: "TILSON BOX BREAKOUT"                                                                    // 
//   TIPO: EXECUÇÃO                                                                                 //
//   AUTOR: Credson Santos                                                                          //
//   DATA DE CRIAÇÃO: 11/04/2023                                                                    //
//             VERSÃO: 1.0                                                                          //
//   TIPO DE ESTRATÉGIA: ( ) Indicador  ( ) Coloração (x) Execução                                  //
//                       ( ) Screening  ( ) Texto     ( ) Alarme//                                  //
// CONFIGURAÇÕES PADRÃO                                                                             //
// Tilson: 5, desvio: 0.40                                                                          //
// Tilson: 8, desvio: 0.40                                                                          //
// Média Exp: 34                                                                                    //
// O Código fonte está sujeito aos termos da Mozilla Public License 2.0, disponível em:             //
//  https://mozilla.org/MPL/2.0/                                                                      //
// Esse indicador pode ser utilizado em qualquer estratégia não comercial                           //

 

// CONSTS ==========================================================================


// INPUTS ==========================================================================
input
  {Definição das médias}
  pFastTilson(5);
  pSlowTilson(8);
  pEma(34);

  {Horário da Estratégia}
  pStartTime  (900);
  pEndTime    (1700);
  pDayTrade   (1);

// VARIÁVEIS ==========================================================================
var

  bBuySignal      :boolean;
  bSellSignal     :boolean;
  fTilson1        :float;
  fTilson2        :float;
  fMovingExp      :float;
  fBoxRange       :float;
  bUpBox          :boolean;
  bDownBox        :boolean;
  bUpTrend        :boolean;
  bDownTrend      :boolean;
  bUpEngulf       :boolean;
  bDownEngulf     :boolean;

// REGRAS DO SETUP ==========================================================================
Begin
  
  {Cálculo dos indicadores}
  fTilson1:= (Tilson(0.40,pFastTilson));
  fTilson2:= (Tilson(0.40,pSlowTilson));
  fMovingExp:= MediaExp(pEma,close);
  {Definição das condições dos box}
  bUpBox  :=(close > open) and (Abs(Low - Open)>= (Abs(Close-Open)));    //Condição para definir se o box de alta está com pavio
  bDownBox:=(close < open) and (Abs(High - Open)>= (Abs(Close-Open)));  //Condição para definir se o box de baixa está com pavio
  {Definição das condições de tendência}
  bUpTrend  := (fTilson1 > fTilson2) and (fTilson2 > fMovingExp);   //Verifica se as médias estão alinhadas para cima
  bDownTrend:=(fTilson1 < fTilson2) and (fTilson2 < fMovingExp);   //verifica se médias estão alinhadas para baixo
  {Definição das condições para engolfo}
  bUpEngulf  := ((Low <=fTilson2) and (High >=fTilson1));
  bDownEngulf:= ((High >=fTilson2) and (Low <=fTilson1));
  {Definição dos sinais de entrada}
  bBuySignal := (bUpTrend) and (bUpBox) and (bUpEngulf);
  bSellSignal:=(bDownTrend) and (bDownBox) and (bDownEngulf);

  //fBoxRange:=Abs(Open[1]-close[1]);

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

     {Condição de compra}
      if (bBuySignal) then
        BuyAtMarket
      {Condição de venda}
      else if (bSellSignal) then
        SellShortAtMarket;
     end;

  {Busca as saídas} 
  if (IsBought) then
    begin
      SellToCoverLimit(BuyPrice+200);  //saída no takeprofit
      SellToCoverStop(BuyPrice-200);  //saída no stoploss
    end; 
  if (IsSold) then
    begin
      BuyToCoverLimit(SellPrice-200);
      BuyToCoverStop(SellPrice+200);
    end;
// REGRAS DE COLORAÇÃO E PLOTS ==========================================================================    
 if (bBuySignal) then Paintbar(clverde);
 if (bSellSignal) then Paintbar(clvermelho);

  {Para usar a nuvem Plote somente as tilsons }
  plot(fTilson1);
    SetPlotColor (1,clAqua);
  plot2(fTilson2);
    SetPlotColor(2,clFuchsia);


// REDEFINIÇÃO DE VARIÁVEIS E ENCERRAMENTO ==========================================================================
  If (pDayTrade = 1) then
  begin
    If (Time >= pEndTime) then
    ClosePosition;
  end;

end;
 

   
Johnathas reacted
Citar
(@geraldo-chaves)
Membro ativo
Registrou: 2 anos atrás
Posts: 4
 

Novamente obrigado Credson, por compartilhar esta estrategia das nuvens Tilson. Vou avalir nos testes com elas e estudar seu codigo. 


   
ReplyCitar