Advertisement
Maurizio-Ciullo

Bot Reversal Band Easy Language

Mar 26th, 2022 (edited)
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
  2.  
  3. //Il trading system completo - Bot Reversal Band Ver-5 (Strategia Reversal) - parte 1
  4. // (Exchange= FTX) (Sottostante ETH-PERP) (Timeframe= 4H) (Direzione= LONG E SHORT) (Swing Posizione= SI) (Esclusione Ore=NO) (Esclusione Giorni=NO) (Esclusione Mesi=APRILE/AGOSTO)
  5. // (Take Profit Long/Short= Market Close Sopra/Sotto Bande) (Take Profit Limit Long/Short= +12% Tradingview-Hub) (Stop Loss Limit Long= -9% Tradingview-Hub) (Stop Loss Limit Short= -7% Tradingview-Hub) (Trailing Stop=NO) (Stop Emergenza: NO)
  6. // (Rischio Operazione 2% Perdita Media)
  7. // (In Sample Dal=17/08/2017 Al 17/10/2020) (Out Of Sample Dal=18/10/2020 Al 15/03/2021)
  8.  
  9.  
  10. // ATTENZIONE, ALCUNE POSIZIONI SONO DIFFERENTI DA TRADINGVIEW PER VIA DELLE CANDELE CHE POTREBBERO AVERE VALORI LEGGERENTE DIVERSI.
  11. // ATTENZIONE, ALCUNE VOLTE, MOLTO RARAMENTE LE MEDIE POTREBBERO DIFFERIRE SEMPRE PER VIDE DELLE CANDELE CHE POTREBBERO AVERE VALORI LEGGERENTE DIVERSI.
  12. // ATTENZIONE, I VALORI DELL'ADX A VOLTE POSSONO ESSERE DIFFERENTI PER POI RIASSESTARSI DI NUOVO.
  13.  
  14.  
  15. input:
  16.     InitialCapital(100000),
  17.     percent_risk(50),
  18.     input_stop_loss_percent_long(9),
  19.     input_stop_loss_percent_short(7),
  20.     input_target_percent_long(12),
  21.     input_target_percent_short(12),
  22.     lunghezza_sma_long(30),
  23.     lunghezza_sma_short(24),
  24.     deviazione_long(1.5),
  25.     deviazione_short(1.5),
  26.     lunghezza_adx_long(10),
  27.     lunghezza_adx_short(9),
  28.     differenziale_adx_long(35),
  29.     differenziale_adx_short(31),
  30.     lung_ema_long(55),
  31.     lung_ema_short(55),
  32.     //skipday(thursday),
  33.     skipmonth1(4),
  34.     skipmonth2(8),
  35.     solo_long(false),
  36.     solo_short(false);
  37.    
  38. Vars:
  39.      
  40.      media_long(0),
  41.      media_short(0),
  42.      middle_Band_long(0),
  43.      deviazione_st_long(0),
  44.      UpperBand_long(0),
  45.      LowerBand_long(0),
  46.      valore_adx_long(0),
  47.      middle_Band_short(0),
  48.      deviazione_st_short(0),
  49.      UpperBand_short(0),
  50.      LowerBand_short(0),
  51.      valore_adx_short(0),
  52.      stop_loss_long(0),
  53.      stop_loss_short(0),
  54.      target_long(0),
  55.      target_short(0),
  56.      account_equity(0),
  57.      risk(0),
  58.      nr_share(0);
  59.      
  60.      
  61.      
  62.    
  63.  
  64. // Calcololo degli indicatori long
  65.      
  66.  
  67.     middle_Band_long      =   average(close, lunghezza_sma_long);
  68.     deviazione_st_long    =   deviazione_long * StandardDev(close,lunghezza_sma_long, 1);
  69.     UpperBand_long        =   middle_Band_long  + deviazione_st_long;
  70.     LowerBand_long        =   middle_Band_long  - deviazione_st_long;
  71.     valore_adx_long       =   adx(lunghezza_adx_long);
  72.  
  73. // Calcololo degli indicatori short
  74.    
  75.     middle_Band_short      =   average(close, lunghezza_sma_short);
  76.     deviazione_st_short    =   deviazione_short * StandardDev(close,lunghezza_sma_short, 1);
  77.     UpperBand_short        =   middle_Band_short  + deviazione_st_short;
  78.     LowerBand_short        =   middle_Band_short  - deviazione_st_short;
  79.     valore_adx_short       =   adx(lunghezza_adx_short);
  80.    
  81.  
  82.      
  83.      
  84.      
  85.    
  86.     media_long = XAverage(Close, lung_ema_long);
  87.     media_short = XAverage(Close, lung_ema_short); 
  88.      
  89.      
  90. // Money menagment
  91.    
  92.    
  93.     risk = percent_risk/100;
  94.     nr_share = floor((InitialCapital + NetProfit) * risk) / close;
  95.     stop_loss_long=((((InitialCapital + NetProfit) * risk)/100) * input_stop_loss_percent_long);
  96.     stop_loss_short=((((InitialCapital + NetProfit) * risk)/100) * input_stop_loss_percent_short);
  97.     target_long=((((InitialCapital + NetProfit) * risk)/100) * input_target_percent_long);
  98.     target_short=((((InitialCapital + NetProfit) * risk)/100) * input_target_percent_short);
  99.    
  100.    
  101.    
  102.    
  103.    
  104. // Entrata Long
  105.    
  106. begin;
  107.     begin; 
  108.     if close cross over LowerBand_long and close < media_long and valore_adx_long < differenziale_adx_long and month(date) <> skipmonth2 and month(date) <> skipmonth1 {and Dayofweek(date) <> skipday} and not solo_short  then
  109.        
  110.    
  111.         Buy("Long") nr_share contracts Next Bar at market;
  112.        
  113.         If MarketPosition =1 then
  114.         Begin;
  115.         Setstopposition;
  116.         SetStopLoss(stop_loss_long);
  117.         Setprofittarget(target_long);
  118.        
  119.         End;
  120.        
  121.        
  122.        
  123.        
  124. // Uscita Long
  125.          
  126.    
  127.     if close cross over UpperBand_long then
  128.        
  129.         Sell("Chiusura Long") from entry("Long") Next Bar at market;
  130.        
  131.  
  132.    
  133.     end;   
  134.  
  135.    
  136.  
  137. // Entrata Short
  138.    
  139.     begin;
  140.        
  141.         if close cross under UpperBand_short and close > media_short and valore_adx_short < differenziale_adx_short and month(date) <> skipmonth2 and month(date) <> skipmonth1 {and Dayofweek(date) <> skipday} and not solo_long  then
  142.    
  143.             Sellshort("Short") nr_share Contracts Next Bar at market;
  144.            
  145.             If MarketPosition =-1 then
  146.             Begin
  147.             Setstopposition;
  148.             SetStopLoss(stop_loss_short);
  149.             Setprofittarget(target_short);
  150.        
  151.             End;   
  152.        
  153.            
  154.        
  155. // Uscita Short
  156.  
  157.        
  158.         if close cross under LowerBand_short then
  159.            
  160.             Buytocover("Chiusura Short") from entry("Short") Next Bar at market;
  161.          
  162.  
  163.     end;
  164.    
  165. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement