Indicatore Pidi_Trend
Collapse
X
-
Salve a tutti,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:
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 (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
[ATTACH=CONFIG]12997[/ATTACH]
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!
come mai non funziona con tm ad 1 e a 5 minuti?
GrazieComment
-
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 ...Comment
-
grazie, gentilissimo !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 ...Comment
-
Cambiamo la forzatura per evitare la divisione per zero: stavolta usiamo la funzione CHANGEIF,
tanto pur sempre di un artifizio si tratta!
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 (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 = CHANGEIF(DevStd > 0, 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
Così mi sembra che funzioni !Comment
-
Grazie Smash, ora funziona bene.Cambiamo la forzatura per evitare la divisione per zero: stavolta usiamo la funzione CHANGEIF,
tanto pur sempre di un artifizio si tratta!
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 (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 = CHANGEIF(DevStd > 0, 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
Così mi sembra che funzioni !Comment
-
Ciao pernotron,
il problema è che quando capita che deve fare anche una singola divisione per zero, beeTrader non plotta l\'indicatore senza dare messaggi di errore.
Potresti dirmi su quali titoli non ti funziona, così li provo anch\'io?Comment
-
Comment
-
A me con l\'ultima modifica fatta funziona anche il Cac40 a 1 minuto, mentre la versione precedente invece no.
Fai una prova:
plotta questo
e magari verifica se l\'indicatore plottato assume valore zero da qualche parte ....Codice:#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 = CHANGEIF(DevStd > 0, DevStd) * 100000 SET PLOT1 = DevStdModif SET PLOTCOLOR1 = COLOR_YELLOW
Altrimenti un\'altra possibile causa di errore potrebbe essere quella di non richiedere una quantità di dati sufficientemente grande quando carichi un grafico a 1 minuto oppure a 5 minuti.
Infatti per calcolare l\'indicatore Pidi-Trend viene calcolata una deviazione standard a periodi variabili a partire dall\'inizio di giornata, e se nel grafico non è presente almeno una barra del giorno prima beeTrader non sa mai a quanti periodi dovrebbe calcolarla.Last edited by Smash; 12-03-14, 15:46.Comment



Comment