Se vedi tutto strano devi riaggiornare la cache del tuo browser. premendo CTRL + F5. E' dovuto all'aggiornamento del forum.

Miglior processore per backtest con Metatrader

Argomenti generali su Windows, VPS, Server dedicati al trading od anche sul PC desktop
Avatar utente
positiveday
Amministratore
Messaggi: 1905
Iscritto il: sab mag 28, 2016 9:23 pm

Miglior processore per backtest con Metatrader

Messaggio da positiveday »

Molti di noi eseguono lunghe ottimizzazioni con Metatrader.
Alcuni fanno semplicemente overfitting, che in parole semplici è mettere talmente tanti parametri in un trading system che poi il medesimo "impara" a dare il meglio giusto per il periodo di ottimizzazione, e quando gira nel "futuro", cioè coi dati live va malissimo perchè sa tradare solo nel periodo di ottimizzazione, peccato.
:)

Ma tralasciando l'overfitting (del tempo macchina dei computer ognuno ne dispone liberamente) mi sono sempre interessato ad avare almeno un PC veloce per eseguire le ottimizzazioni di MT4 al meglio.
Cioè processore veloce, una buona quantità di RAM ecc. ecc.

Si ma .... è il "meglio"?

Finchè non sono arrivato a comprendere la più semplice verità, che è talmente scema che tutti ci saranno già arrivati prima, io sono l'ultimo.

Metatrader, almeno per ora, non è in grado di sfruttare più processori nei backtest e quindi avere un sistema multicore, dual processor o quant'altro non serve a una mazza.
:)

E' meglio avere un pc con un processore veloce per i thread singoli.
Toh, guarda caso il famoso sito CPU benchmark ha proprio una sezione dedicata agli amanti dei programmi vintage che necessitano di velocità.
E' la comparazione dei vari processori dal punto di vista dell'esecuzione Single thread, è la Single Thread CPU Chart che ci fornisce la soluzione all'annoso problema.
Il miglior processore per fare i BT con MT4 è l'Intel Core i7-4790K @ 4.00GHz uscito nella seconda metà del 2014 e tuttora imbattuto, si perchè del single thread non gliene frega più nulla a Intel o AMD, tutti i software di modellazione tridimensionale/animazione ecc. ecc. usano tutti i processori, "n" schede video, ecc. ecc. se fossero fermi al single thread saremmo all'animazione degli anni '90 o peggio.

Guardando la tabella di comparazione si evince un'altra grande verità, senza il multi core e quindi l'esecuzione parallela saremmo messi proprio male, cioè la differenza tra un processore e l'altro nella lista non è mostruosa come nelle comparazioni multi core, dove tra l'altro il "nostro" 4790K ha un indice di 11.196 contro il 26.730 del migliore Xeon.

Cioè, l'esecuzione single thread è il peggio del peggio perchè dipende solo dal clock del singolo core/processore e dalla capacità di eseguire il codice senza "perdersi" con spostamenti di dati inutili.

Tutto questo almeno fino a quanto Metaquotes non si degnerà di far andare i backtest di MT4 in multi processore .....
Ma almeno il processore è ormai quello, non è che ogni due mesi ne esce uno più veloce ....

Ah, per chi fosse interessato, il processore in questione è tuttora intorno ai 330€, non è che proprio lo svendano ....
E se poi qualcuno fosse interessato all'overclocking .... ecco qua : Z97 4790K: L’OC dalla base
:)
Trovi interessanti i contenuti di forexometro? Considera la possibilità di iscriverti! :mrgreen: e poi di partecipare ...

Avatar utente
positiveday
Amministratore
Messaggi: 1905
Iscritto il: sab mag 28, 2016 9:23 pm

Re: Miglior processore per backtest con Metatrader

Messaggio da positiveday »

Per quelli che invece non hanno denaro da spendere ecco un sistema semplice per moltiplicare artificialmente per "n" la velocità dei backtest di MT4.
:o

