[Logo] Spazio Aperto Banca Sella
[Register] Registrati   [Login] Login    
[Search] Ricerca   [Recent Topics] Argomenti Recenti   [Hottest Topics] Argomenti vivaci  
[Banner Pubblicitario]
Come aggiornare gli indicatori in Time Frame diversi  XML
Indice dei Forum » SellaExtreme 5
Autore Messaggio
Henry77


Registrato: 09/11/2017 09:49:14
Messaggi: 76
Offline

Buongiorno,

Ammettiamo che ho degli indicatori creati su un time frame ad esempio il 30, 15 e 5 minuti
Voglio che l'indicatore sia aggiornato al tick e non solo al time frame nativo.
Mi è venuta in mente questa struttura del codice ma non so se funziona o è la soluzione migliore:
Nell'evento Tick aggiorno gli indicatori con la funzione calculate
Esempio

if(SystemContext.EventType == TSEventType.Tick)
{
var ps = SystemContext.PriceSerie; // devo usare SystemContext.Tick ???

// TIME FRAME 5 MIN
if (ps == psTF5MIN)
{
t_tick = SystemContext.PriceSerie.LastCandleIndex - 1;

//AGGIORNAMENTO INDICATORI SMA TF 5 MIN
UserContext.ema16_5min_tmpV = EMA16_5MIN.Calculate(t_tick);
UserContext.Sma20_5min_tmpV = SMA20_5MIN.Calculate(t_tick);
UserContext.ema24_5min_tmpV = EMA24_5MIN.Calculate(t_tick);


}

// TIME FRAME 15 MIN
if (ps == psTF15MIN)
{
t_tick = SystemContext.PriceSerie.LastCandleIndex - 1;

//AGGIORNAMENTO INDICATORI SMA TF 15 MIN
UserContext.sma45_15min_tmpV = SMA45_15MIN.Calculate(t_tick);
UserContext.sma55_15min_tmpV = SMA55_15MIN.Calculate(t_tick);

}

....
}

E' corretto secondo voi o devo usare SystemContext.Tick al posto di SystemContext.PriceSerie;?

Grazie
Jack


Registrato: 02/02/2015 21:42:56
Messaggi: 177
Offline

Henry77 wrote:Buongiorno,

Ammettiamo che ho degli indicatori creati su un time frame ad esempio il 30, 15 e 5 minuti
Voglio che l'indicatore sia aggiornato al tick e non solo al time frame nativo.
Mi è venuta in mente questa struttura del codice ma non so se funziona o è la soluzione migliore:
Nell'evento Tick aggiorno gli indicatori con la funzione calculate
Esempio

if(SystemContext.EventType == TSEventType.Tick)
{
var ps = SystemContext.PriceSerie; // devo usare SystemContext.Tick ???

// TIME FRAME 5 MIN
if (ps == psTF5MIN)
{
t_tick = SystemContext.PriceSerie.LastCandleIndex - 1;

//AGGIORNAMENTO INDICATORI SMA TF 5 MIN
UserContext.ema16_5min_tmpV = EMA16_5MIN.Calculate(t_tick);
UserContext.Sma20_5min_tmpV = SMA20_5MIN.Calculate(t_tick);
UserContext.ema24_5min_tmpV = EMA24_5MIN.Calculate(t_tick);


}

// TIME FRAME 15 MIN
if (ps == psTF15MIN)
{
t_tick = SystemContext.PriceSerie.LastCandleIndex - 1;

//AGGIORNAMENTO INDICATORI SMA TF 15 MIN
UserContext.sma45_15min_tmpV = SMA45_15MIN.Calculate(t_tick);
UserContext.sma55_15min_tmpV = SMA55_15MIN.Calculate(t_tick);

}

....
}

E' corretto secondo voi o devo usare SystemContext.Tick al posto di SystemContext.PriceSerie;?

Grazie



Ciao Henry77, mi collego un po' oggi dopo un lungo periodo di assenza.
Ho letto questo tuo messaggio e immagino tu abbia già risolto ma, non vedendo nessuna risposta alla tua richiesta, provo a dirti la mia (non avendo mai usato la funzione calculate).
Qualunque sia il TF della tua PS, l'ultima candela è la candela corrente. Se l'evento scatenante è il tick il tuo indicatore all'ultima candela si aggiornerà continuamente ad ogni tick.

if(SystemContext.EventType == TSEventType.Tick && SystemContext.PriceSerie == PS)
{
var x = SystemContext.PriceSerie.LastCandleIndex;
var x_1 = SystemContext.PriceSerie.LastCandleIndex - 1;
UserContext.valorekpicandelacorrente = macd.Values[x];
UserContext.valorekpicandelachiusa = macd.Values[x_1];
}

Il valore di UserContext.valorekpicandelacorrente ti cambierà ad ogni tick della candela corrente.
Il valore di UserContext.valorekpicandelachiusati rimane fisso per la durata della candela corrente.

Se non hai già risolto spero che questo ti possa essere utile. Buon gain
 
Indice dei Forum » SellaExtreme 5
Vai a:   
E.t.v.s.p.b WLS11G