OK. E se l'Expert Advisor ha il gestore OnTick(), allora cosa, non funzionerà in modalità frame?
Imho, dovremmo chiarire qui che i gestori di frame sono eseguiti dal terminale stesso, mentre tutto ciò che è usuale per i test (OnTick(), OnTrade(), ecc.) è passato agli agenti di test. ), vengono passati agli agenti di test. Quindi, la modalità frame è una speciale modalità di test composita, dove gli agenti interagiscono con il terminale.
OK. E se l'Expert Advisor ha il gestore OnTick(), allora cosa, non funzionerà in modalità frame?
Imho, dovremmo chiarire qui che i gestori di frame sono eseguiti dal terminale stesso, mentre tutto ciò che è usuale per i test (OnTick(), OnTrade(), ecc.) è passato agli agenti di test. ), vengono passati agli agenti di test. Quindi, la modalità frame è una speciale modalità di test composita, dove gli agenti interagiscono con il terminale.
Funziona così.
E perché indirettamente? Per esempio, l'ottimizzazione normale può essere eseguita solo nel Tester.
Perché è un Expert Advisor da combattimento anche in modalità frame. Ecco perché abbiamo bisogno di controllare il flag di frame in OnChartEvent, altrimenti questo tipo di problema può accadere
sinputuint Range = 100;
#define SETRANGE(A, START, STEP, END) ParameterSetRange(#A, true, A, START, STEP, END)
voidOnTesterInit() { SETRANGE(Range, 0, 1, Range); }
voidOnTesterDeinit() {}
voidOnChartEvent(constint id,constlong& lparam,constdouble& dparam,conststring& sparam)
{
staticconstbool IsFrame = MQLInfoInteger(MQL_FRAME_MODE);
// if (!IsFrame) // без этой проверки Терминал (не только Агент) начнет выставлять ордера на реальном счете во время запуска ОптимизацииOrderSend(_Symbol, OP_BUY, 1, Ask, 100, 0, 0);
}
Questa sembra essere la prima volta che questo viene espresso. Il che significa che Market Products crea una brutta vulnerabilità... Ed è molto difficile aggirare questa vulnerabilità. Ed è molto difficile da rilevare.
Perché è un combattimento EA anche in modalità frame. Questo è il motivo per cui è necessario controllare il flag di frame in OnChartEvent, altrimenti questo tipo di problema può accadere
Questa sembra essere la prima volta che questo viene espresso. Il che significa che Market Products crea una brutta vulnerabilità... E questa vulnerabilità è molto difficile da aggirare. Rilevarlo è altrettanto difficile.
Tuttavia! Se è vero, allora, imho, è un funzionamento scorretto dell'EA in modalità Test...
OnInit, OnDeinit, costruttore/distruttore globale e OnChartEvent funzionano.
OnTimer, OnTick e OnBookEvent non funzionano.
Solo CHARTEVENT_CHART_CHANGE e gli eventi personalizzati vengono catturati.
Attraverso OnChartEvent+EventChartCustom EA è possibile creare "eventi" per OnTimer e OnTick, ma non OnBookEvent.
Pertanto, è possibile rendere qualsiasi Expert Advisor di trading a tutti gli effetti - farlo funzionare (OnTimer + OnTick) su qualsiasi tipo di grafico includendo l'indicatore appropriato(esempio).
fxsaber:
Discussione dell'articolo "Visualizzare l'ottimizzazione della strategia commerciale in MetaTrader 5".
fxsaber, 2018.02.22 08:39
In modalità frame, OnInit, OnDeinit, OnTick, OnTrade, OnTradeTransaction e OnTimer sono ignorati. Solo OnChartEvent funziona.
Naturalmente, a causa di OnChartEvent richiede un controllo obbligatorio per il flag della modalità di frame.
Da dove ha preso una fiducia così implicita? :-)
Come può essere così sicuro? :-)
Dalla pratica, ovviamente.
Una domanda allora. La modalità Frame è una modalità che si riferisce generalmente ai test o no?
Una domanda allora. La modalità Frame è una modalità che si applica generalmente ai test o no?
Indirettamente, lo è. È solo che in questa modalità l'Expert Advisor può essere avviato nel Terminale solo dal Tester.
OK. E se l'Expert Advisor ha il gestore OnTick(), allora cosa, non funzionerà in modalità frame?
Imho, dovremmo chiarire qui che i gestori di frame sono eseguiti dal terminale stesso, mentre tutto ciò che è usuale per i test (OnTick(), OnTrade(), ecc.) è passato agli agenti di test. ), vengono passati agli agenti di test. Quindi, la modalità frame è una speciale modalità di test composita, dove gli agenti interagiscono con il terminale.
Quindi va così...
Forum sul trading, sistemi di trading automatico e test di strategia
Caratteristiche del linguaggio mql5, sottigliezze e trucchi
fxsaber, 2018.02.22 09:22
Indirettamente, si applica. È solo che in questa modalità, l'EA può essere eseguito nel terminale solo dal Tester stesso.
E perché indirettamente? Per esempio, l'ottimizzazione normale può anche essere eseguita solo nel Tester.
OK. E se l'Expert Advisor ha il gestore OnTick(), allora cosa, non funzionerà in modalità frame?
Imho, dovremmo chiarire qui che i gestori di frame sono eseguiti dal terminale stesso, mentre tutto ciò che è usuale per i test (OnTick(), OnTrade(), ecc.) è passato agli agenti di test. ), vengono passati agli agenti di test. Quindi, la modalità frame è una speciale modalità di test composita, dove gli agenti interagiscono con il terminale.
Funziona così.
E perché indirettamente? Per esempio, l'ottimizzazione normale può essere eseguita solo nel Tester.
Perché è un Expert Advisor da combattimento anche in modalità frame. Ecco perché abbiamo bisogno di controllare il flag di frame in OnChartEvent, altrimenti questo tipo di problema può accadere
Questa sembra essere la prima volta che questo viene espresso. Il che significa che Market Products crea una brutta vulnerabilità... Ed è molto difficile aggirare questa vulnerabilità. Ed è molto difficile da rilevare.
Perché è un combattimento EA anche in modalità frame. Questo è il motivo per cui è necessario controllare il flag di frame in OnChartEvent, altrimenti questo tipo di problema può accadere
Questa sembra essere la prima volta che questo viene espresso. Il che significa che Market Products crea una brutta vulnerabilità... E questa vulnerabilità è molto difficile da aggirare. Rilevarlo è altrettanto difficile.
Tuttavia! Se è vero, allora, imho, è un funzionamento scorretto dell'EA in modalità Test...
Complimenti a te per averlo notato!
Forum sul trading, sistemi di trading automatico e test di strategie di trading
Bug, bug, domande
fxsaber, 2018.02.27 08:01
Conclusione sugli EA su OBJ_CHART
Pertanto, è possibile rendere qualsiasi Expert Advisor di trading a tutti gli effetti - farlo funzionare (OnTimer + OnTick) su qualsiasi tipo di grafico includendo l'indicatore appropriato(esempio).
Se OBJ_CHART è definito da CHART_IS_OBJECT.
Forum sul trading, sistemi di trading automatico e test di strategie di trading
Discussione su "Ottimizzazione gestita: il metodo di annealing"
fxsaber, 2018.02.28 08:45
Il file_tester viene letto solo se esisteva (il contenuto non ha importanza) al momento della compilazione.
Se mq5 viene compilato quando non c'era un file corrispondente, anche la sua ulteriore esistenza non sarà percepita in EX5.
Pertanto, se si genera un file per tester_file in OnTesterInit, assicuratevi di compilare l'Expert Advisor con almeno un file passato vuoto.
Se la direttiva tester_file è presente, le cache dell'ottimizzatore non funzionano.