Announcement

Collapse
No announcement yet.

PeriodConverter corretto per calcolare le candele settimanali e mensili dai dati M1

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

    PeriodConverter corretto per calcolare le candele settimanali e mensili dai dati M1

    ciao,
    in anni ed anni di uso di Metatrader4 non avevo mai avuto bisogno di fare backtest con dati storici settimanali e mensili,
    perciò quando una decina di giorni fa ho provato a fare un backtest di un EA che fa uso di Pivot settimanale e mensile,
    ho scoperto che lo script PeriodConverter.mq4 (nativo di Metatrader4 con cui si ricavano tutti i timeframe dai dati storici M1)
    calcola i timeframe settimanale e mensile in maniera quasi sempre errata, per le seguenti ragioni.


    Timeframe settimanale
    Eseguendo lo script PeriodConverter con la variabile di input Period multiplier factor = 10080,
    lo script considera come giorno di inizio della settimana, NON la domenica come dovrebbe essere, ma il giorno della settimana precedente alla data della candela più antica dei dati storici,
    e poi calcola l'inizio delle settimane successive sommando 7 giorni a questa data: quindi se i dati storici iniziano esattamente con una candela di lunedì, allora lo script calcola correttamente le candele settimanali, altrimenti sbaglia SEMPRE la data di avvio di tutte le candele settimanali.
    Ad esempio se la candela M1 più antica inizia di venerdì, lo script calcola le candele settimanali considerando il giovedì la data di inizio della settimana,
    calcolando quindi in maniera arbitraria le grandezze Open High Low e Close di tutte le candele settimanali.


    Timeframe mensile
    Eseguendo lo script PeriodConverter con la variabile di input Period multiplier factor = 43200,
    lo script calcola l'inizio di ogni mese successivo, sommando 30 giorni al mese corrente, (il numero di 43200 corrisponde a 30 giorni in minuti), senza considerare che nella realtà un mese può avere 28, 29, 30 o 31 giorni!
    Il risultato è che la data di inizio delle candele MENSILI sono quasi tutte sballate, perché approssimando ogni mese a 30 giorni, gli errori un mese dopo l'altro si sommano e le date di inizio mese sono tutte sbagliate.


    Ho corretto lo script e l'ho chiamato PeriodConverter_OK_Weeks_Months.mq4

    Lo script allegato calcola correttamente le candele settimanali e mensili, lasciando inalterato il codice, corretto, per il calcolo dei timeframe da M5 a Daily.

    In pratica lo script allegato va a sostituire il nativo PeriodConverter, se uno vuole calcolare correttamente le candele settimanali e mensili, quando si usa
    Period multiplier factor = 10080 per calcolare le candele settimanali
    Period multiplier factor = 43200 per calcolare le candele mensili.



    Di seguito l'effetto dell'uso del codice corretto PeriodConverter_OK_Weeks_Months.mq4 al posto di PeriodConverter.mq4 per la generazione di candele settimanali e mensili.




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

    Uso di PeriodConverter_OK_Weeks_Months per generare le candele SETTIMANALI: date CORRETTE di inizio settimana





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

    Uso di PeriodConverter per generare le candele settimanali: date sbagliate di inizio settimana






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

    Uso di PeriodConverter_OK_Weeks_Months per generare le candele MENSILI: date CORRETTE di inizio mese





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

    Uso di PeriodConverter per generare le candele MENSILI: date sbagliate di inizio mese








    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
    Ciao Umberto....
    Prima ti faccio i complimenti per questa tua ultima utilità.... poi ti faccio una domanda da inesperto in queste cose:
    Per poter utilizzare correttamente un backtest con le date giuste, devo usare io direttamente il nuovo Convertitore? o posso astenermi dal farlo indicando alla mt4 direttamente il Convertitore da utilizzare?....
    spero di essermi spiegato....
    insomma esiste un modo per dire alla mt4 di usare il convertitore giusto? in modo che lo si faccia una volta per tutte?
    grazie in anticipo e scusa se ho detto fesserie lol
    ilgrigio

    Comment


      #3
      Grazie Umberto sei sempre er mejo..

      Comment


        #4
        Originally posted by ilgrigio View Post
        Ciao Umberto....
        Per poter utilizzare correttamente un backtest con le date giuste, devo usare io direttamente il nuovo Convertitore? o posso astenermi dal farlo indicando alla mt4 direttamente il Convertitore da utilizzare?....
        spero di essermi spiegato....
        insomma esiste un modo per dire alla mt4 di usare il convertitore giusto? in modo che lo si faccia una volta per tutte?
        Il nuovo script sostituisce in tutto e per tutto il precedente nativo di Mt4, perché converte correttamente i timeframe settimanali e mensili e lascia inalterato il codice per generare gli altri timeframe.

        La modalità per usare il convertitore è spiegato nel terzo post di questo thread

        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


          #5
          Grazie Umberto....
          sei gentilissimo .... come sempre...
          ho scaricato lo script....
          Poi ho fatto una piccola ricerca e sono approdato qui: http://www.forexfactory.com/showthread.php?t=206301 (spero possa essere utile per nuovi aggiornamenti.....)
          Io normalmente non lo uso... perchè non lavoro su date precise.... comunque ora grazie a te sono consapevole del problema....
          complimenti e grazie ancora
          ilgrigio

          Comment

          Working...
          X