Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 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
- // lo era la precedente.
- // Questa strategia è stata finita solo da Gabriele ma non ho niente apparte il codice strategia, no report/ no altro.
- // Non è stata testata bene, è rimasta nel casseto a metà, è stata solo ottimizzata da Gabriele sui nuovi dati di Bybit
- // ma non è mai stata attivata o convalidata.
- // [ Pinescript ] Questo è uno study il quale stavamo facendo delle prove per andare live direttamente dallo study perchè lo strategy
- // si incasina con varip "tick indicatori e source".
- // C'è un'altro strategy che abbiamo creato identico a questo e non uno study
- // ma stò aspettando Gabriele che me lo passa.
- //Scalping exponetial bot tendenza data da due medie, close sopra la terza media, trailing stop doppio,
- //Periodo in sample 1/5/21 - 1/10/21
- //Periodo out of sample 1/10/21 - 28/04/22
- inputs:
- input_target_long(5),
- input_stop_loss_long(1),
- input_target_short(5),
- input_stop_loss_short(2),
- percent_risk(100),
- InitialCapital(100000),
- lunghezza_media_long(140),
- lunghezza_media_tendenza_veloce_long(60),
- lunghezza_media_tendenza_lenta_long(180),
- lunghezza_media_short(100),
- lunghezza_media_tendenza_veloce_short(60),
- lunghezza_media_tendenza_lenta_short(180),
- input_trailing_stop_trigger_long1(45),
- input_trailing_stop_close_long1(40),
- input_trailing_stop_trigger_short1(45),
- input_trailing_stop_close_short1(20),
- input_trailing_stop_trigger_long2(80),
- input_trailing_stop_close_long2(60),
- input_trailing_stop_trigger_short2(80),
- input_trailing_stop_close_short2(50),
- input_lunghezza_adx_long(9),
- input_lunghezza_adx_short(9),
- input_differenziale_adx_long_alto(25),
- input_differenziale_adx_long_basso(5),
- input_differenziale_adx_short_alto(60),
- input_differenziale_adx_short_basso(30),
- input_differenziale_rsi_long(65),
- input_differenziale_rsi_short(35),
- perc_apertura_minima_long(0.09),
- perc_apertura_minima_short(0.08),
- only_long(false),
- only_short(false);
- vars:
- stop_loss_long(0),
- take_profit_long(0),
- stop_loss_short(0),
- take_profit_short(0),
- risk(0),
- nr_share(0),
- media_long(0),
- media_tendenza_veloce_long(0),
- media_tendenza_lenta_long(0),
- media_short(0),
- media_tendenza_veloce_short(0),
- media_tendenza_lenta_short(0),
- trailing_stop_trigger_long1(0),
- trailing_stop_close_long1(0),
- trailing_stop_trigger_long2(0),
- trailing_stop_close_long2(0),
- highesthigh(0),
- trailing_stop_trigger_short1(0),
- trailing_stop_close_short1(0),
- trailing_stop_trigger_short2(0),
- trailing_stop_close_short2(0),
- lowestlow(0),
- trailing_long(false),
- trailing_long_limit1(false),
- trailing_long_limit2(false),
- trailing_short(false),
- trailing_short_limit1(false),
- trailing_short_limit2(false),
- valore_adx_long(0),
- valore_adx_short(0),
- valore_rsi(0),
- apertura_minima_long(0),
- apertura_minima_short(0);
- //medie esponenziali
- media_long = XAverage( Close, lunghezza_media_long );
- media_tendenza_lenta_long = XAverage( Close, lunghezza_media_tendenza_lenta_long );
- media_tendenza_veloce_long = XAverage( Close, lunghezza_media_tendenza_veloce_long );
- media_short = XAverage( Close, lunghezza_media_short );
- media_tendenza_lenta_short = XAverage( Close, lunghezza_media_tendenza_lenta_short );
- media_tendenza_veloce_short = XAverage( Close, lunghezza_media_tendenza_veloce_short );
- valore_adx_long = adx(input_lunghezza_adx_long);
- valore_adx_short = adx(input_lunghezza_adx_short);
- valore_rsi = RSI(close, 9);
- apertura_minima_long = (media_long / 100) * perc_apertura_minima_long;
- apertura_minima_short = (media_short / 100) * perc_apertura_minima_short;
- //Money menagment
- risk = percent_risk/100;
- nr_share = floor((InitialCapital + NetProfit) * risk) / close;
- stop_loss_long=((((InitialCapital + NetProfit) * risk)/100) * input_stop_loss_long);
- take_profit_long=((((InitialCapital + NetProfit) * risk)/100) * input_target_long);
- stop_loss_short=((((InitialCapital + NetProfit) * risk)/100) * input_stop_loss_short);
- take_profit_short=((((InitialCapital + NetProfit) * risk)/100) * input_target_short);
- trailing_stop_trigger_long1 = Entryprice + (entryprice * input_target_long /100) * (input_trailing_stop_trigger_long1/100);
- trailing_stop_close_long1 = entryprice + (entryprice * input_target_long /100) * (input_trailing_stop_close_long1/100);
- trailing_stop_trigger_long2 = Entryprice + (entryprice * input_target_long /100) * (input_trailing_stop_trigger_long2/100);
- trailing_stop_close_long2 = entryprice + (entryprice * input_target_long /100) * (input_trailing_stop_close_long2/100);
- highesthigh = highest(high, Barssinceentry);
- trailing_stop_trigger_short1 = Entryprice - (entryprice * input_target_short /100) * (input_trailing_stop_trigger_short1/100);
- trailing_stop_close_short1 = entryprice - (entryprice * input_target_short /100) * (input_trailing_stop_close_short1/100);
- trailing_stop_trigger_short2 = Entryprice - (entryprice * input_target_short /100) * (input_trailing_stop_trigger_short2/100);
- trailing_stop_close_short2 = entryprice - (entryprice * input_target_short /100) * (input_trailing_stop_close_short2/100);
- lowestlow = lowest(low, Barssinceentry);
- 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);
- trailing_long_limit1 = (highesthigh >= trailing_stop_trigger_long1);
- trailing_long_limit2 = (highesthigh >= trailing_stop_trigger_long2);
- 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);
- trailing_short_limit1 = (lowestlow <= trailing_stop_trigger_short1);
- trailing_short_limit2 = (lowestlow <= trailing_stop_trigger_short2);
- 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
- begin;
- Buy("Long") nr_share contracts Next Bar at market;
- end;
- if marketposition = 1 Then
- begin;
- Setstopposition;
- SetStopLoss(stop_loss_long);
- Setprofittarget(take_profit_long);
- end;
- If MarketPosition =1 and trailing_long_limit1 then
- Sell("Trailing long1") from entry("Long") Next Bar at trailing_stop_close_long1 stop;
- If MarketPosition =1 and trailing_long_limit2 then
- Sell("Trailing long2") from entry("Long") Next Bar at trailing_stop_close_long2 stop;
- //If MarketPosition =1 and trailing_long then
- // Sell("Chiusura Long") from entry("Long") Next Bar at market;
- 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
- begin;
- sellshort("Short") nr_share contracts Next Bar at market;
- end;
- if marketposition = -1 Then
- begin;
- Setstopposition;
- SetStopLoss(stop_loss_short);
- Setprofittarget(take_profit_short);
- end;
- If MarketPosition = -1 and trailing_short_limit1 then
- buytocover("Trailing short1") from entry("Short") Next Bar at trailing_stop_close_short1 stop;
- If MarketPosition = -1 and trailing_short_limit2 then
- buytocover("Trailing short2") from entry("Short") Next Bar at trailing_stop_close_short2 stop;
- //If MarketPosition = -1 and trailing_short then
- //buytocover("Chiusura Short") from entry("Short") Next Bar at market;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement