Advertisement
Maurizio-Ciullo

Study Bot Scalping Exponential Tick

Jun 11th, 2023
818
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. // Questa strategia era la vecchia Scalping Exponential Bot forse con qualcosa di diverso non lo so ... ma ottimizzata sui dati di bybit e non ftx come
  3. // lo era la precedente.
  4.  
  5. // Questa strategia è stata finita solo da Gabriele ma non ho niente apparte il codice strategia, no report/ no altro.
  6.  
  7. // Non è stata testata bene, è rimasta nel casseto a metà, è stata solo ottimizzata da Gabriele sui nuovi dati di Bybit
  8. // ma non è mai stata attivata o convalidata.
  9.  
  10. // [ Pinescript ] Questo è uno study il quale stavamo facendo delle prove per andare live direttamente dallo study perchè lo strategy
  11. // si incasina con varip "tick indicatori e source".
  12.  
  13. // C'è un'altro strategy che abbiamo creato identico a questo e non uno study
  14. // ma stò aspettando Gabriele che me lo passa.
  15.  
  16. //Scalping exponetial bot tendenza data da due medie, close sopra la terza media, trailing stop doppio,
  17. //Periodo in sample 1/5/21 - 1/10/21
  18. //Periodo out of sample 1/10/21 - 28/04/22
  19.  
  20.  
  21. inputs:
  22.     input_target_long(5),
  23.     input_stop_loss_long(1),
  24.     input_target_short(5),
  25.     input_stop_loss_short(2),
  26.     percent_risk(100),
  27.     InitialCapital(100000),
  28.     lunghezza_media_long(140),
  29.     lunghezza_media_tendenza_veloce_long(60),
  30.     lunghezza_media_tendenza_lenta_long(180),
  31.     lunghezza_media_short(100),
  32.     lunghezza_media_tendenza_veloce_short(60),
  33.     lunghezza_media_tendenza_lenta_short(180),
  34.     input_trailing_stop_trigger_long1(45),
  35.     input_trailing_stop_close_long1(40),
  36.     input_trailing_stop_trigger_short1(45),
  37.     input_trailing_stop_close_short1(20),
  38.     input_trailing_stop_trigger_long2(80),
  39.     input_trailing_stop_close_long2(60),
  40.     input_trailing_stop_trigger_short2(80),
  41.     input_trailing_stop_close_short2(50),  
  42.     input_lunghezza_adx_long(9),
  43.     input_lunghezza_adx_short(9),
  44.     input_differenziale_adx_long_alto(25),
  45.     input_differenziale_adx_long_basso(5),
  46.     input_differenziale_adx_short_alto(60),
  47.     input_differenziale_adx_short_basso(30),
  48.     input_differenziale_rsi_long(65),
  49.     input_differenziale_rsi_short(35),
  50.     perc_apertura_minima_long(0.09),
  51.     perc_apertura_minima_short(0.08),
  52.     only_long(false),
  53.     only_short(false);
  54.    
  55.    
  56. vars:
  57.         stop_loss_long(0),
  58.         take_profit_long(0),
  59.         stop_loss_short(0),
  60.         take_profit_short(0),
  61.         risk(0),
  62.         nr_share(0),
  63.         media_long(0),
  64.         media_tendenza_veloce_long(0),
  65.         media_tendenza_lenta_long(0),
  66.         media_short(0),
  67.         media_tendenza_veloce_short(0),
  68.         media_tendenza_lenta_short(0),
  69.         trailing_stop_trigger_long1(0),
  70.         trailing_stop_close_long1(0),
  71.         trailing_stop_trigger_long2(0),
  72.         trailing_stop_close_long2(0),
  73.         highesthigh(0),
  74.         trailing_stop_trigger_short1(0),
  75.         trailing_stop_close_short1(0),
  76.         trailing_stop_trigger_short2(0),
  77.         trailing_stop_close_short2(0),
  78.         lowestlow(0),
  79.         trailing_long(false),
  80.         trailing_long_limit1(false),
  81.         trailing_long_limit2(false),
  82.         trailing_short(false),
  83.         trailing_short_limit1(false),
  84.         trailing_short_limit2(false),
  85.         valore_adx_long(0),
  86.         valore_adx_short(0),
  87.         valore_rsi(0),
  88.         apertura_minima_long(0),
  89.         apertura_minima_short(0);
  90.          
  91.        
  92. //medie esponenziali
  93.  
  94. media_long = XAverage( Close, lunghezza_media_long );
  95. media_tendenza_lenta_long = XAverage( Close, lunghezza_media_tendenza_lenta_long );
  96. media_tendenza_veloce_long = XAverage( Close, lunghezza_media_tendenza_veloce_long );
  97. media_short = XAverage( Close, lunghezza_media_short );
  98. media_tendenza_lenta_short = XAverage( Close, lunghezza_media_tendenza_lenta_short );
  99. media_tendenza_veloce_short = XAverage( Close, lunghezza_media_tendenza_veloce_short );
  100. valore_adx_long = adx(input_lunghezza_adx_long);
  101. valore_adx_short = adx(input_lunghezza_adx_short);
  102. valore_rsi = RSI(close, 9);
  103. apertura_minima_long   = (media_long / 100) * perc_apertura_minima_long;
  104. apertura_minima_short   = (media_short / 100) * perc_apertura_minima_short;
  105.  
  106.  
  107.  //Money menagment
  108.    
  109.    
  110.     risk = percent_risk/100;
  111.     nr_share = floor((InitialCapital + NetProfit) * risk) / close;
  112.     stop_loss_long=((((InitialCapital + NetProfit) * risk)/100) * input_stop_loss_long);
  113.     take_profit_long=((((InitialCapital + NetProfit) * risk)/100) * input_target_long);
  114.     stop_loss_short=((((InitialCapital + NetProfit) * risk)/100) * input_stop_loss_short);
  115.     take_profit_short=((((InitialCapital + NetProfit) * risk)/100) * input_target_short);
  116.     trailing_stop_trigger_long1 = Entryprice + (entryprice * input_target_long /100) * (input_trailing_stop_trigger_long1/100);
  117.     trailing_stop_close_long1 = entryprice + (entryprice * input_target_long /100) * (input_trailing_stop_close_long1/100);
  118.     trailing_stop_trigger_long2 = Entryprice + (entryprice * input_target_long /100) * (input_trailing_stop_trigger_long2/100);
  119.     trailing_stop_close_long2 = entryprice + (entryprice * input_target_long /100) * (input_trailing_stop_close_long2/100);
  120.     highesthigh = highest(high, Barssinceentry);
  121.    
  122.     trailing_stop_trigger_short1 = Entryprice - (entryprice * input_target_short /100) * (input_trailing_stop_trigger_short1/100);
  123.     trailing_stop_close_short1 = entryprice - (entryprice * input_target_short /100) * (input_trailing_stop_close_short1/100);
  124.     trailing_stop_trigger_short2 = Entryprice - (entryprice * input_target_short /100) * (input_trailing_stop_trigger_short2/100);
  125.     trailing_stop_close_short2 = entryprice - (entryprice * input_target_short /100) * (input_trailing_stop_close_short2/100);
  126.     lowestlow = lowest(low, Barssinceentry);
  127.    
  128.     trailing_long = (highesthigh >= trailing_stop_trigger_long1 and close <= trailing_stop_close_long1) or (highesthigh >= trailing_stop_trigger_long2 and close <= trailing_stop_close_long2);
  129.     trailing_long_limit1 = (highesthigh >= trailing_stop_trigger_long1);
  130.     trailing_long_limit2 = (highesthigh >= trailing_stop_trigger_long2);
  131.      
  132.     trailing_short = (lowestlow <= trailing_stop_trigger_short1 and close >= trailing_stop_close_short1) or (lowestlow <= trailing_stop_trigger_short2 and close >= trailing_stop_close_short2);
  133.     trailing_short_limit1 = (lowestlow <= trailing_stop_trigger_short1);
  134.     trailing_short_limit2 = (lowestlow <= trailing_stop_trigger_short2);
  135.  
  136. if marketposition = 0 and close cross over media_long and close > (media_long + apertura_minima_long)  and valore_adx_long > input_differenziale_adx_long_basso and valore_adx_long < input_differenziale_adx_long_alto and media_tendenza_veloce_long > media_tendenza_lenta_long and valore_rsi < input_differenziale_rsi_long and not only_short    Then
  137.  
  138.  
  139.    begin;
  140.    
  141.       Buy("Long") nr_share contracts Next Bar at market;
  142.      
  143.    end;
  144.    
  145. if marketposition = 1 Then
  146.     begin;
  147.         Setstopposition;
  148.         SetStopLoss(stop_loss_long);
  149.         Setprofittarget(take_profit_long);     
  150.     end;
  151.    
  152.  
  153. If  MarketPosition =1 and trailing_long_limit1 then
  154.     Sell("Trailing long1") from entry("Long") Next Bar at  trailing_stop_close_long1 stop;
  155. If  MarketPosition =1 and trailing_long_limit2 then
  156.     Sell("Trailing long2") from entry("Long") Next Bar at  trailing_stop_close_long2 stop;
  157.  
  158.  
  159. //If  MarketPosition =1 and trailing_long then
  160. //  Sell("Chiusura Long") from entry("Long") Next Bar at market;  
  161.  
  162.  
  163.  
  164. if marketposition = 0 and close cross under media_short and close < (media_short - apertura_minima_short)  and media_tendenza_lenta_short > media_tendenza_veloce_short and valore_adx_short > input_differenziale_adx_short_basso and valore_adx_short < input_differenziale_adx_short_alto and valore_rsi > input_differenziale_rsi_short  and not only_long    Then
  165.  
  166.    begin;
  167.    
  168.       sellshort("Short") nr_share contracts Next Bar at market;
  169.        
  170.    end;
  171.  
  172. if marketposition = -1 Then
  173.     begin;
  174.         Setstopposition;
  175.         SetStopLoss(stop_loss_short);
  176.         Setprofittarget(take_profit_short);
  177.          
  178.     end;
  179.    
  180.  
  181. If  MarketPosition = -1 and trailing_short_limit1 then
  182.     buytocover("Trailing short1") from entry("Short") Next Bar  at trailing_stop_close_short1 stop;  
  183.  
  184. If  MarketPosition = -1 and trailing_short_limit2 then
  185.     buytocover("Trailing short2") from entry("Short") Next Bar  at trailing_stop_close_short2 stop;  
  186.  
  187.  
  188. //If  MarketPosition = -1 and trailing_short then
  189.     //buytocover("Chiusura Short") from entry("Short") Next Bar at market;  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement