Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 674
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
Non riesco a far stampare() qualcosa nel log del tester. Come si fa?
Ecco il codice di OnInit() dell'Expert Advisor:
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
SymbolSelect("EURJPY",true);
Print(__FUNCTION__,", ",TimeToString(TimeCurrent()));
SymbolSelect("USDJPY",true);
//---
return(INIT_SUCCEEDED);
}
Poi imposto un breakpoint (passo 1) ed eseguo il test sulla storia (passo 2):
e nel tester ottengo il risultato:
Vladimir Karputov:
Poi, imposto un breakpoint (passo 1) ed eseguo un test della storia (passo 2):
Ci sono delle restrizioni sul funzionamento di alcune funzioni nel tester di strategia del terminale client.
Funzioni Print() e PrintFormat()
Per aumentare le prestazioni durante l'ottimizzazione dei parametri EA, le funzioniPrint() ePrintFormat() non vengono eseguite. L'eccezione è l'uso di queste funzioni all'interno del gestoreOnInit(). Questo ci permette di facilitare la ricerca delle cause degli errori quando questi si verificano.
perché le funzioniPrint() all'interno del gestoreOnInit() non funzionano come al solito?
E in generale, altre funzioni definite dall'utente in init() in modalità di ottimizzazione?Stranamente, il mio pulsante blu, che indichi con "2", non è attivo. Potrebbe essere perché sono in MT4?
Sì, è per questo che posso testare liberamente qualsiasi EA sulla STORIA, cioè scegliere un timeframe, diciamo dal 2016.06.20 al 2016.11.11 e tranquillamente, passo dopo passo, fare il debug e osservare i cambiamenti nelle variabili, mentre tu non puoi farlo.
Quindi vale la pena continuare a sedersi su un vecchio terminale il cui supporto è terminato? O forse dovresti usare la moderna MetaTrader 5? In effetti, MetaTrader 5 ha già l'hedging:La piattaforma di trading MetaTrader 5 ha l'hedging.
Sì, è per questo che posso testare liberamente qualsiasi EA sulla STORIA, cioè scegliere un timeframe, diciamo dal 2016.06.20 al 2016.11.11 e tranquillamente, passo dopo passo, fare il debug e osservare i cambiamenti nelle variabili, mentre tu non puoi farlo.
Quindi vale la pena continuare a sedersi su un vecchio terminale il cui supporto è terminato? O forse dovresti usare la moderna MetaTrader 5? Dopo tutto, MetaTrader 5 ha già l'hedging:La piattaforma di trading MetaTrader 5 ha l'hedging.
Perché posso fare il debug in MT4, e con calma, passo dopo passo, fare il debug e vedere le variabili cambiare? Cosa sto facendo di sbagliato?
Domanda sostanziale:
perché la funzionePrint() all'interno del gestoreOnInit() non funziona come al solito? E in generale, che dire di altre funzioni personalizzate in init() in modalità di ottimizzazione?
Caro!!!!
Domanda sostanziale:
perché la funzionePrint() all'interno del gestoreOnInit() non funziona come al solito? E in generale, che dire di altre funzioni definite dall'utente in init() in modalità di ottimizzazione?
Tutto è spiegato sopra. Ha funzionato e funziona. Vi ho mostrato un esempio.
Forum sul trading, sistemi di trading automatico e test di strategia
Domande dai principianti
Vladimir Karputov, 2016.11.23 12:07
Ecco il codice di OnInit() di EA:
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
SymbolSelect("EURJPY",true);
Print(__FUNCTION__,", ",TimeToString(TimeCurrent()));
SymbolSelect("USDJPY",true);
//---
return(INIT_SUCCEEDED);
}
Metto inoltre un punto di interruzione (passo 1) e inizio il test sulla storia (passo 2):
E nel tester ottengo il risultato:
Quanto sopra è già stato spiegato. Ha funzionato e funziona. E vi ho fatto un esempio.
Lasciatemi ripetere:
1. Perché la funzionePrint() nel gestoreOnInit() non funziona come al solito?
2. Come funzionano le altre funzioni utente in init() in modalità di ottimizzazione?
Vladimir, nel tuo esempio con il breakpoint e l'inizio del test da MetaEditor, e non dal tester nel terminale non è standard.
Di nuovo:
1. Perché la funzionePrint() nel gestoreOnInit() non funziona come al solito?
2. Come funzionano le altre funzioni utente in init() in modalità di ottimizzazione?
Ho la sensazione che tu non abbia mai acceso il terminale.
Ecco il codice di OnInit() di Expert Advisor:
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
SymbolSelect("EURJPY",true);
Print(__FUNCTION__,", ",TimeToString(TimeCurrent()));
SymbolSelect("USDJPY",true);
//---
return(INIT_SUCCEEDED);
}
Passo dopo passo. Primo passo - avviare il tester dal terminale (un solo passaggio), testando sulla storia, con visualizzazione:
Nel tester di strategia, otteniamo i seguenti risultati: