Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -------------------------------------------------*(25 Lezione Personale Creare Uno Study)*-------------------------------------------------
- Lo study su tradingview invia gli ordini a mercato su un bridge per farli eseguire.
- In questo esempio non tutti i segnali vengono generati dallo study ma solo quelli a mercato.
- I segnali limit in questa strategia sono generati da tradingview-hub
- // (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)
- // Nello Study non c'è lo stop loss limit perchè è impostato a -2.5% su tradingview-hub
- //@version=4
- //1 Inserire study versione 4 o idicator versione 5 e overlay false per vedere a grafico gli ingressi
- study(title="Study Swing-Trend ETH/PERP FTX 4H LONG E SHORT", overlay=false)
- // 2 Inserire gli input
- input_ema_long_apertura = input(title="Media Long Apertura", type=input.integer, defval=45, minval=0, maxval=500, group="Medie")
- // 3 Calcolare gli indicatori
- ema_long_apertura = ema(close, input_ema_long_apertura)
- //4 Calcolare filtri e stop loss
- apertura_minima_long = (ema_long_apertura / 100) * perc_apertura_minima_long
- // 5 Calcolare condizioni di entrata e uscita long e short "queste sono a mercato"
- 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
- condExitLong = close < (ema_long_chiusura - chiusura_minima_long)
- 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
- condExitShort = close > (ema_short_chiusura + chiusura_minima_short)
- // 6 Definire variabili posizioni aperte
- // Qui iniziamo a creare true o false per le posizioni aperte long e short
- // Iniziamo con il true o false delle condizioni di entrata long:
- // Dichiariamo una variabile di entrata long "false" che diventerà "true" quando solo la condizione di entrata long è vera,
- // la condizione di entrata short è false e le condizioni di uscita long è false
- // Chiediamo di darci l'output della condizione di entrata long alla fine della riga di codice: IsLongOpen[1]
- // IsLongOpen[1] [1] serve a spostare il segnale alla candela precedente "Vedi meglio sul grafico"
- IsLongOpen = false
- IsLongOpen := condEntryLong[1] ? true : condExitLong[1] ? false : condEntryShort[1] ? false : IsLongOpen[1]
- // 7 Facciamo come il punto 6 per creare true o false per le condizioni de entrata short
- // Siamo short true, usciamo dallo short false, entriamo long false
- IsShortOpen = false
- IsShortOpen := condEntryShort[1] ? true : condExitShort[1] ? false : condEntryLong[1] ? false : IsShortOpen[1]
- // 8 Creiamo un segnale flat quando non siamo in posizione
- // Stesso procedimento: dichiariamo una variabile flat "false" che diventa true quando il ong e lo short non sono aperti
- IsFlat = true
- IsFlat := not IsLongOpen and not IsShortOpen
- // 9 Conversione bool -> float, per debug
- // Ora che abbiamo i nostri true e false per entrare dal mercato, dobbiamo generare dei segnali 0, 1 per visualizzare gli ingressi
- // e uscite dal mercato
- // Creiamo altre 3 variabili 1:Long 2:Short 3:Flat che assumerano il valore 0, 1 a seconda se siamo long, short o flat
- // 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
- IsLongOpenFloat = if IsLongOpen == true
- 1
- else
- 0
- IsShortOpenFloat = if IsShortOpen == true
- 1
- else
- 0
- IsFlatFloat = if IsFlat == true
- 1
- else
- 0
- // 10 Plot posizioni aperte, per debug
- // Plotto tutto sul grafico per verificare se i segnali sono corretti
- //plot (IsLongOpenFloat)
- //plot (IsShortOpenFloat,color=color.yellow)
- //plot (IsFlatFloat,color=color.red)
- // 11 Variabili apertura e chiusura posizione
- // Fino ad adesso abbiamo dei numeri 0, 1 che mandano i sengali ma dobbiamo inserire il tutto in delle variabili
- // Creo altre variabili dove assegno le condizioni di entrata originali "condEntryLong" ed escludo le altre opzioni se necessario.
- // Creazione variabile entrata long "OpenLong": Condizione di entrata long oroginale "condEntryLong"
- // Creazione variabile uscita long "CloseLong" chiudi il long solo se è aperto il long e non ci sono condizioni di entrata short
- // Faccio l'ostesso per l'entrata short: Entrata short condizioni originali "condEntryShort"
- // Uscita short: Condizioni di uscita originali e short aperto e non condizione di entrata long
- OpenLong = condEntryLong //and not IsLongOpen
- CloseLong = condExitLong and IsLongOpen and not condEntryShort
- OpenShort = condEntryShort //and not IsShortOpen
- CloseShort = condExitShort and IsShortOpen and not condEntryLong
- // 12 Conversione bool -> float, per debug
- // 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
- OpenShortFloat = if OpenShort == true
- 1
- else
- 0
- CloseShortFloat = if CloseShort == true
- 1
- else
- 0
- OpenLongFloat = if OpenLong == true
- 1
- else
- 0
- CloseLongFloat = if CloseLong == true
- 1
- else
- 0
- // 13 Plot posizioni aperte, per debug
- plot (OpenShortFloat,color=color.red)
- plot (CloseShortFloat,color=color.yellow)
- plot (OpenLongFloat,color=color.blue)
- plot (CloseLongFloat,color=color.white)
- // 14 Plot entry ed exit degli allert sul grafico e non sul pannello
- //plotshape(series=OpenLong, text="entry_long", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
- //plotshape(series=CloseLong, text="close_long", style=shape.triangleup, location=location.belowbar, color=color.olive, size=size.small)
- //plotshape(series=OpenShort, text="entry_short", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)
- //plotshape(series=CloseShort, text="close_short", style=shape.triangledown, location=location.abovebar, color=color.purple, size=size.small)
- // 15 Creazione Degli Alert veri e propri che invieranno i segnali
- alertcondition(OpenLong,title="Open Long")
- alertcondition(CloseLong,title="Close Long")
- alertcondition(OpenShort,title="Open Short")
- alertcondition(CloseShort,title="Close Short")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement