Bisogno di aiuto da sviluppatori e programmatori MT4 - pagina 2

 
stringo:

Molto simile.

1. Il linguaggio MQL4 ha un forum dedicato. Non questo.

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

Invece di dare un link a qualcosa di utile, butti solo merda su tutto l'uomo.

L'illogicità è evidente. L'utente può (al contrario delle build precedenti) cambiare i parametri di input, e i nuovi valori sono visibili nella scheda Inputs, ma non cambiano effettivamente. L'Expert Advisor ha un controllo completo della situazione, ma il sistema non dà i valori aggiornati dei parametri, e l'utente ha l'illusione di aver cambiato i parametri di input.

artmedia70, grazie. Farò un tentativo. Ma sono abbastanza sicuro che non servirà. La deinizializzazione non avviene. È possibile analizzare le ragioni della deinizializzazione che non è avvenuta? (Nessuna registrazione nel registro).

Certamente non mi ero illuso che qualcuno mi avrebbe aiutato qui. Ma francamente non mi aspettavo che gli sviluppatori chiudessero un occhio su una cosa abbastanza ovvia. Naturalmente, come farebbe uno sviluppatore ad ammettere che si tratta di un bug del software? È più facile incolpare l'utente per aver orchestrato qualche ciclo "non politicamente corretto". Direbbero anche che ho indentato male il testo e non ho messo commenti. Questo ciclo funziona perfettamente, ed è semplicemente insostituibile in quegli schemi che alcuni clienti ordinano per me. Ma l'inizializzazione di nuovi valori dei parametri di input, che sono stati prontamente cambiati dall'utente, non funziona. E, chiamando una persona "spazzatura" e "analfabeta" (presumibilmente non leggendo la documentazione), non confutate il fatto che l'inizializzazione [dei parametri con nuovi valori] non funziona.

(E poi di nuovo, forse sto confondendo la causa con l'effetto? I "ganci" dovrebbero essere sempre presenti senza essere notati, per facilitare la vita agli utenti).

 

Scusate se scrivo in inglese, ma penso che capirete.

State usando un ciclo infinito, quindi ovviamente init/deinit non vengono chiamati. Un EA è single thread, quindi anche se gli eventi init/deinit sono messi nella coda di elaborazione, non si lascia un'occasione per eseguirlo.

 
Wex:

Invece di dare un link a qualcosa di utile, si butta merda su tutta la persona.

L'illogicità è evidente. L'utente ha la possibilità (a differenza delle build precedenti) di cambiare i parametri di input, e i nuovi valori sono visibili nella scheda Inputs, ma non cambiano effettivamente. L'Expert Advisor ha il pieno controllo della situazione, ma il sistema non gli dà i valori aggiornati dei parametri, e l'utente ha l'illusione di aver cambiato i parametri di input.

artmedia70, grazie. Farò un tentativo. Ma sono abbastanza sicuro che non servirà. La deinizializzazione non avviene. È possibile analizzare le ragioni della deinizializzazione che non è avvenuta? (Nessuna registrazione nel registro).

Certamente non mi ero illuso che qualcuno mi avrebbe aiutato qui. Ma francamente non mi aspettavo che gli sviluppatori chiudessero un occhio su una cosa abbastanza ovvia. Naturalmente, come farebbe uno sviluppatore ad ammettere che si tratta di un bug del software? È più facile incolpare l'utente per aver orchestrato qualche ciclo "non politicamente corretto". Direbbero anche che ho indentato male il testo e non ho messo commenti. Questo ciclo funziona perfettamente, ed è semplicemente insostituibile in quegli schemi che alcuni clienti ordinano per me. Ma l'inizializzazione di nuovi valori dei parametri di input, che sono stati prontamente cambiati dall'utente, non funziona. E, chiamando una persona "spazzatura" e "analfabeta" (presumibilmente non leggendo la documentazione), non confutate il fatto che l'inizializzazione [dei parametri con nuovi valori] non funziona.

(E poi di nuovo, forse sto confondendo la causa con l'effetto? I "ganci" dovrebbero essere sempre presenti senza essere notati, per facilitare la vita agli utenti).

Prova ;)
 
angevoyageur:

Scusate se scrivo in inglese, ma penso che capirete.

State usando un ciclo infinito, quindi ovviamente init/deinit non vengono chiamati. Un EA è single thread, quindi anche se gli eventi init/deinit sono messi nella coda di elaborazione, non si lascia un'occasione per eseguirlo.

Beh, può essere.

 
Wex:

Bene, se l'Expert Advisor è in loop e davvero non chiama la deinizializzazione dal loop, allora prova a interrogare i cambiamenti dei parametri di input in OnChartEvent().

Per esempio, visualizzare i parametri richiesti per oggetti sul grafico. Cliccando su un parametro(CHARTEVENT_OBJECT_CLICK) chiama il campo di input LabelEdit, dove si inseriscono nuovi parametri(CHARTEVENT_OBJECT_ENDEDIT) e li si invia all'esperto tramite l'evento utente(CHARTEVENT_CUSTOM+n), in esperto si interrogano gli eventi e si reagisce ai cambiamenti dei parametri di input.

 
artmedia70:

Bene, se l'esperto è in loop, e davvero non causa un ciclo di uninitialize provate a OnChartEvent () per organizzare un sondaggio di cambiamento dei parametri di input.

Per esempio, le opzioni che si desidera visualizzare un oggetto sul grafico. Cliccando sull'opzione (CHARTEVENT_OBJECT_CLICK) provoca il campo di input LabelEdit, dove inserire nuovi parametri ( CHARTEVENT_OBJECT_ENDEDIT ) e inviarli all'esperto tramite l'evento utente (CHARTEVENT_CUSTOM + n), l'esperto in eventi di polling e reagire ai cambiamenti nei parametri di input.

Non funzionerà. Stesso problema, il tuo EA è in un ciclo infinito, nessun gestore di eventi sarà eseguito.
 
angevoyageur:
Non funzionerà. Stesso problema, il tuo EA è in un ciclo infinito, nessun gestore di eventi sarà eseguito.
Davvero? Non sapevo ... Non ha mai scritto esperti in loop con OnChartEvent()...
 
stringo:

Molto simile.

1. Il linguaggio MQL4 ha un forum dedicato. Non questo.

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

1. Quando si installa il terminale MetaTrader4 nella finestra di installazione c'è un invito al forum, questo forum e non un altro.

2. A metà della nuova scheda. In passato la finestra delle proprietà di EA in loop non si apriva. Ora lo fa, e vorrei che la finestra reagisse ai cambiamenti dei parametri. Oppure non aprire la finestra delle proprietà, per non confondere l'utente.

 
Wex, usa un timer, puoi fare a meno del looping ora.
 
Integer:

1. Quando si installa il terminale MetaTrader4 nella finestra di installazione c'è un invito al forum, questo forum e non un altro.

2. A metà della nuova scheda. In passato la finestra delle proprietà di EA in loop non si apriva. Ora lo fa, e vorrei che la finestra reagisse ai cambiamenti dei parametri. Oppure la finestra delle proprietà può non essere aperta, per evitare di confondere l'utente.

1. Guarda il profilo di Wex. È uno sviluppatore professionista di MQL4. Fa il buffone. Oppure sta trollando. Non è chiaro perché.

2. Devi pensarci bene. Non è possibile terminare forzatamente il ciclo all'arrivo di nuovi parametri. Qualcosa come la funzione IsNewParameter che dovrebbe essere chiamata dal programmatore stesso nel ciclo infinito

Motivazione: