Discussione: Indicatore Pidi_Trend
Visualizzazione Ibrida
-
29-11-13, 00:19 #1
- Data Registrazione
- Dec 2009
- Messaggi
- 813
Indicatori metodo Pidi (Trend e Fasce Pidi)
Ciao a tutti, come da titolo vorrei il vostro supporto nella costruzione dell'indicatore di trend basato sulle regole che Pidi ha illustrato nel suo bellissimo post Il sottostante e le sue opzioni
Riporto qui sotto le regole che lui utilizza per individuare il trend
Con beetrader sono arrivato a questo punto
Questo il codice
#Media dei prezzi a 20 periodi SET SMA20 = SMA(CLOSE, 20) #Media dei prezzi a 3 periodi SET SMA3 = SMA(CLOSE, 3) #Detraggo dalla più veloce la più lenta SET Differenza = SMA3 - SMA20 #Calcolo la deviazione standard dei prezzi da inizio giornata SET DevStd = StandardDeviations(CLOSE, 20, 1, SIMPLE) #Divido la differenza per la deviazione standard ottenendo una percentuale SET Percentuale = Differenza / DevStd SET PLOT1 = Percentuale SET PLOT2 = 1 SET PLOT3 = 2 SET PLOT4 = -1 SET PLOT5 = -2
Spero di aver interpretato correttamente le indicazioni di Pidi soprattutto in merito alla Deviazione Standard perchè vedo che questo parametro influenza molto la reattività dell'indicatore...
p.s. ovviamente dopo di questo lavoreremo sulle fascie Pidi che sono un attimo piu' complicate da tradurre!!!(Almeno per le mie ridotte capacità programmatorie!)Ultima modifica di CIVT; 03-12-13 alle 14:01
-
29-11-13, 09:20 #2
- Data Registrazione
- Sep 2013
- Località
- Monza
- Messaggi
- 186
-
29-11-13, 11:07 #3
- Data Registrazione
- Dec 2009
- Messaggi
- 813
Ciao Max e grazie del contributo! Mi pareva strano che fosse così semplice, se modifico il codice contando il numero di barre da inizio giornata otterrei il risultato desiderato? Effettuerei questa modifica però non capisco se così conta le barre giornaliere oppure quelle relative al time frame utilizzato cosa che dovrei invece fare da quanto ho capito!
# Individuazione del cambiamento di data SET ConditionDateChange = DATE > REF(DATE, 1) SET DateChange = IF(ConditionDateChange, 1, 0) # Individuazione numerica delle barre intraday giornaliere SET BarsOfDay = LASTIF(ConditionDateChange) SET Bars = BarsOfDay + 1 #Calcolo la deviazione standard dei prezzi da inizio giornata SET DevStd = StandardDeviations(CLOSE, Bars, 2, SIMPLE)
Ultima modifica di CIVT; 29-11-13 alle 11:26
-
29-11-13, 12:18 #4
- Data Registrazione
- Feb 2012
- Località
- Pisa
- Messaggi
- 351
Ciao CIVT,
così calcola le barre intraday indipendentemente dal time frame utilizzato: se ad esempio metti il time frame giornaliero conta sempre 1.
Io per il momento ho partorito questo:
#Media dei prezzi a 20 periodi SET SMA20 = SMA(CLOSE, 20) #Media dei prezzi a 3 periodi SET SMA3 = SMA(CLOSE, 3) #Detraggo dalla più veloce la più lenta SET Differenza = SMA3 - SMA20 #Calcolo la deviazione standard dei prezzi da inizio giornata (a periodo variabile) SET ConditionDateChange = DATE > REF(DATE, 1) SET BarsOfDay = LASTIF(ConditionDateChange) SET Periods = BarsOfDay + 1 #Inibisco il calcolo della deviazione standard dei prezzi per le prime 4 barre di giornata SET DevStd = IF(Periods < 5, 0, StandardDeviations(CLOSE, Periods, 1, SIMPLE) ) #Modifica per evitare la divisione per zero SET DevStdModif = IF(DevStd = 0, 0.000001, DevStd) #Divido la differenza per la deviazione standard ottenendo una percentuale #imponendo valore zero per le prime 4 barre di giornata (E' UNA SCELTA ARBITRARIA !!!) SET Percentuale = IF(Periods < 5, 0, Differenza / DevStdModif ) SET PLOT1 = Percentuale SET PLOT2 = 2 SET PLOT3 = 1 SET PLOT4 = -1 SET PLOT5 = -2 SET PLOTCOLOR1 = COLOR_YELLOW SET PLOTCOLOR2 = COLOR_LIGHT_GREEN SET PLOTCOLOR3 = COLOR_LIGHT_GREEN SET PLOTCOLOR4 = COLOR_LIGHT_RED SET PLOTCOLOR5 = COLOR_LIGHT_RED
Ci sono dentro un paio di artifizi mirati semplicemente ad evitare la generazione di errori nel calcolo (inibizione delle prime 4 barre di giornata e modifica artificiosa della deviazione standard quando vale zero).
Inoltre ho l'impressione che questo indicatore appesantisca un tantino beeTrader!Ultima modifica di Smash; 29-11-13 alle 12:23
-
29-11-13, 12:30 #5
- Data Registrazione
- Feb 2012
- Località
- Pisa
- Messaggi
- 351
A quanto ho intuito, credo che Pidi utilizzi il grafico con time frame a 1 minuto.
-
11-03-14, 11:16 #6
- Data Registrazione
- Nov 2009
- Messaggi
- 476
-
11-03-14, 16:34 #7
- Data Registrazione
- Feb 2012
- Località
- Pisa
- Messaggi
- 351
Ciao Pernotron,
non dovrebbe dipendere dal time frame (su certi sottostanti funziona e su altri no), mentre ho l'impressione che dipenda dalla volatilità delle barre che quando è troppo bassa crea dei problemi nel calcolo della deviazione standard.
Cerco di modificarlo per vedere se riesco a farlo funzionare sempre ...
-
29-11-13, 15:40 #8
- Data Registrazione
- Feb 2012
- Località
- Pisa
- Messaggi
- 351
Ecco anche un primo contributo per la realizzazione delle fasce Pidi.
# Calcolo dei Pivot Points SET AP = (YESTERDAYHIGH() + YESTERDAYLOW() + YESTERDAYCLOSE()) / 3 SET Sup1 = 2 * AP - YESTERDAYHIGH() SET Res1 = 2 * AP - YESTERDAYLOW() SET Sup2 = AP - (Res1 - Sup1) SET Res2 = (AP - Sup1) + Res1 SET Res3 = Res2 + (YESTERDAYHIGH() - YESTERDAYLOW()) SET Sup3 = Sup2 - (YESTERDAYHIGH() - YESTERDAYLOW()) # Calcolo dei 2 livelli di Strike Up SET StrikeUp1 = DIV(TODAYOPEN() * 100, 50) / 2 + 0.5 SET StrikeUp2 = StrikeUp1 + 0.5 # Calcolo dei 2 livelli di Strike Down SET CondDown = MOD(TODAYOPEN() * 100, 50) = 0 SET StrikeDown1 = IF(CondDown, DIV(TODAYOPEN() * 100, 50) / 2 - 0.5, DIV(TODAYOPEN() * 100, 50) / 2) SET StrikeDown2 = StrikeDown1 - 0.5 SET PLOT1 = TODAYOPEN() SET PLOT2 = StrikeUp1 SET PLOT3 = StrikeDown1 SET PLOT4 = StrikeUp2 SET PLOT5 = StrikeDown2 SET PLOTCOLOR1 = COLOR_SILVER SET PLOTCOLOR2 = COLOR_GREEN SET PLOTCOLOR3 = COLOR_RED SET PLOTCOLOR4 = COLOR_GREEN SET PLOTCOLOR5 = COLOR_RED
Questo indicatore calcola i 2 livelli di Strike Price del Bund al di sopra e al di sotto dell'apertura di giornata, e li disegna insieme al livello dell'apertura di giornata; calcola inoltre anche i Pivot Points (anche se non li disegna).
A questo punto per determinare le fasce rimarrebbero da fare i controlli incrociati dei vari livelli (apertura, Strike Price e Pivot Points) per poi aggiungere e togliere il numero di tick fissi determinati da Pidi.Ultima modifica di Smash; 29-11-13 alle 15:46
-
01-12-13, 15:17 #9
- Data Registrazione
- Dec 2009
- Messaggi
- 813
Grazie per il contributo Smash, rilleggendo la discussione ho trovato altri spunti/chiarimenti che dovrebbero essere integrati, questo è il primo:
Calcolo Frontiera della Direzione
Originariamente Scritto da pidi10
#Calcolo la frontierza di direzione +/- 22 tick dall'OPEN SET FrontieraUP = TODAYOPEN() + 0.22 SET FrontieraDOWN = TODAYOPEN() - 0.22
Questa è la spiegazione per il calcolo delle Fasce PIDI
Qui sono un pò in difficoltà perchè l'indivduazione della R2 deve essere il prezzo più vicino tra lo strike e il pivot, quindi bisogna inserire una condizione di verifica tra i due ed aggiungere 12 e 22 tick su R2
Allego lo snapshort di Pidi per chiarire meglio il concetto
Questo invece è il codice che ha programmato BMM con un altro software, lo riprongo qui perchè credo possa essere utile
Al momento il Pidi-workspace si presenta così!
Ultima modifica di CIVT; 01-12-13 alle 15:21
-
02-12-13, 20:07 #10
- Data Registrazione
- Sep 2013
- Località
- Monza
- Messaggi
- 186
Ciao a tutti,
più tardi proverò a cimentarmi nella traduzione del codice di BMM.
Volevo però prima capire un paio di cosette.
Innanzitutto come si calcola lo strike price ad esempio su Unicredit,
tanto per fare un esempio su un titolo che conosco meglio dei future.
Come si arriva a calcolare la Fascia Pidi.
Saluti
Massimo