Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 625

 
Igor Makanu:

sperimentare con tale codice, leggere il messaggio nel log di Expert Advisor (cambiare il TF, inserire la variabile, ricaricare il terminale senza chiudere Expert Advisor...)

e la seconda variante è quella di descrivere in ambito globale una variabile con modificatore statico

In primo luogo, questo è mql4.

In secondo luogo, ho bisogno di eseguire OnInit() ad ogni cambiamento di variabili di Expert Advisor.

Non chiedo altro che aiuto!

Sì, riavviare il terminale e cambiare il testo aiuta, ma quando si cambiano le variabili, OnInit() non funziona ed è per questo che ho tutti i problemi!!!!

 
Игорь:

In primo luogo, è mql4. In secondo luogo, ho bisogno di eseguire OnInit() per cambiare le variabili dell'EA.

In secondo luogo, ho bisogno che esegua OnInit() quando le variabili di Expert Advisor vengono cambiate.

Non chiedo altro che aiuto!

Riavviare il terminale e cambiare il testo aiuta, ma quando si cambiano le variabili, OnInit() non funziona ed è per questo che ho tutti i problemi!!!!

Ho la seguente soluzione. OnInit() copia le variabili alla prima esecuzione dell'EA. Su Calc...() o qualsiasi altra cosa in MT4, controlla se le variabili sono identiche alle loro copie. Se le variabili non coincidono, allora eseguiamo forzatamente OnInit() e, se necessario, eseguiamo qualcos'altro prima per aggiornare l'EA. E infine, il ritorno.

 
Игорь:

In primo luogo, è mql4. In secondo luogo, ho bisogno di eseguire OnInit() per cambiare le variabili dell'EA.

In secondo luogo, ho bisogno che esegua OnInit() quando le variabili di Expert Advisor vengono cambiate.

Non chiedo altro che aiuto!

Sì, riavviare il terminale e cambiare le sicurezze aiuta, ma quando si cambiano le variabili, OnInit() non funziona ed è per questo che ho tutti i problemi!!!!

Hai guardato il codice che ti ho dato? Era MT4 e tutto funziona come hai chiesto

leggere la documentazionehttps://docs.mql4.com/ru/runtime/event_fire

Ho eseguito il codice che ho suggerito, cambiato la variabile esterna var due volte, ecco il log di Expert Advisor:

0       15:36:39.736    Compiling 'test'
0       15:37:37.573    Expert test EURUSD,H1: loaded successfully
0       15:37:39.101    test EURUSD,H1 inputs: var1=1; 
0       15:37:39.130    test EURUSD,H1: Вызов OnInit(), var1=1
0       15:37:39.130    test EURUSD,H1: initialized
0       15:37:51.341    test EURUSD,H1: uninit reason 5
0       15:37:51.343    test EURUSD,H1: Вызов OnInit(), var1=34567
0       15:37:51.343    test EURUSD,H1: initialized
0       15:37:51.366    test EURUSD,H1 inputs: var1=34567; 
0       15:38:04.124    test EURUSD,H1: uninit reason 5
0       15:38:04.126    test EURUSD,H1: Вызов OnInit(), var1=-9999
0       15:38:04.126    test EURUSD,H1: initialized
0       15:38:04.149    test EURUSD,H1 inputs: var1=-9999; 

Ecco il codice dove sono i "bug".

È possibile chiamare qualsiasi funzione da qualsiasi punto di un programma MQL. Anche la funzione di inizializzazione di un Expert Advisor è una funzione.

События клиентского терминала - Программы MQL4 - Справочник MQL4
События клиентского терминала - Программы MQL4 - Справочник MQL4
  • docs.mql4.com
Сразу же после того, как клиентский терминал загрузит программу (эксперт или пользовательский индикатор) и запустит процесс инициализации глобальных переменных, будет послано событие Init, которое обрабатывается функцией OnInit(), если она есть. Это событие также генерируется после смены финансового инструмента и/или периода графика, после...
 
Igor Makanu:

ci sono molti errori nel codice, in

è meglio normalizzare i prezzi, allora funzioneranno, poi il server darà un errore di "prezzi sbagliati", è auspicabile normalizzareStopLoss_SELL

e molto probabilmente, è necessario controllare se lo StopLoss è uguale a zero, e non è auspicabile confrontare i numeri reali per essere uguali, si dovrebbe cercare di confrontare i numeri reali a > o <

Se ci sono molti errori, ti dispiacerebbe indicarli tutti?

 
Igor Makanu:

Hai guardato il codice che ti ho dato? Era MT4 e tutto funziona come chiedi

poi leggere la documentazionehttps://docs.mql4.com/ru/runtime/event_fire

Ho eseguito il codice che ho suggerito, ho cambiato la variabile esterna var due volte, ecco il log di Expert Advisor:

Ecco il codice dove sono i "bug".

È possibile chiamare qualsiasi funzione da qualsiasi punto del programma MQL, anche la funzione di inizializzazione di un Expert Advisor è una funzione. È possibile chiamare forzatamente OnInit(), ma di solito non è necessario - il terminale chiamaOnInit() da solo.

Grazie mille grazie al vostro codice di errori ho trovato !!!!!!!!! BUONA FORMAZIONE !!!! E GRAZIE PER L'AIUTO !!!!!!

 
Si prega di avvisare. Come posso fare in modo che l'indicatore MA standard sia visualizzato non per l'intera storia, ma per un determinato numero di candele? Vorrei farvi una domanda.
 
prom18:
Si prega di avvisare. Come posso fare in modo che l'indicatore MA standard sia visualizzato non per l'intera storia, ma per un determinato numero di candele? Grazie.
Scrivi il tuo indicatore MA con l'impostazione della profondità della storia!
 

Come posso impostare manualmente le quotazioni pertestare un EA?

Ci deve essere una soluzione, ma non l'ho trovata

 
Galim_V:

Cosa c'è di sbagliato in F12 dopo una pausa?

Intendevo specificamente per impostare il movimento del prezzo

 
Andrey Sokolov:

Come posso impostare manualmente le quotazioni pertestare un EA?

Sicuramente c'è una soluzione, ma non l'ho trovata

Scrivete i vostri zecchini e metteteli nel tester di strategia.

Motivazione: