Advertisement
Maurizio-Ciullo

25 Creare Uno Study

Mar 12th, 2022
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -------------------------------------------------*(25 Lezione Personale Creare Uno Study)*-------------------------------------------------
  2.  
  3. Lo study su tradingview invia gli ordini a mercato su un bridge per farli eseguire.
  4.  
  5. In questo esempio non tutti i segnali vengono generati dallo study ma solo quelli a mercato.
  6. I segnali limit in questa strategia sono generati da tradingview-hub
  7.  
  8.  
  9. // (Take Profit Long/Short= Market Close Sopra/Sotto Medie) (Stop Loss Limit= -2,5% Tradingview-Hub) (Stop Loss Emergenza Long/Short = Market Close Sopra/Sotto Medie)
  10. // Nello Study non c'è lo stop loss limit perchè è impostato a -2.5% su tradingview-hub
  11. //@version=4
  12.  
  13. //1 Inserire study versione 4 o idicator versione 5 e overlay false per vedere a grafico gli ingressi
  14.  
  15. study(title="Study Swing-Trend ETH/PERP FTX 4H LONG E SHORT", overlay=false)
  16.  
  17. // 2 Inserire gli input
  18.  
  19. input_ema_long_apertura = input(title="Media Long Apertura", type=input.integer, defval=45, minval=0, maxval=500, group="Medie")
  20.  
  21. // 3 Calcolare gli indicatori
  22.  
  23. ema_long_apertura = ema(close, input_ema_long_apertura)
  24.  
  25. //4 Calcolare filtri e stop loss
  26.  
  27. apertura_minima_long = (ema_long_apertura / 100) * perc_apertura_minima_long
  28.  
  29. // 5 Calcolare condizioni di entrata e uscita long e short "queste sono a mercato"
  30.  
  31. 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
  32. condExitLong = close < (ema_long_chiusura - chiusura_minima_long)
  33. condEntryShort = close < (ema_short_apertura - apertura_minima_short) and close > (ema_short_apertura - apertura_massima_short) and close < open and not onlyLong and dayofweek != 7 and month !=10
  34. condExitShort = close > (ema_short_chiusura + chiusura_minima_short)
  35.  
  36. // 6 Definire variabili posizioni aperte
  37. // Qui iniziamo a creare true o false per le posizioni aperte long e short
  38.  
  39. // Iniziamo con il true o false delle condizioni di entrata long:
  40. // Dichiariamo una variabile di entrata long "false" che diventerà "true" quando solo la condizione di entrata long è vera,
  41. // la condizione di entrata short è false e le condizioni di uscita long è false
  42. // Chiediamo di darci l'output della condizione di entrata long alla fine della riga di codice: IsLongOpen[1]
  43. // IsLongOpen[1] [1] serve a spostare il segnale alla candela precedente "Vedi meglio sul grafico"
  44.  
  45. IsLongOpen = false
  46. IsLongOpen := condEntryLong[1] ? true : condExitLong[1] ? false : condEntryShort[1] ? false : IsLongOpen[1]
  47.  
  48. // 7 Facciamo come il punto 6 per creare  true o false per le condizioni de entrata short
  49. // Siamo short true, usciamo dallo short false, entriamo long false
  50.  
  51. IsShortOpen = false
  52. IsShortOpen := condEntryShort[1] ? true : condExitShort[1] ? false : condEntryLong[1] ? false : IsShortOpen[1]
  53.  
  54. // 8 Creiamo un segnale flat quando non siamo in posizione
  55. // Stesso procedimento: dichiariamo una variabile flat "false" che diventa true quando il ong e lo short non sono aperti
  56.  
  57. IsFlat = true
  58. IsFlat := not IsLongOpen and not IsShortOpen
  59.  
  60. // 9 Conversione bool -> float, per debug
  61. // Ora che abbiamo i nostri true e false per entrare dal mercato, dobbiamo generare dei segnali 0, 1 per visualizzare gli ingressi
  62. // e uscite dal mercato
  63. // Creiamo altre 3 variabili 1:Long 2:Short 3:Flat che assumerano il valore 0, 1 a seconda se siamo long, short o flat
  64. // Con la segunete condizione gli dico semplicemente ES: se il long è vero assegna 1 altrimenti 0 e ripeto questa condizione per lo short ed il flat
  65.  
  66. IsLongOpenFloat = if IsLongOpen == true
  67.     1
  68. else
  69.     0
  70.  
  71. IsShortOpenFloat = if IsShortOpen == true
  72.     1
  73. else
  74.     0
  75.  
  76. IsFlatFloat = if IsFlat == true
  77.     1
  78. else
  79.     0
  80.  
  81. // 10 Plot posizioni aperte, per debug
  82. // Plotto tutto sul grafico per verificare se i segnali sono corretti
  83.  
  84. //plot (IsLongOpenFloat)
  85. //plot (IsShortOpenFloat,color=color.yellow)
  86. //plot (IsFlatFloat,color=color.red)
  87.  
  88. // 11 Variabili apertura e chiusura posizione
  89. // Fino ad adesso abbiamo dei numeri 0, 1 che mandano i sengali ma dobbiamo inserire il tutto in delle variabili
  90. // Creo altre variabili dove assegno le condizioni di entrata originali "condEntryLong" ed escludo le altre opzioni se necessario.
  91. // Creazione variabile entrata long "OpenLong": Condizione di entrata long oroginale "condEntryLong"
  92. // Creazione variabile uscita long "CloseLong" chiudi il long solo se è aperto il long e non ci sono condizioni di entrata short
  93. // Faccio l'ostesso per l'entrata short: Entrata short condizioni originali "condEntryShort"
  94. // Uscita short: Condizioni di uscita originali e short aperto e non condizione di entrata long
  95.  
  96. OpenLong = condEntryLong //and not IsLongOpen
  97. CloseLong = condExitLong and IsLongOpen and not condEntryShort
  98.  
  99. OpenShort = condEntryShort //and not IsShortOpen
  100. CloseShort = condExitShort and IsShortOpen and not condEntryLong
  101.  
  102. // 12 Conversione bool -> float, per debug
  103. // Ora che ho le condizioni di entrata ed uscita long e short le converto in numeri 0, 1 per poter vedere i segnali sul pannello
  104.  
  105. OpenShortFloat = if OpenShort == true
  106.     1
  107. else
  108.     0
  109.  
  110. CloseShortFloat = if CloseShort == true
  111.     1
  112. else
  113.     0
  114.  
  115. OpenLongFloat = if OpenLong == true
  116.     1
  117. else
  118.     0
  119.  
  120. CloseLongFloat = if CloseLong == true
  121.     1
  122. else
  123.     0
  124.  
  125. // 13 Plot posizioni aperte, per debug
  126.  
  127. plot (OpenShortFloat,color=color.red)
  128. plot (CloseShortFloat,color=color.yellow)
  129. plot (OpenLongFloat,color=color.blue)
  130. plot (CloseLongFloat,color=color.white)
  131.  
  132. // 14 Plot entry ed exit degli allert sul grafico e non sul pannello
  133.  
  134. //plotshape(series=OpenLong, text="entry_long", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
  135. //plotshape(series=CloseLong, text="close_long", style=shape.triangleup, location=location.belowbar, color=color.olive, size=size.small)
  136. //plotshape(series=OpenShort, text="entry_short", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)
  137. //plotshape(series=CloseShort, text="close_short", style=shape.triangledown, location=location.abovebar, color=color.purple, size=size.small)
  138.  
  139. // 15 Creazione Degli Alert veri e propri che invieranno i segnali
  140. alertcondition(OpenLong,title="Open Long")
  141. alertcondition(CloseLong,title="Close Long")
  142. alertcondition(OpenShort,title="Open Short")
  143. alertcondition(CloseShort,title="Close Short")
  144.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement