Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Grazie per il vostro aiuto nei test! Aggiornato MTTester.mqh inviato.
Grazie mille per la libreria
Questo Expert Advisor preme il pulsante Start ogni tre secondi, se non è Stop. Sono riuscito a premerlo - vero, altrimenti - falso.
Situazione standard.
Premuto Start - il calcolo è iniziato.
Questa azione richiede ~125 ms.
Non è raro.
Premere Avvia: viene avviato il calcolo istantaneo oppure il Tester segnala che non è possibile eseguire il calcolo (ad esempio, FromDate >= ToDate).
Questa azione richiede circa un secondo. La libreria emette un allarme, ma restituisce il valore vero: il pulsante è stato premuto.
Situazione rara.
L'avvio non è stato premuto. Questo problema può essere risolto solo riavviando il terminale.
Non ho registri di questa situazione. Ci vorranno <10 secondi per identificare una situazione del genere. Verrà visualizzato un avviso come questo.
Restituisce false - il pulsante non è stato premuto.
È una situazione rara.
L'avvio non è stato premuto. Questo problema può essere risolto solo riavviando il terminale.
Un computer WinServer remoto effettuava continuamente centinaia di passaggi singoli senza alcun errore.
Non appena ho effettuato l'accesso (RDP) a questa macchina, il pulsante di avvio ha smesso di fare clic. Il rimedio, come sempre, è riavviare il terminale.
Sembra che questo comportamento abbia a che fare con accessi simili alla macchina. È possibile accedere tramite RDP decine di volte e tutto funziona bene. Ma alcuni accessi diventano fatali per il Tester.
Chi si imbatte nel bug dell'avvio, faccia attenzione alla relazione tra l'accesso alla macchina e il pulsante di avvio.
Coincidenza o no, WinServer si è offerto di controllare gli aggiornamenti durante l'accesso alla macchina.
Buona libreria.
È possibile specificare quale file *.set con le impostazioni dei parametri passare programmaticamente per il test?
Per impostazione predefinita vengono utilizzate solo le stesse impostazioni, il che non è molto comodo.
È possibile specificare quale file *.set con le impostazioni dei parametri passare programmaticamente per il test?
Esempio.
Grazie.
È meglio passare le impostazioni in una singola riga con le righe separate dal carattere \n.
o un array di righe come nell'esempio?
Ed è possibile modificare in
metodo statico Run della classe MTTester
bool statico Run( const string ExpertName = NULL,
const string Symb = NULL,
const ENUM_TIMEFRAMES period = PERIOD_CURRENT,
const datetime iBeginTime = 0,
const datetime iEndTime = 0 )
aggiungere una stringa di parametri (o un array di stringhe) che specifichi le impostazioni di *.set EA?
Grazie.
È meglio passare le impostazioni in una singola riga con le righe separate dal carattere \n?
o un array di righe come nell'esempio?
GetSettings è CTRL+C in Tester.
SetSettings è CTRL+V in Tester.
Vedere con quali dati funziona CTRL+C/V.
E se è possibile modificare in
metodo statico della classe MTTester Esegui
Non uso questo metodo. Rimane come storia.
L'esempio mostra tutti i metodi MTTESTER necessari.
È possibile specificare quale file *.set con le impostazioni dei parametri passare programmaticamente per il test?
Validate funziona con i file ini completi del Tester e con una versione ridotta - i file set per il Tester.
Se è necessario eseguire molti file ini/set, Validate lo fa subito. Utilizzo.
Validate funziona con i file ini di Tester completi e con una versione ridotta - set-files for Tester.
Se avete bisogno di eseguire molti file ini/set, Validate lo fa subito. Utilizzo.
Grazie.
Ho trovato una soluzione in questo commento in cui il file set viene caricato nel formato richiesto come array di stringhe.
https://www.mql5.com/ru/forum/318305/page34#comment_51842356
Ho anche sostituito
typedef bool (*INITDEINIT)( void );
puntatore delle chiamate di callback all'inizializzazione e alla deinizializzazione di ogni esecuzione
all'interfaccia
interfaccia InitDeInit {
bool RunInit();
bool RunDeInit();
};
che è implementata nell'erede
di una classe simile alla struttura IMPOSTAZIONI
e quindi nel metodo RunInit().
Carico il file di impostazione dello strumento richiesto.
typedef bool (*INITDEINIT)( void ); - questo puntatore non consente di sapere quale strumento si sta inizializzando/deinizializzando, quindi è meglio utilizzare un puntatore all'interfaccia, poiché i puntatori ai metodi non sono ancora supportati da MQL.
Con questo approccio non è necessario modificare il metodo MTTester::Run.