Anche questa è un'idea semplice ma efficace.
E' quella del multitasking con MT4.
Si vabbè ma non lo fa, si sa, MT4 usa un solo processore per volta.
Verissimo ma nessuno mi obbliga ad usare un SOLO MT4 per fare una ottimizzazione.
:?

Cioè i parametri di ottimizzazione sono quelli, cosa si multi-taskeggia?
Si creano dei set differenti, questo non è proibito.

Se ad esempio uno dei parametri principali del mio expert è sapere quale sia il miglior periodo di una media da 20 a 100 periodi e poi chiedo pure di ottimizzare altri xx parametri, solo il fatto di separare in otto MT4 differenti, ognuna delle quali pur mantenendo gli altri parametri invariati, farà l'ottimizzazione della media da 20 a 30, l'altra da 31 a 40, e via così, si otterrà anche meglio della singola ottimizzazione ma in tempi minori.
Non voglio dire che il tempo complessivo sarà 1/8 del tempo a singolo MT4, questo per il fatto che se si utilizza l'ottimizzazione genetica, già da subito MT4 si metterà a "scavare" in una determinata zona specifica della curva.
Ma comunque il tempo finale sarà minore della mega ottimizzazione a singolo MT4.
:D
Trovi interessanti i contenuti di forexometro? Considera la possibilità di iscriverti! :mrgreen: e poi di partecipare ...

Avatar utente
achab
Messaggi: 1114
Iscritto il: mer giu 01, 2016 10:13 am

Re: Miglior processore per backtest con Metatrader

Messaggio da achab »

positiveday ha scritto:... E' meglio avere un pc con un processore veloce per i thread singoli. ...
Tutto vero e sacrosanto, l'ho potuto verificare di persona in questi ultimi tempi, postando varie questioni online, soprattutto su tomshw.it.

Se parliamo dell'Intel i7-4790K, non bisogna tralasciare di menzionare una sua caratteristica peculiare: riscalda. E' molto potente ed anche "facile" da overcloccare (la Intel fornisce proprio il suo software per l'OC, il mio l'ho trovato sul sito della GigaByte e si chiama EasyTune) ma - di conseguenza - tende a scaldare e la scelta di un'appropriato sistema di raffreddamento è importante.

Ciò non vuol dire che sia necessario, anzi io c'ho attaccato un dissipatore fanless e da mesi lo uso in OC moderato a 4.5GHz (+2,27%); questo vuol dire che è ottimo ed il prezzo è giustificato.

Ma se volessi caricare la CPU per dei BT lunghi sceglierei un sistema di raffreddamento a liquido, meglio se custom. Costicchiano ma spingere il 4790K a 5.0GHz (il 25% in più della sua frequenza base) non è una cosa che va fatta alla leggera (anche se in caso di surriscaldamento va in Throttling). Infatti quando si vogliono spremere tutte le prestazioni dal processore bisogna raffreddarlo adeguatamente altrimenti la frequenza di clock si abbassa per protezione (Thermal Throttling, appunto) ed allora tanto valeva prendere una CPU con 3GHz di clock e spendere 1/3 del prezzo.

Personalmente non uso il mio desktop (dove è installato l'unico i7-4790K che uso) principalmente per i BT, ma una macchina dedicata dentro un frigorifero a 15° costanti che ha un clock di soli 3.2 GHz. Questo significa rallentare i BT di circa il 20% (rapporto tra il 4790K e la CPU a 3.2 GHz) e per un'ottimizzazione che dura un mese significherebbe risparmiare una settimana.

Che i verdi pips siano sempre con noi.
May the green pips be with us. Always!
/achab

Alcuni dei miei conti? Clicca qui.

Avatar utente
positiveday
Amministratore
Messaggi: 1905
Iscritto il: sab mag 28, 2016 9:23 pm

Re: Miglior processore per backtest con Metatrader

Messaggio da positiveday »

Ah, certo, è garantito che i dissipatori forniti da Intel nei boxati fanno ridere.
Io tuttora sto usando il mio vecchio i7 2600K che a 4,3 Ghz mi da un 2350 col Passmark, più che buono.
Lo sto raffreddando con questo, adesso è fuori produzione, ma è comunque un bell'oggettino.
:)
Trovi interessanti i contenuti di forexometro? Considera la possibilità di iscriverti! :mrgreen: e poi di partecipare ...

Avatar utente
positiveday
Amministratore
Messaggi: 1905
Iscritto il: sab mag 28, 2016 9:23 pm

Re: Miglior processore per backtest con Metatrader

Messaggio da positiveday »

Ah, da non dimenticare un gruppo di continuità.
Bruciarsi una settimana di ottimizzazione perchè la moglie ha acceso contemporaneamente il microonde, il ferro da stiro e la lavatrice, poi fa fare gesti sconsiderati.
Meglio attrezzarsi prima.
:D

E se si parla di gruppi di continuità per me il marchio è uno solo : APC.
Ne ho pure personalmente progettati di UPS nella mia vita, e trovo gli APC veramente dei bei prodotti.
:)
Trovi interessanti i contenuti di forexometro? Considera la possibilità di iscriverti! :mrgreen: e poi di partecipare ...

Avatar utente
positiveday
Amministratore
Messaggi: 1905
Iscritto il: sab mag 28, 2016 9:23 pm

Re: Miglior processore per backtest con Metatrader

Messaggio da positiveday »

Tornando invece all'oggetto del thread.
Al secondo post consiglio un trucco abbastanza utile.
Anzichè effettuare l'ottimizzazione con un solo MT4, separarla invece su più MT4.
Equivale ad aumentare la velocità del processore di "n" volte, cioè di quanto si divide l'ottimizzazione per i vari MT4.
In questo momento sto usando 4 MT4 che cercano dei parametri che mi interessano.
Uno solo avrebbe impiegato del bel tempo, ma così è perlomeno diviso per 4.
:)

Peccato però che se poi si fa così e si va a vedere col Task Manager come girano i vari MT4 le cose non sono così semplici.
Cioè un solo MT4 si "mangerà" sempre un solo "core", diciamo il 13% del tempo macchina disponibile totale sul classico processore a 8 cores (100 / 8 = 12,5 ).
E questo non è aumentabile.
Poi però se lanciamo insieme più MT4 non è che si ottenga che ogni MT4 si "pappa" il 13% e via così.
Il tempo macchina usato da ogni singolo MT4 nel backtest diventa alterno e non più costante. Magari prende il 13% poi il 2%, salta qua e là.
Cercando su internet si trovano i soliti consigli da bar. Tipo imposta l'affinità del processore al singolo MT4 (serve a na mazza).
Considerando quindi che non è una questione di time sharing del sistema operativo non è che resti molto.
Resta l'accesso al disco.

Un file .fxt che si impiega nei BT è "roba" che va dai 6 ai 10 GigaByte, non sono noccioline.
Ogni MT4 vuole leggere parte del suo file e l'I/O del disco è invece sempre quello.
Cioè per un MT4 è quasi esclusivo quel canale del disco per il singolo MT4, ma quando ce ne sono 4 sono tutti lì a contendersi l'accesso al disco.
Ed è questo il collo di bottiglia.

Come risolverlo?
Con un RAM disk e dei link simbolici (questo dovrebbe bastare a chi lo può fare, ma mi dilungherò a tentare di spiegarlo ai più).

Nel PC che uso per i backtest ho 16Gb di RAM, il file .fxt è da poco più di 6Gb.
Ho creato un disco in RAM da 10 Gb, gli ho creato un directory "history", giusto per fare un po' di ordine e nella directory ho copiato il file .fxt del BT.
Quindi nelle varie directory dei 4 MT4, ho eliminato le directory "history" nella directory "tester" che dovrebbero contenere i file .fxt
Poi con questo tool ho creato un link, all'interno di ogni singola directory "tester", col nome "history" che "punta" alla directory sul ram disk.
Un link simbolico è una specie di "nodo" nel filesystem che collega due punti differenti (anche su drive diversi) del filesystem.
Per un programma che cerca su disco un file non ci sono differenze, lo vede come fosse proprio al posto giusto, in realtà è altrove.
In questo caso è in RAM ed il file è sempre lo stesso per i 4 MetaTrader.

Il trucco (hacking, nel più corretto senso del termine) è risolutivo, ecco qua uno screenshot :
BT_MT4.JPG
Come RAM disk consiglio quello della Gilisoft.
:)
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.
Trovi interessanti i contenuti di forexometro? Considera la possibilità di iscriverti! :mrgreen: e poi di partecipare ...

Avatar utente
achab
Messaggi: 1114
Iscritto il: mer giu 01, 2016 10:13 am

Re: Miglior processore per backtest con Metatrader

Messaggio da achab »

Interessante la parte del RAMDisk, strada anche da me tentata. Ma, tanto per fare 4 chiacchiere, se avessi una macchina da settare come la tua (RAMDisk, etc.) e ti fornissi un accesso remoto (RDP o TeamViewer), potresti settarla dietro lauto compenso?
May the green pips be with us. Always!
/achab

Alcuni dei miei conti? Clicca qui.

Avatar utente
positiveday
Amministratore
Messaggi: 1905
Iscritto il: sab mag 28, 2016 9:23 pm

Re: Miglior processore per backtest con Metatrader

Messaggio da positiveday »

Ah, certamente, hahaha.
:)
Trovi interessanti i contenuti di forexometro? Considera la possibilità di iscriverti! :mrgreen: e poi di partecipare ...

Avatar utente
achab
Messaggi: 1114
Iscritto il: mer giu 01, 2016 10:13 am

Re: Miglior processore per backtest con Metatrader

Messaggio da achab »

Ciao Carlo,
buongiorno. Ho un paio di domande su questo argomento.

Su che modello di motherboard gira la CPU overcloccata che usi per i BT?

Sono tentato dal creare una macchina dedicata per i BT da tempo, anche se al momento la cosa non si è ancora concretizzata. Lo spazio a disposizione è limitato, pertanto propenderei per una mobo MicroATX che riesca a fare un serio OC: hai qualche consiglio in merito?

Con il tuo hack della history su RAMdisk, di quanto hai velocizzato il processo del backtest (in %)?

Grazie anticipatamente per le risposte che vorrai dare.

Buona giornata.


Inviato dal mio iPhone utilizzando Tapatalk
May the green pips be with us. Always!
/achab

Alcuni dei miei conti? Clicca qui.

Avatar utente
positiveday
Amministratore
Messaggi: 1905
Iscritto il: sab mag 28, 2016 9:23 pm

Re: Miglior processore per backtest con Metatrader

Messaggio da positiveday »

achab ha scritto:Su che modello di motherboard gira la CPU overcloccata che usi per i BT?
La CPU è un i7 2600K che va a 4,3 GHz, la mainboard è un Asus P8P67 Deluxe ed il SO è W7 Pro 64 con 16Gb RAM DD3 a 1600 Mhz.
achab ha scritto:Sono tentato dal creare una macchina dedicata per i BT da tempo, anche se al momento la cosa non si è ancora concretizzata. Lo spazio a disposizione è limitato, pertanto propenderei per una mobo MicroATX che riesca a fare un serio OC: hai qualche consiglio in merito?
Non so, in formato micro in genere hanno prestazioni ... micro ... io ho messo il tutto in cantina.
achab ha scritto:Con il tuo hack della history su RAMdisk, di quanto hai velocizzato il processo del backtest (in %)?
Non esiste uno standard, solo la garanzia di poter splittare l'ottimizzazione in "n" subset avendo i vari MT4 che girano al massimo, e quindi di poter avere un tempo complessivo decisamente inferiore al singolo MT4 che esegue l'ottimizzazione completa.

:)
Trovi interessanti i contenuti di forexometro? Considera la possibilità di iscriverti! :mrgreen: e poi di partecipare ...

Rispondi