Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 251
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Ciao, voglio scrivere un pannello di trading per il mio EA in due versioni mql4 e mql5. Non ho ancora familiarità con gli oggetti grafici. Ho usato un esempio dalla classe CLabel della libreria standard per creare un menu mobile. In mql5, il menu funziona bene, ma non in mql4. Quando un periodo del grafico viene cambiato, gli oggetti del menu vengono duplicati e la loro posizione relativa cambia. Forse a mql4 mancano alcuni metodi nella classe CLabel, che mql5 ha? Potreste suggerire cosa aggiungere in questa classe per evitare tali problemi?
Anche nel codice di esempio della classe CLabel non mi è chiaro cosa fanno queste linee:
Ciao, voglio scrivere un pannello di trading per il mio EA in due versioni mql4 e mql5. Non ho ancora familiarità con gli oggetti grafici. Ho usato un esempio dalla classe CLabel della libreria standard per creare un menu mobile. In mql5, il menu funziona bene, ma non in mql4. Quando un periodo del grafico viene cambiato, gli oggetti del menu vengono duplicati e la loro posizione relativa cambia. Forse a mql4 mancano alcuni metodi nella classe CLabel, che mql5 ha? Potreste suggerire cosa aggiungere in questa classe per evitare tali problemi?
Inoltre, non mi è chiaro cosa fanno queste stringhe nel codice dell'esempio della classe CLabel:
Le linee specificate sono macro che sono scritte nel file Defines.mqh. Letteralmente, la prima linea della macro passa il controllo alla funzione di gestione degli eventi della classeCControlsDialog, poi le funzioni vengono eseguite tra queste macro e l'ultima macro passa il controllo alla classeCAppDialog
Le linee specificate sono macro, che sono scritte nel file Defines.mqh. Letteralmente, la prima linea della macro passa il controllo alla funzione di gestione degli eventi della classeCControlsDialog, poi vengono eseguite le funzioni tra queste macro, e l'ultima macro passa il controllo alla classeCAppDialog
Grazie, qualcosa comincia a diventare chiaro) E puoi darmi un link alla documentazione sull'argomento delle macro?
Grazie, comincia ad avere senso) Puoi darmi un link alla documentazione sull'argomento delle macro?
https://www.mql5.com/ru/docs/basis/preprosessor/constant
int OnDeinit()
{
Alert("beg OnDeinit()");
// err=StringToInteger(err);
//------------------------
ritorno(0);
Alert("fine OnDeinit()");
}
//OnDeinit();-----------
L'errore prigioniero è descritto come un intero
Non vedo quale sia il problema.
Ricevuto il messaggio
int OnDeinit()
{
Alert("beg OnDeinit()");
// err=StringToInteger(err);
//------------------------
ritorno(0);
Alert("fine OnDeinit()");
}
//OnDeinit();-----------
L'errore prigioniero è descritto come un intero
Non vedo quale sia il problema.
Ho ricevuto un messaggio
Non mi è molto chiaro quale sia il problema e dove si genera l'errore. Se avete una variabile err di tipo int, perché nella linea commentata state cercando di convertirla da stringa a int? Dove si verifica esattamente l'errore?
Non è chiaro quale sia il problema e da dove venga l'errore. Se avete una variabile err di tipo int, perché state cercando di convertirla da stringa a int nella stringa commentata? In quale luogo si verifica un errore?
Il messaggio del compilatore indica la linea e la posizione dell'errore. Potete cliccare sulla linea della descrizione (linea inferiore nell'immagine) e il cursore indicherà l'errore nel testo del programma. La funzione DeInit viene eseguita proprio prima che l'indicatore o Expert Advisor venga rimosso dal grafico. Qui, per esempio, gli elementi grafici creati possono essere cancellati. Se non ci sono azioni da eseguire (la funzione è vuota) - la funzione può essere cancellata... Se avete qualcosa come la stringa x=125, correggete in stringa x = (stringa)125
Invece di err=StringToInteger(err); err=StringToInteger((string)err); anche se qualcuno potrebbe trovarlo divertente
Il messaggio del compilatore indica la linea e la posizione dell'errore. Potete cliccare sulla linea della descrizione (linea inferiore nell'immagine) e il cursore indicherà l'errore nel testo del programma. La funzione DeInit viene eseguita proprio prima che l'indicatore o Expert Advisor venga rimosso dal grafico. Qui, per esempio, gli elementi grafici creati possono essere cancellati. Se non ci sono azioni da eseguire (la funzione è vuota) - la funzione può essere cancellata... Se avete qualcosa come la stringa x=125 corretto in stringa x = (stringa)125
Invece di err=StringToInteger(err); err=StringToInteger((string)err); anche se alcuni potrebbero trovarlo divertente
ms...
Ho fatto come mi consigliate
mettere la lineaerr=StringToInteger((string)err) nella funzioneOption; nessun errore.
Ma l'avvertimento della conversione implicita da stringa a numero rimane ancora, credo che il terminale dovrà essere reinstallato dopo tutto.
Ma l'avvertimento della conversione implicita da stringa a numero rimane ancora, credo che dovrò reinstallare il terminale dopo tutto.
Per favore pubblicate la vostra funzione OnDeinit - la guarderò. E ditemi cosa volete da esso. MetaEditor dà questo errore. Avere una copia della cartella del terminale. Qui Alexey Viktorov ha detto come reinstallare rapidamente