Piani di sviluppo per il MetaTrader 5 Strategy Tester

 

Non lasciatevi intimidire dallo stato di mezza tacca del tester nelle beta. Abbiamo volutamente lanciato tutte le versioni intermedie in beta per ottenere i risultati più velocemente.


Come stiamo riformando il tester di strategia:

  1. Per facilitare la comprensione ai neofiti, stiamo introducendo un nuovo look della pagina iniziale del tester, dove si possono vedere le opzioni di ricerca:




  2. Grande enfasi è posta sulla memorizzazione di tutti i risultati dei test precedenti, dove una facile ricerca vi permetterà di tornare indietro per visualizzare i test precedenti

    Una casella di ricerca rende facile trovare risultati passati oltre al download diretto da un file.

  3. Tra i test precedenti sarà possibile fare dei confronti






  4. È probabile che aggiungeremo nuove opzioni di ottimizzazione

  5. Espanderemo drasticamente le impostazioni dettagliate di test con commissioni, condizioni di attivazione degli ordini, slippage, ecc.

    Per ora, nelle versioni beta abbiamo abilitato la modalità di test in pip che riduce notevolmente la quantità di modellazione e accelera i test.

    Il set completo di impostazioni sarà introdotto un po' più tardi.

  6. Riscriveremo i meccanismi di preparazione dei dati di origine per ridurre i costi di sincronizzazione degli agenti

    L'accelerazione sarà particolarmente evidente sugli agenti locali, dove non dovremo pompare grandi quantità di dati e non avremo più copie di dati storici.

  7. Nuovo motore di visualizzazione 3D e visualizzazione dei risultati dei test in finestre complete

  8. Riforma della rete di cluster, con un controllo più dettagliato sulle condizioni di ogni esperto, in modo da poter selezionare individualmente un gruppo di agenti

    L'obiettivo è quello di accelerare i compiti il più possibile, in modo che non ci siano ritardi dovuti ad agenti inadatti o lenti.


Inoltre, il linguaggio MQL5 stesso è in fase di sviluppo attivo, abbiamo incluso scope, supporto esteso di template, lavoro con classi create implicitamente e così via.

Molto probabilmente includerà presto nuove funzionalità:

  • Database SQLite
  • Estensione della libreria grafica, incluso il 3D


Più tardi passeremo al compito rivoluzionario di includere moduli nel linguaggio.

Queste sono librerie C++ ricompilate in formato EX5 e disponibili per l'uso diretto dal codice MQL5. Cioè, inizieremo a lavorare sulla ricompilazione delle librerie opsorced, quando le loro chiamate a basso livello/pericolose saranno completamente mappate sul nostro runtime sicuro e i wrapper sicuri saranno fatti per il codice MQL5.

In questo modo abbiamo intenzione di aumentare la funzionalità del linguaggio senza compromettere la sicurezza. Gli assemblaggi dei moduli sono disponibili solo per noi, il che fornisce un certo livello di sicurezza per le soluzioni risultanti.

Questo meccanismo funziona già.

Per esempio, alcune delle funzionalità dell'ambiente MQL5 sono state a lungo costruite nativamente proprio nel codice EX5 durante la compilazione, il che fornisce un'ottima ottimizzazione a livello di compilazione.

 

Renat Fatkhullin:

Espanderemo drasticamente le impostazioni dettagliate dei test con commissioni, condizioni di attivazione degli ordini, slippage, ecc.

Questa aggiunta sarebbe una delle prime ad essere vista.

 

Confrontare le corse è una grande cosa.

C'è anche questa necessità dei giorni barbuti che le soluzioni di terzi sono diventate popolari: combinare più corse in una sola.

Cioè, diversi TC sono gestiti "simultaneamente", ma la loro storia complessiva e il loro patrimonio sono costruiti.

 

Forum sul trading, sistemi di trading automatico e test di strategia

Biblioteche: MultiTester

fxsaber, 2019.07.22 01:54

Un tester diventa una trebbiatrice molto forte quando è dotato della capacità di automatizzare.

Se gli sviluppatori includono in MQL le funzioni di gestione dei Tester interni(impostare data/simbolo/modalità, eseguire la migliore esecuzione singola, salvare il rapporto, ecc. ), diventerà cento volte più forte di tutti i potenziali concorrenti. E passerà dall'essere un giocattolo serio a uno strumento di ricerca senza precedenti, poiché diventerà una vera e propria trebbiatrice di computer.

Ma dubito che lo farà. Se qualcuno può aiutare ad automatizzare l'evidenziazione, sarebbe fantastico.


TesterSetInfo, TesterGetInfo.

 
fxsaber:

C'è anche una necessità dai tempi della barba che le soluzioni di terzi sono diventate popolari: combinare diversi passaggi in uno.

Cioè, diversi TC sono gestiti "simultaneamente", ma la loro storia complessiva e il loro patrimonio sono costruiti.

Sostenere un collega. Devo implementarlo sul lato, ma d'altra parte, come organizzarlo nel tester? Hm, aggiungere qualche attributo a tale passaggio come "Portfolio #". - forse come questo?

 
Aleksey Vyazmikin:

Sostenere un collega. Devo implementare questo sul lato, ma d'altra parte, come si organizza questo nel tester? Hmm, aggiungere un qualche tipo di attributo a tale passaggio come "Portfolio #". - forse come questo?

Assegnare manualmente gli agenti ad ogni programma in fase di test allo stesso tempo.
Per esempio, abbiamo 8 agenti, e 4 di loro sono assegnati a un esperto e 4 a un altro. Di conseguenza, solo due programmi mql possono essere testati simultaneamente.
Oppure ad ogni esperto saranno assegnati 2 agenti, e poi gli stessi 8 agenti staranno già testando 4 programmi ecc.

Oppure, assegnare automaticamente gli agenti, come una gara, il primo che prende l'agente, il primo che prende l'agente.
Un agente ha completato un compito, aspetta di nuovo che venga preso dalla coda dei compiti, ecc.
Così, il numero di programmi testati simultaneamente aumenta.

Ogni programma che viene testato allo stesso tempo, alloca automaticamente il proprio ambiente virtuale di tester.
E ogni test viene eseguito da solo allo stesso tempo, dopo il completamento di tutti i passaggi, i risultati di ogni programma vengono riassunti e vengono calcolati i valori medi.
Vengono visualizzate le statistiche generali.

 
Roman:

Assegniamo manualmente gli agenti ad ogni programma che viene testato allo stesso tempo.
Per esempio, abbiamo 8 agenti e 4 sono assegnati a un Expert Advisor e 4 a un altro. Come risultato, solo due programmi mql possono essere testati simultaneamente.
Oppure, assegnare automaticamente gli agenti, come una gara, così chi ottiene l'agente per primo, ottiene lo stesso.
L'agente ha completato un compito e sta aspettando di essere ripreso dalla coda dei compiti, ecc.
Così, il numero di programmi testati simultaneamente aumenta.

Ogni programma da testare allo stesso tempo, assegna automaticamente il proprio ambiente virtuale di tester.
E ogni test viene eseguito da solo allo stesso tempo, dopo il completamento di tutti i passaggi, il risultato di ogni programma viene riassunto e vengono visualizzate le statistiche generali.

La mia variante è più semplice e più funzionale, ti permette di testare tutti gli EA e le loro impostazioni di cui hai bisogno, senza alcun problema inutile. La tua variante richiede un manager per distribuire i compiti... È necessario aggiungere un gestore di test di portafoglio che è formato da un utente e dove l'Expert Advisor e il set / impostazioni di esso sono indicati, così come l'ID del portafoglio - in modo che si possa poi confrontare diversi portafogli, allora sarà universale e funzionale.

 
Aleksey Vyazmikin:

La mia variante è più semplice e più funzionale, ti permette di testare tutti gli EA e le loro impostazioni che vuoi senza alcun problema inutile. La tua variante richiede un manager per distribuire i compiti... Abbiamo bisogno di aggiungere un gestore per il test del portafoglio, che è formato da un utente e dove sono indicati l'Expert Advisor e il set / impostazioni per esso, così come l'ID del portafoglio - per essere in grado di confrontare diversi portafogli, allora sarà universale e funzionale.

Quindi, abbiamo due approcci.
Oppure testare ogni programma in modo sequenziale, e poi generare i risultati per numero di portafoglio, per statistiche generali.
Oppure testate ogni programma simultaneamente in modalità multi-threaded, e visualizzate immediatamente le statistiche generali per questi set.
L'unica differenza è nell'azione delle impostazioni iniziali, o nella generazione manuale delle statistiche generali dopo il test.
E possibilmente nella velocità generale di esecuzione dei test.

p.s. MetaCitazioni - a volte i sogni si avverano.

 

Renat, per favore aggiungi un'altra opzione, MQ Old, alla scelta dello stile ME. Quello che c'era prima. È una piccola cosa per voi, ma per molti utenti risparmierà un sacco di nervi.

Non voglio abituarmi a un nuovo stile... Sono abbastanza contento di quello vecchio.

Grazie.

 

Cos'è uno stress test?

(cioè quali funzionalità sono coinvolte)

 

Grande notizia!

Questo incoraggerà il passaggio alla MT5.

Dopo tutto, tutti riscriveranno programmi per mt5 per testarli lì...

Motivazione: