Advertisement
Maurizio-Ciullo

16 Calcolare stop loss in tick basato sulla size di ingresso crypto

Dec 26th, 2021 (edited)
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Calcolare stop loss in tick basato sulla size di ingresso crypto
  2. // Con questo calcolo si andrà in stop sempre con la stessa percentuale stabilita in anticipo
  3. // Lo stop verrà conteggiato in ticks e non i quotazione del grafico, quindi quando il prezzo scende di un tot di ticks lo stop interviene
  4. // Per far si che il conteggio venga fatto in ticks usare gli ordini loss e profit
  5. // Se vogliamo che il conteggio sia fatto in quotazione del grafico e non in ticks usare ordini limit e stop
  6.  
  7. // Esclusione di giorni e mesi per gli ingressi direttamente sulle condizioni di ingresso
  8.  
  9. //Il trading system completo - Swing-Trend (Strategia Trend Following Con Swing Di Posizione) - parte 1
  10. // (Exchange= FTX) (Sottostante ETH-PERP) (Timeframe= 4H) (Direzione= LONG E SHORT) (Swing Posizione= SI) (Esclusione Giorni=Sabato) (Esclusione Mesi=Ottobre)
  11. //@version=4
  12.  
  13. strategy(title=" Calcolare stop loss in tick basato sulla size di ingresso crypto", overlay=true,
  14.      pyramiding=0, initial_capital=250,
  15.      commission_type=strategy.commission.percent,
  16.      commission_value=0.1, slippage=3,
  17.      default_qty_type=strategy.percent_of_equity,
  18.      default_qty_value=27.5)
  19.  
  20.  
  21. // Input di stop loss: mi servirà come percentuale aggiunto allo stop loss in ticks "facoltativo"
  22.  
  23. input_stop_loss = input(title="stop_loss_long", type=input.float, defval=2.5, minval=0, maxval=100, step=0.1, group="Stop")
  24.  
  25. // Input risk: mi servirà per calcolare la percentuale di ingresso sul mio capitale
  26.  
  27. input_risk = input(title="Percentuale rischio", type=input.float, defval=27.5, minval=0, maxval=100, step = 0.01, group="Stop")
  28.  
  29.  
  30.  
  31.  
  32.  
  33. // Size: mi calcola la size in dollari per entrare in base alla percentuale stabilita del mio capitale
  34.  
  35. size = ((strategy.equity * input_risk) / 100)
  36.  
  37. // Numero Contratti: dividendo la size di ingresso con la close mi ritorna quanti contratti posso comprare con qual capiatle a quel prezzo
  38.  
  39. nr_contratti = (size) / close
  40.  
  41. // Stop Loss: arrotonda il risultato finale.
  42. // Stop Loss: prendo la size di ingresso in dollari e dividendo per syminfo.mintick mi faccio tornare quanti tick equivalgono alla mia size
  43. // ES: entro con il 10% del capitale di 100$ = 10$.      10 / 0.1 "syminfo.mintick" = 100 ticks che equivalgono a 10$.
  44. // Divido per 100 per avere il calcolo percentuale combinato con lo stop dell'input.
  45. // Moltiplico per lo stop loss in % "facoltativo" se voglio allargare lo stop con gli input.
  46. // Divido per il numero di contratti che mi sono potuto permettere con l'ingresso % del mio saldo
  47. // La divisione in contratti serve a tenermi bilanciato, altrimenti nell'aumentare della mia size la perdita sarebbe maggire.
  48.  
  49. stop_loss =round(((size /syminfo.mintick) / 100) * input_stop_loss)/nr_contratti
  50.  
  51.  
  52. // Creo le classiche condizioni di entrata ed uscita non considerando lo stop loss che ho creato ma ne inserisco uno classico
  53. // Inserendo uno stop loss classico "facoltativo" ma comunque consigliato per via degli ordini limit che potrebbero non essere eseguiti.
  54.  
  55. //Condizione Entry Long: Chiusura candela sopra media lenta con differenziale medie e media veloce maggiore media ExitLong
  56. condEntryLong = close > (ema_long_apertura + apertura_minima_long) and close < (ema_long_apertura + apertura_massima_long) and close > open and not onlyShort and dayofweek != 7 and month !=10 and inDateRange
  57. //Condizione Exit Long: Crossunder di due medie
  58. condExitLong = close < (ema_long_chiusura - chiusura_minima_long)
  59.  
  60.  
  61. // Inserisco nelle condizioni if le condizioni di entrata classiche e questa volta il mio stop loss in ticks con strategy.exit
  62. // Inserisco il mio secondo stop loss classico "facoltatico" ma raccomandato con strategy.close
  63.  
  64. if (condEntryLong)
  65.     strategy.entry("long", true)
  66.     strategy.exit("stop loss", from_entry = "long", loss = stop_loss)
  67.    
  68. if (condExitLong)    
  69.     strategy.close(id="long")
  70.    
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement