Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1493

 

In aggiunta al commento precedente - se specifico:

EventSetTimer(3600); // 3600 secondi = 60 minuti

significa che il prossimo controllo del valore della variabile terminale avverrà tra 60 minuti.
Ma nel Tester con la visualizzazione i 60 minuti scorreranno in pochi secondi e l'Indicatore controllerà i valori dopo 60 minuti.
Oppure l'Expert Advisor nel Tester e l'Indicatore in una finestra separata dovrebbero essere in qualche modo "sincronizzati" nel tempo? - Cioè, se l'Expert Advisor invia un valore alla variabile terminale in pochi secondi, allora l'Indicatore chiamerà a controllare il valore della variabile terminale sempre in pochi secondi?
Qualcuno ha riscontrato qualcosa di simile, come si risolve?

 
grezky EventSetTimer(3600); // 3600 secondi = 60 minuti

significa che il prossimo controllo del valore della variabile terminale avverrà tra 60 minuti.
Ma nel Tester con la visualizzazione i 60 minuti scorreranno in pochi secondi e l'Indicatore controllerà i valori dopo 60 minuti.
Oppure l'Expert Advisor nel Tester e l'Indicatore in una finestra separata dovrebbero essere in qualche modo "sincronizzati" nel tempo? - Cioè, se l'Expert Advisor invia un valore alla variabile terminale in pochi secondi, allora l'Indicatore chiamerà a controllare il valore della variabile terminale sempre in pochi secondi?
Qualcuno ha riscontrato qualcosa di simile, come si risolve?

Il minuto del tester è modellato nel tester. Cosa vi impedisce di controllarlo? È semplice.

 
Artyom Trishkin #:

Il minuto del tester è modellato nel tester. Cosa vi impedisce di fare i test? È facile.

L'indicatore verrà eseguito in una finestra separata, come farà a sapere che è necessario controllare il valore della variabile terminale non dopo 3600 secondi, ma dopo qualche secondo, secondo il lavoro del tester?
 
grezky #:
L'indicatore verrà eseguito in una finestra separata, come farà a sapere di controllare il valore della variabile terminale non dopo 3600 secondi, ma dopo alcuni secondi, in base al lavoro del tester?

Domanda non chiara.

 
Artyom Trishkin #:

Non è una domanda chiara.

L'ho descritto 1-2 pagine fa.
Nel tester in modalità Visualizzazione verrà eseguito il simulatore di trading Expert Advisor (già realizzato) sulla price action di M5, operando manualmente.
Per l'analisi abbiamo bisogno anche del grafico H1 - verrà aperto in una finestra separata, e per non poter guardare nel futuro a destra della barra M5 corrente del tester nella finestra con H1 l'indicatore disegnerà un rettangolo nero. Il tempo di apertura dell'ultima barra M5 (cioè zero nel tester) sarà trasmesso all'indicatore attraverso la variabile terminale (le barre saranno nascoste da un rettangolo a destra di questo tempo).

Se invio un nuovo valore del tempo di apertura della barra H1 dal tester una volta all'ora, ci vorranno 1-2-3 secondi nel tester, ma l'indicatore controllerà il valore della variabile terminale ogni 3600 secondi.
Penso che probabilmente farò un controllo nell'indicatore non dopo 3600 secondi, ma dopo 2-3 secondi.

PS Metatrader è scollegato da Internet, i tick non arrivano all'indicatore.

- - -

Ho scritto un indicatore per i test, ma ottengo un errore (ho usato init, deinit, start, e non ho incontrato OnCalculate(), ecc.), qual è l'errore?
.

OnCalculate function declared with wrong type or/and parameters CHECK___TESTER_TermVariable.mq4 33      5
OnCalculate function not found in custom indicator              1       1
1 errors, 1 warnings            2       2


#property indicator_chart_window

datetime   MTF_Time_0            = 0;




void OnInit() {
//   EventSetTimer(3600);   // 3600 секунд = 60 минут
   EventSetTimer(3);        // 3 секунды - периодичность запуска функции OnTimer()
   return;
}



void OnDeinit(const int reason) {
   EventKillTimer();
}




void OnTimer() {
   if(GlobalVariableGet("_AA__MTF_Time_0")>MTF_Time_0 ) {
      MTF_Time_0                 = GlobalVariableGet("_AA__MTF_Time_0");
      GlobalVariableSet("_AA__MTF_Time_0", 0);
   } // if(GlobalVariableGet("_AA___Time_Control_Check")>=Time[0] ) {
} // void OnTimer() {




int OnCalculate(int Time_tmp) {
   if(MTF_Time_0>0) {
      ObjectDelete(       "VLINE_Name_1");
      FUNCTION_DRAW_VLINE("VLINE_Name_1", clrPink, 1, MTF_Time_0, true, TimeToStr(MTF_Time_0, TIME_DATE|TIME_MINUTES), 0);
   }
   Time_tmp                      = MTF_Time_0;

   return(Time_tmp);
} // void OnCalculate() {


 
grezky #:
L'ho descritto 1-2 pagine fa.
Nel tester in modalità Visualizzazione verrà eseguito il simulatore di trading Expert Advisor (già realizzato) sulla price action di M5, operando manualmente.
Per l'analisi abbiamo bisogno anche del grafico H1 - verrà aperto in una finestra separata, e per non poter guardare nel futuro a destra della barra M5 corrente del tester nella finestra con H1 l'indicatore disegnerà un rettangolo nero. Il tempo di apertura dell'ultima barra M5 (cioè zero nel tester) sarà trasmesso all'indicatore attraverso la variabile terminale (le barre saranno nascoste da un rettangolo a destra di questo tempo).

Se invio un nuovo valore del tempo di apertura della barra H1 dal tester una volta all'ora, ci vorranno 1-2-3 secondi nel tester, ma l'indicatore controllerà il valore della variabile terminale ogni 3600 secondi.
Penso che probabilmente farò un controllo nell'indicatore non dopo 3600 secondi, ma dopo 2-3 secondi.

PS Metatrader è scollegato da Internet, i tick non arrivano all'indicatore.

- - -

Ho scritto un indicatore per i test, ma ottengo un errore (ho usato init, deinit, start, e non ho incontrato OnCalculate(), ecc.), qual è l'errore?
.





Di nuovo, non capisco perché tutto questo con i quadrati neri e i diversi grafici sia così complicato, ma lo ripeto: il tempo nel tester è emulato. Un'ora di tempo del tester non è uguale a un'ora di tempo reale. È uguale a un'ora di tempo emulato del tester.

Chi impedisce all'Expert Advisor di coprire (per qualche motivo) il grafico con una tendina nera quando si apre una nuova barra oraria non è chiaro....

 
Artyom Trishkin #:
Chi impedisce all'EA di coprire (per qualche motivo) il grafico con una tendina nera quando si apre una nuova barra oraria non è chiaro....

Il grafico M5 è aperto nel tester, ma ho bisogno di H1 (almeno) per analizzare la situazione del mercato.
(i trade sono aperti su M5 nel tester, ma manualmente, anche l'analisi su H1 è fatta 'manualmente').
H1 sarà aperto in un'altra finestra, non nel tester, l'indicatore che chiude il lato destro sarà eseguito lì.
L'indicatore prenderà il tempo dal tester, ma controllerà il tempo reale, cioè attraverso l'ora reale, non attraverso quella del tester.

Si prega di verificare dove si trova l'errore nel codice fornito nel messaggio precedente.
Forse mi accontenterò di controllare dopo 3 secondi e poi il problema sarà risolto.
Codice PS per MT4.

 
grezky #:

Il grafico M5 è aperto nel tester, ma ho bisogno di H1 (almeno) per analizzare la situazione del mercato.
(i trade sono aperti su M5 nel tester, ma manualmente, anche l'analisi su H1 è fatta 'manualmente').
H1 sarà aperto in un'altra finestra, non nel tester, dove verrà eseguito un indicatore che chiude la parte destra.
L'indicatore prenderà il tempo dal tester, ma esso=indicatore controllerà il tempo reale, cioè attraverso l'ora reale, non attraverso quella del tester.

Si prega di verificare dove si trova l'errore nel codice fornito nel messaggio precedente.
Forse mi accontenterò di controllare dopo 3 secondi e poi il problema sarà risolto.
Codice PS per MT4.

Per domande su MT4, si prega di scrivere al thread appropriato. Qui - domande su MQL5 e sul terminale MetaTrader 5.

 
Artyom Trishkin #:

Ancora una volta non è chiaro lo scopo di tutta questa roba con quadrati neri e grafici diversi, ma ancora una volta ripeto: il tempo nel tester è emulato. Un'ora di tempo del tester non è uguale a un'ora di tempo reale. È uguale a un'ora di tempo emulato del tester.

Chi impedisce all'Expert Advisor di coprire (per qualche motivo) il grafico con una tendina nera quando si apre una nuova barra oraria non è chiaro....

L'emulazione del tempo di solito non è chiara a tutti.)))))

È sempre meglio essere più dettagliati, significa solo che il tester passerà in rassegna tutti gli eventi di un'ora in un secondo o più velocemente.)))))

 

Buon pomeriggio.

Potete dirmi come organizzare una nuova esecuzione dei parametri di ottimizzazione ricevuti, ma per un periodo di tempo diverso.

Ho ottimizzato per l'ultimo semestre i parametri di una coppia di valute, registrati in Excel. Ho preso il periodo dell'ultimo anno e voglio eseguire i parametri. Come faccio a reinserirli nel tester o nell'ottimizzatore?
Controllare cosa passerà, cosa non passerà, scriverlo in Excel. Forse così posso anche eseguire, ad esempio, il test per gli ultimi 2 anni.