Bisogno di aiuto da sviluppatori e programmatori MT4

 

Salve.

Le nuove build del terminale MT4 non de-inizializzano e reinizializzano gli EA quando l'utente cambia i valori dei parametri di input. Questo porta a una fondamentale incompatibilità degli EA esistenti con le nuove build di MT4. L'incompatibilità si verifica negli EA più ottimizzati dove tutti i singoli calcoli sono collocati nel blocco init().

Si arriva addirittura al ridicolo: per garantire la sostituzione del valore di qualche parametro di input, l'utente deve togliere l'Expert Advisor dal grafico e rimetterlo. (Non ho provato a caricare parametri da un file SET con un pulsante, ma sospetto che sia equivalente a sostituire manualmente i valori dei parametri).

Chiedo vivamente agli sviluppatori di MT4 di riportare la chiamata delle funzioni deinit(), init() al buon senso.

Sinceramente.

PS Se qualcuno è a conoscenza del meccanismo di determinazione programmatica del momento e del fatto di cambiare i valori dei parametri di input da parte dell'utente, lo scriva qui.

 
almeno mostrare il fucile come prova.
 

Versione: 4.00 Build 670

(4 luglio 2014)

 
Wex:


Le nuove versioni del terminale MT4 non de-inizializzano e reinizializzano gli EA quando l'utente cambia i valori dei parametri di input. Questo porta all'incompatibilità principale degli EA esistenti con le nuove build di MT4. Gli Expert Advisor più ottimizzati, dove tutti i singoli calcoli sono collocati nel blocco init(), sono soggetti a incompatibilità.

Io li ho. Costruire 670. Controlla con le stampanti semplici.
 
Wex:

Salve.

Le nuove build del terminale MT4 non de-inizializzano e reinizializzano gli EA quando l'utente cambia i valori dei parametri di input. Questo porta a una fondamentale incompatibilità degli EA esistenti con le nuove build di MT4. L'incompatibilità si verifica negli EA più ottimizzati dove tutti i singoli calcoli sono collocati nel blocco init().

Si arriva addirittura al ridicolo: per garantire la sostituzione del valore di qualche parametro di input, l'utente deve togliere l'Expert Advisor dal grafico e rimetterlo. (Non ho provato a caricare parametri da un file SET con un pulsante, ma sospetto che sia equivalente a sostituire manualmente i valori dei parametri).

Chiedo vivamente agli sviluppatori di MT4 di riportare la chiamata delle funzioni deinit(), init() al buon senso.

Sinceramente.

PS Se qualcuno è a conoscenza del meccanismo di determinazione programmatica del momento e del fatto di cambiare i valori dei parametri di input da parte dell'utente, lo scriva qui.

Questa è una manovra dei market maker :-7 per sgonfiare gli EA affermati
 
IvanIvanov:
Questa è una manovra dei market maker :-7 per sgonfiare i consulenti stabiliti
+
 
Non è possibile riscrivere l'EA?
 

PS. (Non mi sembra di essere uno scioglilingua sul forum). EA allegato. Provate a cambiare il valore del parametro A1 o A2 al volo. Il tempo "passa" e l'EA non "vede" i nuovi valori dei parametri. Tuttavia, è possibile farlo inizializzare premendo due volte il pulsante "AutoTrading". Naturalmente, questo è più veloce che togliere l'EA dal grafico e reinstallarlo. Tuttavia, è in qualche modo illogico. Tuttavia, sta a voi decidere.

Naturalmente, è molto più facile per me fare dei cambiamenti nel mio Expert Advisor che aspettare in riva al mare. Pertanto, farò ancora una volta una semplice domanda. Qualcuno sa come ottenere informazioni su un utente che ha cambiato il valore di un parametro di input al volo? Intendo il fatto che il valore è cambiato e il punto nel tempo.

Davvero le nuove build del terminale MT4 sono molto meglio di quelle più vecchie. Il valore del parametro viene cambiato in questo caso quando viene eseguita la funzione Sleep(). Questo è davvero un progresso. Le vecchie build non permettevano affatto di cambiare i valori, o meglio non permettevano nemmeno all'utente di ottenere la finestra con i parametri di input. Ho detto ai clienti che dovrebbero prima disabilitare gli EAs usando il pulsante sul pannello del terminale, cambiare i loro parametri e poi abilitare nuovamente gli EAs. Ma ora l'utente non ha ostacoli, ha l'illusione che i parametri di input siano stati cambiati. Inoltre, il nuovo esempio mostra che non solo le copie ottenute nel blocco init(), ma anche i parametri di input originali non vengono cambiati nell'Expert Advisor, ma vengono cambiati nella finestra delle proprietà nella scheda Inputs. La discrepanza è evidente.

File:
PROBLEM.mq4  2 kb
 
Wex:

PS. (Non mi sembra di essere uno scioglilingua sul forum. EA allegato. Provate a cambiare il valore del parametro A1 o A2 al volo. Il tempo "passa" e l'EA non "vede" i nuovi valori dei parametri. Tuttavia, è possibile farlo inizializzare premendo due volte il pulsante "AutoTrading". Naturalmente, questo è più veloce che togliere l'EA dal grafico e reinstallarlo. Tuttavia, è in qualche modo illogico. Tuttavia, sta a voi decidere.

Naturalmente, è molto più facile per me fare dei cambiamenti nel mio Expert Advisor che aspettare in riva al mare. Pertanto, farò ancora una volta una semplice domanda. Qualcuno sa come ottenere informazioni su un utente che ha cambiato il valore di un parametro di input al volo? Intendo il fatto di cambiare il valore e il punto nel tempo.

Davvero, le nuove build del terminale MT4 sono molto meglio di quelle più vecchie. Il valore del parametro viene sostituito in questo caso quando viene eseguita la funzione Sleep(). Questo è un progresso, naturalmente. Le vecchie build non permettevano affatto di cambiare i valori, o meglio non permettevano nemmeno all'utente di ottenere la finestra con i parametri di input. Ho detto ai clienti che dovrebbero prima disabilitare gli EAs usando il pulsante sul pannello del terminale, cambiare i loro parametri e poi abilitare nuovamente gli EAs. Ma ora l'utente non ha ostacoli, ha l'illusione che i parametri di input siano stati cambiati. Inoltre, il nuovo esempio mostra che non solo le copie ottenute nel blocco init(), ma anche i parametri di input originali non vengono cambiati nell'Expert Advisor, ma vengono cambiati nella finestra delle proprietà nella scheda Inputs. La discrepanza è evidente.

E avete provato a usare motivi di deinizializzazione?

UninitializeReason()
REASON_PARAMETERS

Forse stavo leggendo in diagonale... Ma io uso ...

 
Wex:

PS. (Non mi sembra di essere uno scioglilingua sul forum. EA allegato. Provate a cambiare il valore del parametro A1 o A2 al volo. Il tempo "passa" e l'EA non "vede" i nuovi valori dei parametri. Tuttavia, è possibile farlo inizializzare premendo due volte il pulsante "AutoTrading". Naturalmente, questo è più veloce che togliere l'EA dal grafico e reinstallarlo. Tuttavia, è in qualche modo illogico. Tuttavia, sta a voi decidere.

Naturalmente, è molto più facile per me fare dei cambiamenti nel mio Expert Advisor che aspettare in riva al mare. Pertanto, farò ancora una volta una semplice domanda. Qualcuno sa come ottenere informazioni su un utente che ha cambiato il valore di un parametro di input al volo? Intendo il fatto che il valore è cambiato e il punto nel tempo.

Davvero le nuove build del terminale MT4 sono molto meglio di quelle più vecchie. Il valore del parametro viene cambiato in questo caso quando viene eseguita la funzione Sleep(). Questo è davvero un progresso. Le vecchie build non permettevano affatto di cambiare i valori, o meglio non permettevano nemmeno all'utente di ottenere la finestra con i parametri di input. Ho detto ai clienti che dovrebbero prima disabilitare gli EAs usando il pulsante sul pannello del terminale, cambiare i loro parametri e poi abilitare nuovamente gli EAs. Ma ora l'utente non ha ostacoli, ha l'illusione che i parametri di input siano stati cambiati. Inoltre, il nuovo esempio mostra che non solo le copie ottenute nel blocco init(), ma anche i parametri di input originali non vengono cambiati nell'Expert Advisor, ma vengono cambiati nella finestra delle proprietà nella scheda Inputs. La discrepanza è evidente.

Lo stesso codice, ma senza il ciclo dentro start() funziona bene. Questo deve essere il problema.
File:
PROBLEM.mq4  2 kb
 
Wex:

PS. (Non mi sembra di essere uno scioglilingua sul forum.


Molto.

1. Il linguaggio MQL4 è dedicato a un forum speciale. Non questo.

2. Non avete letto la documentazione di MQL4, né vecchia né nuova