[Logo] Spazio Aperto Banca Sella
[Register] Registrati   [Login] Login    
[Search] Ricerca   [Recent Topics] Argomenti Recenti   [Hottest Topics] Argomenti vivaci  
[Banner Pubblicitario]
Problemi di calcolo di indicatori Stocastico Lento in trading system  XML
Indice dei Forum » SellaExtreme 5
Autore Messaggio
Henry77


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

Buongiorno,

Ci sono dei problemi di calcolo su alcuni indicatori usati in trading system.
Questi problemi non si manifestano sulle sma.
Esempio che ho trovato: calcolo di STS lento (con i parametri di default 5,3,3) su Fiat 15min.
I calcoli che vengono effettuati sul trading system non corrispondono a quelli che sono visualizzati sul grafico. Sono completamente errati tranne ogni tanto che vengono calcolati correttamente.
Per provare ciò che affermo è sufficiente utilizzare il vostro esempio di trading system CROSS_SMA_MULT_TF ed aggiungere l'indicatore ai 15 min. (nell'esempio originale il time frame è 5min, basta modificarlo a 15min)

Un altra cosa. Non è chiaro quando si deve utilizzare indicatore.calculate(t) anzichè indicatore.Values[t] in un trading system

Spero in una risposta dato che sono fermo.
Grazie
Henry77


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

qualche risposta?
Henry77


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

sarei grato di una risposta da parte di Sella.. è da oltre 1 settimana che aspetto
Grazie
elena.papurello


Registrato: 30/09/2015 10:46:13
Messaggi: 374
Offline

Ciao Henry77, la funzione {Calculate} è una funzione utilizzata nella realizzazione degli indicatori che utilizzano i valori di altri indicatori. In questo caso occorre invocare il calcolo dei sotto indicatori per poter avere i valori da utilizzare nei calcoli.
Nei Trading System questa cosa non è necessaria in quanto nel momento in cui viene invocata la routine del Trading System gli indicatori utilizzati nel TS sono già stati calcolati per cui non occorre mai invocare la funzione {Calculate}. Abbiamo eseguito il test che suggerivi ed abbiamo ottenuto risultati coerenti. Nel TS CROSS SMA MULTI TF abbiamo aggiunto, per la serie lunga, lo Stocastico lento 5,3,3 e modificato il codice del TS in modo da loggare i valori dello stocastico ogni volta che si genera una nuova candela. I valori corrispondono, la differenza sta nel millesimo a causa dell'arrotondamento. Alleghiamo le schermate e restiamo a disposizione.
 Nome del File Capture1.PNG [Disk] Download
 Descrizione Nessuna descrizione fornita
 Dimensione del File 18 Kbytes
 Scaricato:  0 tempo(i)

 Nome del File Capture2.PNG [Disk] Download
 Descrizione Nessuna descrizione fornita
 Dimensione del File 15 Kbytes
 Scaricato:  0 tempo(i)

 Nome del File Capture3.PNG [Disk] Download
 Descrizione Nessuna descrizione fornita
 Dimensione del File 250 Kbytes
 Scaricato:  5 tempo(i)


Elena - Team Sella
Henry77


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

Grazie della risposta,
In effetti se utilizzo l'esempio funziona correttamente, il problema sembra questo:
Se t viene calcolato come
t = SystemContext.PriceSerie.LastCandleIndex -1;
nessun problema, ma il tempo è indietro di una candela (comunque la candela è stata creata e in real time si sta creando la nuova)
con t = SystemContext.PriceSerie.LastCandleIndex;
i calcoli vengono completamente errati come nell'immagine che allego.
Vorrei sapere se è un problema di calcolo oppure non è possibile calcolare gli indicatori al tempo effettivo.

Grazie
 Nome del File CalcoliSTSErrati.jpg [Disk] Download
 Descrizione Nessuna descrizione fornita
 Dimensione del File 896 Kbytes
 Scaricato:  3 tempo(i)

Henry77


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

una gentile risposta?
Diego.Salgarella


Registrato: 17/02/2011 11:21:07
Messaggi: 1535
Offline

Ciao Henry

penso che se ti specifico alcune cose ti dovrebbe risultare tutto più chiaro
  • All'interno del Trading System tutti gli indicatori inclusi sono sempre calcolati

  • Il trading System viene "invocato" per diverse tipologie di eventi quelle ci interessano in questo caso sono: TSEventType.Tick e TSEventType.Candle


  • Evento TSEventType.Tick
    Si verifica ogni volta che arriva un nuovo tick nella serie
    Evento TSEventType.Candle
    Si verifica ogni volta che una nuova candela viene aggiunta alla serie. Quindi quando si verifica questo evento vuol dire che è arrivato il primo tick della nuova candela e sicuramente quella precedente è chiusa (ecco perchè si usa LastIndex -1)

    Se vuoi sempre sapere il valore corrente dell'indicatore usa l'evento Tick e LastIndex (senza -1)

    Ciao
    Diego Salgarella


    Diego Salgarella
    Resp IT Trading On Line
    Henry77


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

    grazie
     
    Indice dei Forum » SellaExtreme 5
    Vai a:   
    E.t.v.s.p.b WLS11G