Announcement

Collapse
No announcement yet.

DATI STORICI per Metatrader4: fractal interpolation, scaricamento e importazione

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

  • Cristian
    replied
    Un saluto a tutti e complimenti ad Umberto per l'ottima guida.

    Se testo strategie che eseguono ordini intrabar di fatto devo usare modalità ogni tick. Cosi facendo comunque non posso neppure testare 2 anni per volta di una semplice strategia daily, perchè il sistema produce un file FXT enorme che satura lo spazio disco. Ad esempio se dovessi testare dal 2006 al 2016 dovrei eseguire 10 volte il test anno per anno poi esportare i dati su excel e aggreagare il tutto.

    Esiste un rimedio a tutti questo? Avete anche voi lo stesso problema oppure sto sbagliando io?

    Grazie

    Leave a comment:


  • mirco
    replied
    in effetti vedo ora che è possibile modificare la cartella (data output directory). Tasto blu settings (versione 4.2.0).
    ho lasciato le impostazioni di default (v. msg umbertosm) e a me non ha mai dato problemi.
    ho provato ora a cambiare cartella e scarica regolarmente.

    ps: durante l'installazione dell'applicazione era suggerita di posizionare in C: per evitare eventuali problemi con windows... probabilmente non ha nulla a che vedere con il tuo problema, ma giusto per procedere per esclusione

    Leave a comment:


  • umbertosm
    replied
    Io con il Tick Data Downloader NON posso modificare la cartella di destinazione storico, è per default
    \TickDataDownloader\tickdata
    io uso regolarmente il software e mi funziona sempre bene

    Leave a comment:


  • Exploit
    replied
    Provando a utilizzare il tick downloader di strategyquant, dopo aver inserito la cartella di destinazione storico e salvando, provo a scaricare lo storico e mi dice sempre errore cartella di destinazione non impostata.
    Aprendo di nuovo le impostazioni effettivamente la cartella non c'è nonostante l'abbia inserita precedentemente. Qualcuno ha lo stesso problema?
    Grazie

    Leave a comment:


  • mirco
    replied
    Originally posted by umbertosm View Post
    Il metodo Control points (Punti di controllo) fa un backtest sui dati storici usando i 4 valori Open, High, Low e Close (=OHLC[SIZE=14px]) del timeframe immediatamente inferiore a quello su cui stai facendo girare il backtest,
    Grazie umberto per l'utilissimo tutorial.

    Ho verificato che utilizzando dati M1 con volumi originali la velocità di elaborazione del backtest su M5 con metodo "punti di controllo" è sensibilmente superiore rispetto alla stessa base dati e volumi impostati a 4 per ogni candela M1 (e di conseguenza 20 per le candele M5 ottenute con period converter).

    I risultati sono identici

    mi sarei aspettato la stessa velocità, visto che vengono considerate solo OHLC M1.

    Leave a comment:


  • LVCA
    replied
    Originally posted by mico View Post
    Vorrei segnalarvi anche questo sito ;
    http://www.forextester.com/data/data...-kS6ERm9mvXg.1
    dove poter scaricare dati 1M di buona qualità, per i maggiori cambi/cross + oro e argento i dati sono free.
    Ciao , attenzione che secondo me non sono buoni questi dati, già provati , in quanto il feed è a 4 decimali . I backtest risultano pertanto completamente sfalsati su TF intraday

    I backtest sono molto veloci ma puoi usarli solo su TF molto lenti , daily direi e basta , forse forse H4 ....
    Last edited by LVCA; 09-12-2015, 13:31.

    Leave a comment:


  • umbertosm
    replied
    Originally posted by ballgius View Post

    '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?
    ciao ballgius, non esiste un metodo ottimale su come si ottimizza, ognuno artigianalmente si crea da sé le proprie linee guida.

    In generale io cerco di ottimizzare un numero minimo di variabili, due al massimo, per l'ovvia ragione di evitare l'overfitting sui dati storici.

    Ma se ho ben 5 variabili su voglio individuare i valori ottimali, devo necessariamente lavorare su un ampio range di dati storici, al fine di avere almeno 1000 trade che mi dia un minimo di significatività statistica.

    Ad esempio ho 5 variabili che voglio ottimizzare:
    1. numero di pip di takeprofit
    2. numero di pip di stoploss,
    3. numero di barre di un'indicatore o una variabile relativa ad un pattern di candele
    4. numero di pip dal prezzo di apertura del trade da cui scatta il trailing stop
    5. orario di inizio ed orario di fine della giornata in cui l'EA può aprire i trade


    Non ottimizzo le 5 variabili tutte insieme, ma inizialmente fisso a priori un valore per ciascuna delle variabili 3, 4 e 5
    ed inizio ad ottimizzare insieme i pip di takeprofit e di stoploss

    Dopo aver trovato i valori ottimali di TP e SL, passo ad ottimizzare la variabile 3. (indicatore o pattern)

    Poi passo al trailing stop ed infine agli orari di trading.

    In questa sequenza ad ogni ottimizzazione faccio osservazioni sul comportamento dell'EA e decido man mano di ritoccare il passo ed il range di valori delle variabili da ottimizzare.

    Il demo live mi dirà se ho fatto overfitting o se ho ottimizzato per bene e guadagno come l'ottimizzazione sui dati storici prevederebbe.

    Leave a comment:


  • ballgius
    replied
    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

    Leave a comment:


  • MaDo
    replied
    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

    Leave a comment:


  • MaDo
    replied
    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.

    Leave a comment:


  • umbertosm
    replied
    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/

    Leave a comment:


  • ballgius
    replied
    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

    Leave a comment:


  • umbertosm
    replied
    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ù!




    Leave a comment:


  • umbertosm
    replied
    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.

    Leave a comment:


  • ballgius
    replied
    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

    Leave a comment:

Working...
X