Discussione: Chiarimento funzione GlobalVar
Visualizzazione Ibrida
-
31-08-14, 14:00 #1
- Data Registrazione
- Dec 2009
- Messaggi
- 813
Chiarimento funzione GlobalVar
Ciao ragazzi, come da manuale ho provato a creare un semplice indicatore che mi riporta la EMA a 30 minuti sul chart a 15 minunti ma a quanto sembra la lettura è corretta solo per l'ultima barra disegnata perché analizzando lo storico non trovo corrispondenza. Cosa stò sbagliando?
Allego screen che mostra la verifica del valore delle EMA alle 17:30 del 27/08/2014
Questo è lo script per il chart a 30 minuti
INPUTS: @price(CLOSE), @periods(14) SET EMA1 = EMA(@price, @periods) SetGlobalVar(1, EMA1) set PLOT1 = EMA1
Questo per il chart a 15 minuti dove riporto la EMA a 30 minuti
SET PLOT1 = GetGlobalVar(1)
-
01-09-14, 10:06 #2
Salve,
Nell'immagine allegata non noto alcuna anomalia, la curva della EMA a 30 minuti è esattamente uguale nei due chart.
Le funzioni SetGlobalVar e GetGlobalVar NON trasformano in alcun modo i dati, cioè non applicano alcun raggruppamento o suddivisione per adattare i vettori ai diversi timeframe.
Max Francario
-
01-09-14, 12:08 #3
- Data Registrazione
- Dec 2009
- Messaggi
- 813
Grazie della risposta MAX, quindi non posso utilizzare questo sistema per fare backtest? Vorrei costruire uno script che mi permette di analizzare i BT utilizzando lo Z-Score di due titoli in overspread....Mi confermi invece che l'ultima barra la posso utilizzare come segnale di ingresso/uscita all'interno di un eventuale script? Se la risposta è affermativa dovrei lanciare due script in parallello per poter utilizzare il GetGlobalVar, eventualmente potresti suggerirmi come fare?
-
01-09-14, 13:57 #4
Salve,
il backtest con GetGlobalVar funziona perfettamente nel caso si usino 2 chart su strumenti diversi ma con lo stesso timeframe.
Per il backtest su timeframe diversi, bisogna considerare quanto scritto sopra, e cioè che le funzioni SetGlobalVar e GetGlobalVar non "trasformano" i dati in nessun modo per adattarli ai diversi timeframe. In questi casi, alcune volte è sufficiente usare un numero diverso di periodi nel calcolo degli indicatori per ottenere lo stesso risultato.
Per esempio, supponendo di avere un Chart a 5 minuti con applicato uno script come questo:
# MioSegnale a 5 minuti MioSegnale = EMA(CLOSE, 10)) > CLOSE
Se volessimo portare la variabile MioSegnale su un chart a 15 minuti, al posto di usare SetGlobalVar/GetGlobalVar (e dover di conseguenza avere 2 chart aperti), potremmo scrivere semplicemente
# MioSegnale a 15 minuti MioSegnale = EMA(CLOSE, 30) > CLOSE
ottenendo lo stesso risultato.
La "traduzione" da un timeframe ad un altro di uno script non sempre è così semplice, ma nella maggior parte dei casi è alla portata di chiunque.
In ogni caso, usando GetGlobalVar l'ultimo valore è sempre corretto, cioè l'utilizzo di SetGlobalVar/GetGlobalVar è sempre e comunque corretto in una Strategy in beeTrader.
Le funzioni SetGlobalVar e GetGlobalVar si possono utilizzare per memorizzare più di un dato alla volta, cambiando il valore del parametro ID per distinguere i diversi valori. E' quindi possibile usare anche più di 2 chart contemporaneamente ed avere segnali generati su uno di essi in base ai valori presenti in tutti gli altri.
Max Francario
-
24-09-14, 00:12 #5
- Data Registrazione
- Dec 2009
- Messaggi
- 813
Grazie Max sei stato molto gentile però mi manca un ultimo passettino per arrivare a calcolare lo Z-score totale in modo corretto perchè vedo che non basta fare la semplice differenza dei due ZS singoli in quanto non mi trovo con il valore ufficiale calcolato!
Questo è lo ZS totale calcolato per differenza dei due singoli Zs (Zs=2.86)
Mentre questo è il valore ufficiale corretto (Zs=2.19)
Questo è il codice che ho utilizzato per calcolare lo Z-Score totale se qualcuno è così gentile da dirmi dove sbaglio ringrazio in anticipo...
INPUTS: @ZsLow(-2), @ZsHigh(2), @zero(0.01) set PLOT1 = GetGlobalVar(2) - GetGlobalVar(1) set plot2 = @ZsLow set plot3 = @ZsHigh SET PLOT4 = @zero
p.s. x i matematici: Stando alla definizione di Z-Score ufficiale una alternativa può essere quella di calcolare lo Z-Score totale come la media (credo a 250 periodi) della differenza percentualizzata dei due titoli ed esprimerla in deviazioni standard sul grafico a 1500 barre.Ultima modifica di CIVT; 24-09-14 alle 06:15
-
24-09-14, 09:00 #6
-
04-05-17, 07:33 #7
- Data Registrazione
- Jul 2016
- Messaggi
- 74