Announcement

Collapse
No announcement yet.

Dati Storici con Ora Legale NON rettificata e come gestirli

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Dati Storici con Ora Legale NON rettificata e come gestirli

    Dopo una decina di giorni di riflessioni sono riuscito a venire a capo di questa problematica, che diventa fondamentale per chi, come me, usa diversi filtri sull'ora e li ottimizza sui dati storici.

    Vi condivido tutto il ragionamento ed il codice sorgente di base per gestire i dati storici dei broker che non rettificano l'ora legale.


    Nella vita normale, in Europa, il passaggio dall’ora solare all’ora legale avviene l'ultima domenica di marzo: alle ore 02:00 l'orologio viene spostato un'ora in avanti sulle ore 03:00.
    Viceversa, il passaggio dall’ora legale all’ora solare avviene l'ultima domenica di ottobre: alle ore 03:00 l'orologio viene spostato un'ora indietro sulle ore 02:00.

    I dati in LIVE dei broker hanno orari coerenti con la vita normale.

    Prendiamo come esempio il CFD del DAX, che ha una sessione dalle 08 alle 22 ora tedesca, che coincide con il fuso orario italiano:
    UTC+1 per i 6 mesi di ora solare, da fine ottobre a fine marzo (orario invernale)
    UTC+2 per i 6 mesi di ora legale, da fine marzo a fine ottobre (orario estivo)

    Per qualsiasi broker, indipendentemente dal fuso orario del server su cui risiedono, l’orario di sessione del CFD del DAX in LIVE è lo stesso tutto l’anno, sia con l’ora solare che con l’ora legale, cioè i dati LIVE mantengono sempre gli stessi orari di sessione dalle 8 alle 22.



    http://www.dossier.net/utilities/calcolo-ora-legale/






    Invece, per i DATI STORICI del CFD del DAX la situazione è diversa a seconda del broker.


    :090.WAsmile: Alcuni broker, come FXCM e Forex.com hanno differenti orari di sessione tra il periodo di ora solare ed il periodo di ora legale.
    Gli orari dei DATI STORICI del CFD del DAX
    - in inverno vanno dalle 08 alle 22 : fuso orario UTC+1
    - in estate vanno dalle 07 alle 21 : fuso orario UTC+1
    Diversamente, in LIVE, l’orario estivo si sposta in avanti di 1 ora (UTC+2) e quindi la sessione del CFD del DAX in LIVE coincide con quella invernale, dalle 08 alle 22.

    Con questi broker gli orari storici hanno tutti lo stesso fuso orario, da qui la differenza di 1 ora indietro in estate, perché dovendo aumentare di 1 ora gli orari in LIVE, gli orari di sessione diventano 08-22 anche durante l’ora legale.
    Quindi in sintesi, gli orari dei DATI STORICI di FXCM e Forex.com sono diversi da quelli che i due broker fanno vedere in LIVE quando sia in inverno che in estate la sessione di 14 ore è sempre 08 – 22.

    Le ore 2 della domenica del cambio all’ora legale dei DATI STORICI NON rettificati, corrispondono alle ore 3 degli stessi dati IN LIVE.
    Le ore 2 della domenica del cambio all’ora solare dei DATI STORICI NON rettificati, corrisponde alle ore 2 degli stessi dati IN LIVE.



    :090.WAsmile: Altri broker, come AFX Capital o Dukascopy, hanno invece gli orari dei DATI STORICI del CFD del DAX che inglobano già dentro l’ora legale, per cui la sessione di 14 ore giornaliera sia in inverno che in estate va dalle 8 alle 22.
    Con questi broker i dati storici vengono “rettificati” per rendere gli orari dei dati storici identici a quelli che si hanno effettivamente durante le negoziazioni LIVE.




    Naturalmente l'orario dei DATI STORICI NON rettificati vale anche per le COPPIE DI VALUTE del FOREX

    La verifica di questa caratteristica non è però semplice come si può fare con i CFD (per i quali si osserva immediatamente la differenza di 1 ora nell'inizio e fine sessione tra i due periodi con ora solare e ora legale) perché la sessione giornaliera del Forex è di 24 ore.

    Nel grafico seguente un confronto tra DATI STORICI delle candele EURUSD H1 di Forex.com (NON rettificati) , con le candele EURUSD H1 di Dukascopy (rettificati).
    Si osserva la differenza di 1 ora durante l'ora legale: nella domenica di inizio dell’ora Legale del 2014, il 30 marzo, su Forex.com la candela delle ore 21 corrisponde alla candela delle ore 22 di Dukascopy.





    °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°


    Data questa premessa, di seguito la SOLUZIONE per poter fare backtest con dati storici NON rettificati se si usano variabili legate agli orari di negoziazione, ad esempio Ora_inizio_operativita, Ora_chiusuraTrade_Venerdi, ecc.

    Per poter usare i DATI STORICI NON rettificati, su trading system che usano variabili legate agli orari di negoziazione,
    bisogna gestire gli orari durante il periodo di ora Solare da quelli con ora Legale.

    Basta creare una funzione che ad ogni avvio di barra verifica, nel solo caso di backtest o ottimizzazione

    if (IsTesting())
    se l’orario corrente è nella finestra semestrale dell’ora solare o dell’ora legale: nel solo caso di ora legale, bisogna spostare di 1 ora indietro tutte le variabili che tengono conto dell'ora.

    Ad esempio Ora_inizio_operativita = 9
    - in inverno rimane quella settata nei parametri esterni, Ora_inizio_operativita = 9
    - in estate invece va spostata indietro di 1 ora, Ora_inizio_operativita = 8
    In questo modo tutta l’operatività con i DATI STORICI è coerente con gli orari LIVE, quando le sessioni orarie giornaliere sono sempre identiche sia in estate che in inverno.


    In allegato il codice sorgente di un EA (oraLegale.mq4) che contiene la funzione che verifica ad ogni avvio di barra se l'orario corrente è ora Solare o ora Legale e la stampa nella scheda Journal (Diario) del Tester (Collaudatore).
    Il codice contiene inglobate le date per gestire l'ora Legale dal 2010 al 2018
    Naturalmente il codice è solo di base, cioè va poi modificato per il proprio trading system.





    In LIVE non è necessario usare questa funzione, perché ogni broker modifica correttamente l'orario delle sessioni di Forex o CFD all'orario corrente in ora Solare o ora Legale.


    Attached Files
    La vita non è un giro di prova, cogli l’attimo..
    Realizzazione per Metatrader4 di trading system, indicatori, pattern grafici, Ottimizzazioni IS-OOS su Forex e CFD, Analisi di Portafoglio .

    #2
    Ho realizzato uno script risolutivo :04.cool_80_anim_gif che corregge l'ora legale dei dati storici senza ora legale,
    cioè dati storici (come quelli scaricati con FXCM o Forex.com) con fuso orario fissato per tutto l'anno.

    Eseguendolo sul timeframe M1 dei dati storici senza ora legale --> modifica l'ora di tutte le candele che ricadono nella finestra temporale dell'ora legale europea, per gli anni che vanno dal 2010 al 2020.

    Quindi, se ad esempio ho questa candele M1 di EURUSD, come si possono vedere nel Centro Storia
    e so che sono dati storici SENZA Ora Legale (=stesso fuso orario tutto l'anno)





    per rettificare i dati storici aggiungendo 1 ora a tutte le candele nell'ora legale, si esegue il mio script allegato sul timeframe M1





    Dopo l'esecuzione bisogna CHIUDERE Metatrader4 e quindi riaprirla

    ed il risultato è che i dati storici vengono rettificati con l'ORA LEGALE: da marzo ad ottobre ad ogni candela M1 viene spostato in avanti l'orario di +1 ora,

    mentre per le altre candele in ora Solare l'orario rimane inalterato,

    secondo le date ufficiali europee riportate nella tabella al primo post di questo thread.







    Poi, per costruire tutte le candele da M5 in su, si segue la procedura standard descritta qui


    Attached Files
    La vita non è un giro di prova, cogli l’attimo..
    Realizzazione per Metatrader4 di trading system, indicatori, pattern grafici, Ottimizzazioni IS-OOS su Forex e CFD, Analisi di Portafoglio .

    Comment

    Working...
    X