Maurizio-Ciullo

Indicatore Money Management Fixed Fract SL TK Perc

Mar 6th, 2026
95
0
Never
4
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.                                                         // ============================================================
  3.                                                         // *** INDICATORE MONEY MANAGEMENT FIXED FRACTIONAL STOP LOSS PERCENT  *** //
  4.                                                         // ============================================================
  5.                                                        
  6.                                                         // 2 MODALITA':
  7.                                                         // 1) // Frazione Di Capitale Fisso $ Per Stop Loss E Distanza Stop E Tk In % In Porporzione a Capitale Iniziale Ma Inserito In $ //
  8.                                                         // 2) // Frazione Di Capitale Variabile % Per Stop Ma Sempre In Porporzione a Equity E Distanza Stop E Tk In % //
  9.                                                        
  10. // *** ATTENZIONE QUESTO PRENDE CLOSE BARRA PRECEDENTE E NON OPEN NEXT BAR, STOP E TK SI RIFERISCONO A CLOSE BARRA PRIMA DI INGRESSO !!! ***
  11. // *** ATTENZIONE SE LO STOP LOSS CADE NELLA STESSA BARRA DI INGRESSO USCIRO' A CHIUSURA BARRA NON RISPETTANDO LO STOP LOSS PERCHE' MARKET POSITION NON E' ANCORA STATO CALCOLATO !!! ***
  12.  
  13. // *** Attenzione !!! Se Il Rischio Monetario E' Troppo Basso Ed Il Sottostante Sale Non Entra Piu': Prezzo / Stop % / 100 ES: 1000 / 10% / 100 = 100 Se Rischio Monetario < 100 Non Entra Piu' *** "PRINT NEL DEBUG TRADE SKIPPED //
  14. // *** Attenzione !!! Il Codice Analisi Montecarlo Python Qui Non Si Puo' Applicare Dopo Il Money Managent Perchè Qui La % Di Perdita Del Report Non Corrisponde A Quella Monetaria !!! //
  15.                                                        
  16.     //==============================================================================================================================================================================================//                     
  17.                            
  18. // 1) Questa Tipologia Di Money Management, siccome ha sempre lo stop lo monetario uguale, se il calpitale aumenta il DD diminuisce. Di contro potremmo avere un DD iniziale più alto //
  19. // 2) Questa Tipologia Di Money Management abbiamo uno stop loss monetario variabile ma sempre relazionato in % all'equity attuale ES: (Cap Iniziale + NetProfit * 3.5) / 100 in modo da dedicare sempre la stessa proporzione di perdita % al capitale attuale dell'equity nel tempo //
  20.                                                        
  21.  
  22.  
  23. // ================== INIZIO PROVA Stop Loss Sempre Uguale con sempre stessi contratti ======================================
  24. {input:
  25. capitaleIniziale(100000),
  26. stopLoss(1000),
  27. tk(2000);
  28.  
  29. vars:
  30. risk(0),
  31. capitalePosizione(0);
  32.  
  33. risk  = capitaleIniziale *25 /100;
  34. capitalePosizione = risk / stopLoss;
  35.  
  36. if close > open and close [1] > open[1] and close [2] > open [2] and close [3] > open [3] then
  37.     Buy("Long") capitalePosizione shares next bar at Market;
  38.    
  39. SetStopPosition;   
  40. Setstoploss(stopLoss);
  41. Setprofittarget(tk);}
  42. // ================== FINE PROVA Stop Loss Sempre Uguale con sempre stessi contratti ======================================
  43.  
  44.  
  45. input:
  46.     lunghezza_sma_long(31),
  47.     lunghezza_sma_short(48),
  48.     deviazione_long(1.7),
  49.     deviazione_short(1.3),
  50.     lunghezza_adx_long(6),
  51.     lunghezza_adx_short(10),
  52.     differenziale_adx_long(60),
  53.     differenziale_adx_short(22),
  54.     lung_ema_long(52),
  55.     lung_ema_short(42),
  56.     //skipday(thursday),
  57.     skipmonth1(4),
  58.     skipmonth2(8),
  59.     solo_long(false),
  60.     solo_short(false);
  61.    
  62. Vars:
  63.      
  64.      media_long(0),
  65.      media_short(0),
  66.      middle_Band_long(0),
  67.      deviazione_st_long(0),
  68.      UpperBand_long(0),
  69.      LowerBand_long(0),
  70.      valore_adx_long(0),
  71.      middle_Band_short(0),
  72.      deviazione_st_short(0),
  73.      UpperBand_short(0),
  74.      LowerBand_short(0),
  75.      valore_adx_short(0);
  76.      
  77. // Calcololo degli indicatori long
  78.  
  79.     middle_Band_long      =   average(close, lunghezza_sma_long);
  80.     deviazione_st_long    =   deviazione_long * StandardDev(close,lunghezza_sma_long, 1);
  81.     UpperBand_long        =   middle_Band_long  + deviazione_st_long;
  82.     LowerBand_long        =   middle_Band_long  - deviazione_st_long;
  83.     valore_adx_long       =   adx(lunghezza_adx_long);
  84.  
  85. // Calcololo degli indicatori short
  86.    
  87.     middle_Band_short      =   average(close, lunghezza_sma_short);
  88.     deviazione_st_short    =   deviazione_short * StandardDev(close,lunghezza_sma_short, 1);
  89.     UpperBand_short        =   middle_Band_short  + deviazione_st_short;
  90.     LowerBand_short        =   middle_Band_short  - deviazione_st_short;
  91.     valore_adx_short       =   adx(lunghezza_adx_short);
  92.    
  93.     media_long = XAverage(Close, lung_ema_long);
  94.     media_short = XAverage(Close, lung_ema_short);       
  95.        
  96. // ================== MONEY MANAGEMENT FIXED FRACTIONAL SULLO STOP LOSS  =================
  97. Inputs:
  98.     inizio_input_money_management ("----------------inizio_input_money_management-------------------"),
  99.     initial_capital(100000),          // attivo solo se: percentRiskEquity true
  100.     percent_risk(3.5),                // frazione rischio % dello stop loss monetario  // attivo solo se: percentRiskEquity true
  101.     percentRiskEquity(false),         // scelta se frazione rischio % capitale iniziale o equity
  102.     rischioMonetarioLongInp(3500),    // perdita fissa in $  // attivo solo se: percentRiskEquity false
  103.     rischioMonetarioShortInp(3500),   // perdita fissa in $  // attivo solo se: percentRiskEquity false
  104.     stop_loss_percent_long(10),       // stop loss per distanza grafica %
  105.     stop_loss_percent_short(7.1),     // stop loss per distanza grafica %  
  106.     target_percent_long(12),          // take profit distanza grafica %
  107.     target_percent_short(6.7);        // take profit distanza grafica %
  108.    
  109. Vars:
  110.     numeroAzioniLong(0),
  111.     numeroAzioniShort(0),
  112.     rischioMonetarioLong(0),
  113.     rischioMonetarioShort(0);
  114.    
  115. If percentRiskEquity = true Then
  116. Begin
  117.     // Rischio Monetario basato su: Cap Tot + Net Profit In % Dello Stesso ES: Il 3.5% Dell'equity Totale E Non sempre 3.500$ //
  118.     rischioMonetarioLong  = (initial_capital + NetProfit) * percent_risk / 100;
  119.     rischioMonetarioShort = (initial_capital + NetProfit) * percent_risk / 100;  
  120. End
  121. Else
  122. Begin
  123.     rischioMonetarioLong  = rischioMonetarioLongInp;
  124.     rischioMonetarioShort = rischioMonetarioShortInp;
  125. End;   
  126.  
  127. // ================= INGRESSO LONG =================
  128. if {MarketPosition = 0 and} not solo_short and
  129.    Close cross over LowerBand_long and Close < media_long and valore_adx_long < differenziale_adx_long then
  130. begin
  131.     // Calcolo numero di azioni in base alla perdita massima // ATTENZIONE QUESTO PRENDE CLOSE BARRA PRECEDENTE E NON OPEN NEXT BAR, STOP E TK SI RIFERISCONO A CLOSE BARRA PRIMA DI INGRESSO !!!
  132.     numeroAzioniLong = IntPortion(rischioMonetarioLong / (Close * stop_loss_percent_long/100));
  133.        // Stampa se contratti = 0
  134.     if numeroAzioniLong = 0 then
  135.         Print("TRADE LONG SKIPPED: ", " Date=", ELDateToString(Date), " |", " Time=", Time:4:0, " |", " EntryPrice=", Close:0:2, " |", " Stop=", stop_loss_percent_long:0:2, "% |", " NumeroAzioni=", numeroAzioniLong);
  136.                
  137.     if numeroAzioniLong > 0 then
  138.         Buy("Long") numeroAzioniLong shares next bar at Market;
  139. end;
  140.  
  141. // ================= STOP E TAKE PROFIT LONG =================
  142. if MarketPosition = 1 then
  143. begin
  144.     // SL e TP calcolati sul prezzo effettivo di entrata
  145.     SetStopPosition;
  146.     SetStopLoss(numeroAzioniLong * (EntryPrice * stop_loss_percent_long/100));
  147.     SetProfitTarget(numeroAzioniLong * (EntryPrice * target_percent_long/100));
  148. end;
  149.  
  150. // ================= USCITA LONG A MERCATO =================
  151. if MarketPosition = 1 and Close cross over UpperBand_long then
  152.     Sell("Chiusura Long") from entry("Long") Next Bar at Market;
  153.    
  154.  
  155. // ================= INGRESSO SHORT =================
  156. if close cross under UpperBand_short and close > media_short and valore_adx_short < differenziale_adx_short and not solo_long {and month(date) <> skipmonth2 and month(date) <> skipmonth1} {and Dayofweek(date) <> skipday} then
  157. begin
  158.     // Calcolo numero di azioni in base alla perdita massima // ATTENZIONE QUESTO PRENDE CLOSE BARRA PRECEDENTE E NON OPEN NEXT BAR, STOP E TK SI RIFERISCONO A CLOSE BARRA PRIMA DI INGRESSO !!!
  159.     numeroAzioniShort = IntPortion(rischioMonetarioShort / (Close * stop_loss_percent_short/100));
  160.    
  161.     // Stampa se contratti = 0
  162.     if numeroAzioniShort = 0 then
  163.         Print("TRADE SHORT SKIPPED", " Date=", ELDateToString(Date), " |", " Time=", Time:4:0, " |", " EntryPrice=", Close:0:2, " |", " Stop=", stop_loss_percent_short:0:2, "% |", " NumeroAzioni=", numeroAzioniShort);
  164.                    
  165.     if numeroAzioniShort > 0 then
  166.        Sellshort("Short") numeroAzioniShort shares next bar at Market;
  167. end;
  168.            
  169. // ================= STOP E TAKE PROFIT SHORT =================
  170. if MarketPosition = -1 then
  171. begin
  172.     // SL e TP calcolati sul prezzo effettivo di entrata
  173.     SetStopPosition;
  174.     SetStopLoss(numeroAzioniShort * (EntryPrice * stop_loss_percent_short/100));
  175.     SetProfitTarget(numeroAzioniShort * (EntryPrice * target_percent_short/100));
  176. end;
  177.                          
  178. // ================= USCITA SHORT A MERCATO =================
  179. if close cross under LowerBand_short then      
  180.         Buytocover("Chiusura Short") from entry("Short") Next Bar at market;           
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
Advertisement
Comments
  • User was banned
  • User was banned
  • User was banned
  • User was banned
Add Comment
Please, Sign In to add comment