Announcement

Collapse
No announcement yet.

DATI STORICI per Metatrader4: fractal interpolation, scaricamento e importazione

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

    #46
    Originally posted by umbertosm View Post

    Gli errori grafici sono dovuti a dati storici sporchi, con errori e buchi, da qui il quality model non disponibile.

    E' necessario che rifai il download dei dati storici con il software SQ Tick Data Downloader dai server Dukascopy, e verificare, dopo l'importazione dentro Metatrader4 con lo script che trova i buchi dati storici, dove sono i "buchi" di candele..

    Ciao Umberto, scusa se rispondo solo ora. Ok rifatto download, esportato di nuovo il tutto. Quando lancio grafico a 1 min, il grafico mi viene caricato bene nel periodo di dati scaricato da duka (01 gen 2013 a oggi). Per ora non mi interessa costruire i grafici superiori mi è sufficiente avere i grafici completi ad 1 min. Quindi ho lanciato il tuo magico script trova buchi e in effetti lo script mi segnala molti buchi nello storico ad 1 min,

    Quindi ora immagino che dovrò cercare in altri modi (altri broker) le candele mancanti, e importarli nello storico per andare a chiudere i buchi.

    Quindi la procedura qual è: mi devo segnare una ad una le candele a 1 min mancanti? Cercarle presso altre fonti, esportarle in csv e ad una a una importarle?

    Tu come hai risolto questo problema?

    Vedo che avere uno storico un pò serio su mt4 è davvero arduo :25.facepalm_80_anim
    Last edited by fuzzytrade; 10-10-2015, 14:31.

    Comment


      #47
      Le candele M1 hanno sempre molti buchi, specialmente in condizioni di bassa liquidità, è normale, per qualsiasi coppia di valute, anche il liquidissimo EURUSD.

      Ad esempio troverai la candela M1 dell'una e 5 minuti, e poi la candela successiva dell'una e 8 minuti.

      Il problema si ha se mancano ore intere, e non si spiega il perché, ma se ci sono poche candele M1 mancanti ogni giorno è tutto normale.

      Un backtest con candele M1 in modalità Every Tick, quando è svolto correttamente darà una qualità del 25% e mai del 90%, come invece avviene per tutti gli altri timeframe da M5 in su: il perché di questo basso valore è dovuto all'algoritmo di calcolo inventato da Metatrader, ma 25% è OK per candele M1.
      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


        #48
        Originally posted by umbertosm View Post
        Le candele M1 hanno sempre molti buchi, specialmente in condizioni di bassa liquidità, è normale, per qualsiasi coppia di valute, anche il liquidissimo EURUSD.

        Ad esempio troverai la candela M1 dell'una e 5 minuti, e poi la candela successiva dell'una e 8 minuti.

        Il problema si ha se mancano ore intere, e non si spiega il perché, ma se ci sono poche candele M1 mancanti ogni giorno è tutto normale.

        Un backtest con candele M1 in modalità Every Tick, quando è svolto correttamente darà una qualità del 25% e mai del 90%, come invece avviene per tutti gli altri timeframe da M5 in su: il perché di questo basso valore è dovuto all'algoritmo di calcolo inventato da Metatrader, ma 25% è OK per candele M1.


        Perfetto, grazie Umberto come sempre.

        Comment


          #49
          Originally posted by umbertosm View Post
          Importazione candele M1 in Metatrader4
          e generazione di tutti i timeframe
          Ciao Umberto e grazie per il prezioso contributo. volevo porti una domanda: nel momento che voglio inserire nuovi dati precedenti o successivi a quelli contenuti nel data base inserito secondo la procedura descritta devo usare qualche accorgimento, o il programma riconosce le date e le colloca nella posizione temporale corretta?

          Comment


            #50
            Originally posted by ballgius View Post
            nel momento che voglio inserire nuovi dati precedenti o successivi a quelli contenuti nel data base inserito secondo la procedura descritta devo usare qualche accorgimento, o il programma riconosce le date e le colloca nella posizione temporale corretta?
            Si, importando nuovi dati successivi o precedenti a quelli caricati, Metatrader4 va ad accodare i nuovi dati prima o dopo i dati preesistenti.
            Se importi nuovi dati con gli orari già presenti, Metatrader4 dovrebbe lasciare i dati precedentemente caricati: quelle rare volte che nell'importare il delta di nuove candele M1, qualche candela si sovrapponeva alle precedenti, Metatrader4 mi ha lasciato le candele precedenti e ha trascurato le nuove che avevano gli stessi orari.


            Se volessi importare nuove candele M1 che vadano a sostituire quelle precedenti, devi prima cancellare le precedenti, chiudere Mt4, riaprirlo e poi puoi importare le nuove.
            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


              #51
              Originally posted by umbertosm View Post

              Si, importando nuovi dati successivi o precedenti a quelli caricati, Metatrader4 va ad accodare i nuovi dati prima o dopo i dati preesistenti.
              Se importi nuovi dati con gli orari già presenti, Metatrader4 dovrebbe lasciare i dati precedentemente caricati: quelle rare volte che nell'importare il delta di nuove candele M1, qualche candela si sovrapponeva alle precedenti, Metatrader4 mi ha lasciato le candele precedenti e ha trascurato le nuove che avevano gli stessi orari.


              Se volessi importare nuove candele M1 che vadano a sostituire quelle precedenti, devi prima cancellare le precedenti, chiudere Mt4, riaprirlo e poi puoi importare le nuove.
              grazie per la tua risposta come sempre esauriente e tempestiva. ti pongo ora una domanda forse molto banale ma che riguarda una situazione che non sono riuscito a risolvere: volendo cancellare candele ad 1M relative a più giorni c'è un modo per selezionare velocemente questo intervallo temporale per poi cancellarle il contenuto? sulla piattaforrma l'unico modo che ho trovato è stato quella di cancellarle una ad una con tempi biblici. grazie

              Comment


                #52
                ma certo! :06.surprised_80_ani

                nel centro storia, selezioni la prima candela, poi scendi giù e mentre tieni premuto il tasto SHIFT, selezioni l'ultima candela da cancellare: ti rimane selezionato tutto il range di candele dalla prima all'ultima,
                infine clicchi su CANCELLA.
                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


                  #53
                  Originally posted by umbertosm View Post
                  ma certo! :06.surprised_80_ani

                  nel centro storia, selezioni la prima candela, poi scendi giù e mentre tieni premuto il tasto SHIFT, selezioni l'ultima candela da cancellare: ti rimane selezionato tutto il range di candele dalla prima all'ultima,
                  infine clicchi su CANCELLA.
                  grazie Umberto! un'ultima domanda: come mai quando eseguo dei test di strategia con MT4 su broker diversi utilizzando lo stesso expert, lo stesso time frame, lo stesso intervallo temporale la stessa modalità (every tick) il tempo impiegato per restituire il risultato è nettamente diverso? grazie

                  Comment


                    #54
                    Succede perché le candele M1 di ciascun broker hanno volumi diversi ed il volume, come spiegato nel primo posto di questo thread, è il numero di variazioni di prezzo, i tick reali forniti dal broker nel minuto della singola candela.
                    Il tempo di esecuzione di un backtest è dato dalla somma di:
                    - il tempo di scaricamento dal server del broker dei dati M1 e di tutti gli altri timeframe necessari per eseguire il backtest al tick: un server lento a scaricare aumenta i tempi
                    - il tempo di generazione del file .FXT contenente tutti i dati storici al tick su cui verrà condotto il backtest: all'aumentare del volume delle candele M1 aumentano i tick e aumenta la dimensione del file .FXT e il tempo di generazione
                    - il tempo di esecuzione effettivo del backtest: a parità di trading system, più tick il trading system deve elaborare e maggiore è il tempo di esecuzione

                    Perciò in generale il tempo di esecuzione di un backtest aumenta con i dati storici dei broker che offrono un maggior volume.
                    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


                      #55
                      Ho trovato la soluzione per risolvere l'errore 131 quando si fa un backtest con la Metatrader4 scollegato dal server demo del broker,

                      grazie a questo post: MinLot and LotStep problem during backtest: SOLVED

                      Come me, l'autore del post riscontrava che in centinaia di ore di backtesting passate non gli era mai capitato di avere un errore 131 quando Metatrader4 era scollegato da Internet:
                      <<I was having trouble with Error 131 (invalid volume) during backtests when the terminal was disconnected, but not when the terminal was connected. Same EA code. Same terminal. Never noticed this problem before in hundreds of hours of backtesting.>>

                      Nel suo post fa anche riferimento ad un articolo ufficiale della Metaquotes in cui si afferma la necessità, per fare un backtest, di avere una connessione attiva ad un account di un server del broker.
                      • Lot sizes including initial size and increment step, commissions and swaps should be taken from the active account settings
                      • Before testing, it is necessary to make sure that there is at least one activated account in the list in "Navigator" window of the terminal.
                      .

                      Ho trovato il modo per fare i backtest con Metatrader4 scollegato da Internet, facendo credere a Metatrader4 di avere invece una connessione attiva:
                      basta semplicemente simulare di connettere Metatrader4 al server demo del broker, in assenza di connessione ad internet, con il proxy finto come spiegato qui
                      aprendo la finestra di connessione e cliccando su Login:
                      Metatrader4 recupera da qualche file interno sul proprio computer le informazioni necessarie per l'esposizione dei trade nei backtest e non ripropone più l'errore 131 !







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

                      La soluzione l'ho trovata verificandola con questa procedura.

                      Per verificare se il Tester di Metatrader4, scollegato da Internet, è in grado di inviare correttamente un ordine in backtest,
                      ho inserito la stampa di queste due semplici funzioni nella OnInit()
                      così da vedere immediatamente nella scheda Journal se il backtest avrà o meno l'errore 131.

                      PHP Code:
                      int OnInit()
                        {

                         Print(
                      "SYMBOL_VOLUME_MIN=",SymbolInfoDouble(Symbol(), SYMBOL_VOLUME_MIN));
                         Print(
                      "SYMBOL_VOLUME_STEP=",SymbolInfoDouble(Symbol(), SYMBOL_VOLUME_STEP));

                         return(
                      INIT_SUCCEEDED);
                        } 


                      Apro la piattaforma Metatrader4, scollegata da Internet.





                      quindi faccio partire il backtest in modalità Visual mode



                      e nella scheda Journal si legge che Metatrader4 NON è in grado di calcolare correttamente l'esposizione dei trade perché per il simbolo usato con il trading system, le due variabili
                      - minimo volume in lotti dell'esposizione del trade
                      - valore dell'incremento di volume dell'esposizione del trade
                      valgono 0.0






                      Ma non appena si simula di connettersi con il server demo del broker, aprendo la finestra di connessione e cliccando su Login





                      andando a ripetere il backtest in modalità Visual Mode, si legge che ora Metatrader4 ha recuperato le due variabili fondamentali per simulare correttamente l'invio di un trade in backtest: l'errore 131 non ci sarà più!




                      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


                        #56
                        Originally posted by umbertosm View Post
                        Succede perché le candele M1 di ciascun broker hanno volumi diversi ed il volume, come spiegato nel primo posto di questo thread, è il numero di variazioni di prezzo, i tick reali forniti dal broker nel minuto della singola candela.
                        Il tempo di esecuzione di un backtest è dato dalla somma di:
                        - il tempo di scaricamento dal server del broker dei dati M1 e di tutti gli altri timeframe necessari per eseguire il backtest al tick: un server lento a scaricare aumenta i tempi
                        - il tempo di generazione del file .FXT contenente tutti i dati storici al tick su cui verrà condotto il backtest: all'aumentare del volume delle candele M1 aumentano i tick e aumenta la dimensione del file .FXT e il tempo di generazione
                        - il tempo di esecuzione effettivo del backtest: a parità di trading system, più tick il trading system deve elaborare e maggiore è il tempo di esecuzione

                        Perciò in generale il tempo di esecuzione di un backtest aumenta con i dati storici dei broker che offrono un maggior volume.
                        Buongiorno Umberto volevo porti questa domanda: girovangando in internet ho trovato dei back test che vengono dichiarati con affidabilità del 99%. Per ottenere un back test così accurato come si deve procedere? o quali dati occorre inserire in piattaforma? e poi esistono delle banche dati free che ti consentono di avere questi risultati? è così determinante avere affidabilità del test al 99% anzichè del 90%?
                        Grazie per la risposte

                        Comment


                          #57
                          Il backtest al 99% si può ottenere soltanto se usi Metatrader con un software di terze parti. Il backtest al 99% si ha quando Metatrader NON genera i tick inventandoli con il suo algoritmo 'fractal interpolation' descritto al primo post di questo thread, ma con i dati a tick REALI.

                          Il server che permette di scaricare gratuitamente i dati al tick qualitativamente buoni come quelli a pagamento, è quello di Dukascopy, i cui dati al tick sono scaricabili anche con il software descritto in questo thread.

                          Il backtest al 90% è invece quello che Metatader4 permette di fare in modalità 'Every tick' dove i dati al tick sono generati dal Tester di Mt4 come descritto in questo thread.

                          A mio parere un backtest al 99% è utile se usi un trading system che lavora su piccoli movimenti di mercato:
                          - EA che fa scalping con takeprofit e stoploss di pochi pip
                          - EA che usa il trailing stop
                          In questi casi testare l'EA con dati reali permette una verifica migliore rispetto ai dati al tick inventati dal Tester di Metatrader4.

                          Io personalmente non uso più il backtest al 99% perché i tempi di backtest ed ottimizzazione sono lunghissimi

                          Ad oggi so, ma non ho approfondito, che si può fare backtest al 99% con questi due software, ma non li ho mai usati.
                          - Tick data suite (a pagamento): http://eareview.net/tick-data-suite
                          - TickStory (gratis): http://www.tickstory.com/
                          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


                            #58
                            Originally posted by umbertosm View Post
                            Ad oggi so, ma non ho approfondito, che si può fare backtest al 99% con questi due software, ma non li ho mai usati.
                            - Tick data suite (a pagamento): http://eareview.net/tick-data-suite
                            - TickStory (gratis): http://www.tickstory.com/
                            Segnalo che a partire dalla versione 1.6 anche Tickstory è a pagamento, la cifra richiesta è comunque irrisoria €22,65.

                            Comment


                              #59
                              Per chi fosse interessato ad effetturare backtest con la versione 1.5.3 di tickstory (l'ultima gratuita) segnalo la discussione aperta da sergiot.
                              E' necessario avere una versione precedente della MT4 che non deve essere mai aggiornata.
                              Viene tutto spiegato da sergiot, è facile.

                              https://www.forexdream.net/forum/piat...t-advisor-free

                              Comment


                                #60
                                Originally posted by umbertosm View Post
                                Il backtest al 99% si può ottenere soltanto se usi Metatrader con un software di terze parti. Il backtest al 99% si ha quando Metatrader NON genera i tick inventandoli con il suo algoritmo 'fractal interpolation' descritto al primo post di questo thread, ma con i dati a tick REALI.

                                Il server che permette di scaricare gratuitamente i dati al tick qualitativamente buoni come quelli a pagamento, è quello di Dukascopy, i cui dati al tick sono scaricabili anche con il software descritto in questo thread.

                                Il backtest al 90% è invece quello che Metatader4 permette di fare in modalità 'Every tick' dove i dati al tick sono generati dal Tester di Mt4 come descritto in questo thread.

                                A mio parere un backtest al 99% è utile se usi un trading system che lavora su piccoli movimenti di mercato:
                                - EA che fa scalping con takeprofit e stoploss di pochi pip
                                - EA che usa il trailing stop
                                In questi casi testare l'EA con dati reali permette una verifica migliore rispetto ai dati al tick inventati dal Tester di Metatrader4.

                                Io personalmente non uso più il backtest al 99% perché i tempi di backtest ed ottimizzazione sono lunghissimi

                                Ad oggi so, ma non ho approfondito, che si può fare backtest al 99% con questi due software, ma non li ho mai usati.
                                - Tick data suite (a pagamento): http://eareview.net/tick-data-suite
                                - TickStory (gratis): http://www.tickstory.com/
                                Salve Umberto e grazie per la risposta sempre esauriente. Finalmente seguendo la procedura indicata sono riuscito a scaricarmi da Dukascopy il data base che mi serviva ed ho iniziato ad eseguire i primi test su un expert. L'expert deve essere ottimizzato su 5 parametri i quali a loro volta possono assumere una decina di valori. questo comporta un elevato numero di combinazioni ed il test richiede tempi lunghissimi per ottenere i risultati (oltre 200 ore) naturalmente utilizzando la modalità every tick. mi chiedo se questo è il corretto modo di procedere o se forse è meglio eseguire diversi test uno per ogni parametro dell'expert prendere il valore che restituisce il miglio risultato inserilo nel secondo paramentro e procedere a trovare la combinazione migliore per poi ripetere l'operazione con i parametro successivi. i tempi si riducono notevolmente ma non so se sia un modo corretto di procedere. sapresti darmi qualche indicazione in mertio? grazie . Giuseppe

                                Comment

                                Working...
                                X