Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 185
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Buon pomeriggio.
Ho bisogno che l'EA si fermi dopo un certo evento.
Ho capito che questa è la funzione deinit(), ho bisogno di chiamarla in qualche modo. Questa è una citazione dal tutorial:
"La funzione speciale deinit() viene anche chiamata per l'esecuzione dal terminale client quando il terminale client viene spento, quando la finestra dello strumento finanziario viene chiusa, appena prima di cambiare uno strumento finanziario e/o un periodo del grafico, quando il programma viene ricompilato con successo nel MetaEditor, quando i parametri di input vengono cambiati e quando il conto viene cambiato. "
Quindi devo chiudere manualmente il terminale, per esempio, perché questa funzione sia chiamata?
Ho provato a chiamare questa funzione quando una condizione si è innescata, è stata eseguita, ma è arrivato un nuovo tick e la funzione di avvio è stata avviata di nuovo.
Come posso ancora terminare il programma?
Grazie.
Buon pomeriggio.
Ho bisogno che l'EA si fermi dopo un certo evento.
Ho capito che questa è la funzione deinit(), ho bisogno di chiamarla in qualche modo. Questa è una citazione dal tutorial:
"La funzione speciale deinit() viene chiamata per l'esecuzione dal terminale client anche quando il terminale client viene spento, quando la finestra dello strumento finanziario viene chiusa, appena prima di cambiare uno strumento finanziario e/o un periodo del grafico, quando il programma viene ricompilato con successo nel MetaEditor, quando i parametri di input vengono cambiati e quando il conto viene cambiato. "
Quindi devo chiudere manualmente il terminale, per esempio, perché questa funzione sia chiamata?
Ho provato a chiamare questa funzione quando una condizione si è innescata, è stata eseguita, ma è arrivato un nuovo tick e la funzione di avvio è stata avviata di nuovo.
Come posso ancora terminare il programma?
Grazie.
Per chiudere programmaticamente il terminale, inserite all'inizio del codice prima della funzione start():
Nella funzione start(), quando avete bisogno di chiudere il terminale, chiamate ExitMT4(), che dichiarate fuori dalla funzione start()
Per chiudere programmaticamente il terminale, inserite all'inizio del codice prima della funzione start():
Nella funzione start(), quando avete bisogno di chiudere il terminale, chiamate ExitMT4(), che dichiarate fuori dalla funzione start()
Grazie mille per la sua risposta esauriente.
In pratica, mi basterebbe chiudere l'EA, non ho bisogno di chiudere il terminale. Non c'è un modo semplice per farlo?
Penso che deinit() dovrebbe in qualche modo risolvere questo problema, ma devo star facendo qualcosa di sbagliato...
Non riesco a rimuovere Terminal.exe da Alpari Limited, build 509.
Quando si usa il pannello di controllo per disinstallare, appare un "Non hai diritti sufficienti per disinstallare". Contatta il tuo amministratore di sistema!".
Quando si usa Uninstall.exe viene visualizzato "Il server ha restituito il link".
Il supporto tecnico di Alpari non è in grado di dire nulla di comprensibile. Mi hanno solo suggerito di cancellare l'intera cartella e di installare il terminale in un'altra directory.
Ho Win 7, Ultimate. Diritti di amministratore attivati, ho eseguito Uninstall.exe come amministratore.
Sarei molto grato per qualsiasi aiuto per risolvere questo problema.
Grazie mille per la risposta dettagliata.
In linea di principio mi basterebbe semplicemente terminare l'EA, non c'è bisogno di chiudere il terminale. Non c'è un modo semplice?
Penso che deinit() dovrebbe in qualche modo risolvere questo problema, ma devo star facendo qualcosa di sbagliato...
Non deinit() ma return(0);
Se non mi sbaglio, return(0) terminerà semplicemente la funzione corrente start() e aspetterà il prossimo tick, mentre io ho bisogno che l'EA termini il suo lavoro, come se lo avessi staccato manualmente dal grafico.
L'ho controllato in pratica e continua a visualizzare l'avviso "0 ordini aperti" ad ogni tick.
Non ho aspettato il caro "Ciao".
Impossibile rimuovere Terminal.exe da Alpari Limited, build 509.
Quando si usa il pannello di controllo per disinstallare, appare un "Non hai diritti sufficienti per disinstallare". Contatta il tuo amministratore di sistema!".
Quando si usa Uninstall.exe viene visualizzato "Il server ha restituito il link".
Il supporto tecnico di Alpari non è in grado di dire nulla di comprensibile. Mi hanno solo suggerito di cancellare l'intera cartella e di installare il terminale in un'altra directory.
Ho Win 7, Ultimate. Diritti di amministratore attivati, uninstall.exe eseguito come amministratore.
Sarò molto grato per qualsiasi consiglio per risolvere questo problema
Alcuni programmi maligni (mail.ru, l'ho avuto io) ridistribuiscono i diritti di accesso, quindi voi con privilegi di amministratore non avete accesso alla loro rimozione.
Il problema è stato risolto con il metodo del poke scientifico nella ridistribuzione dei permessi (clic sulla cartella, proprietà, sicurezza, cambiare, aggiungere, opzionale, tipi di oggetti, ricerca.......)
Ma poi ho fatto conoscenza con "Revo uninstaller" e tutto il fastidio di cancellare qualcosa è scomparso + la certezza che il registro è stato pulito dalle loro attività.
Se non mi sbaglio, return(0) terminerà semplicemente la funzione corrente start() e aspetterà il prossimo tick. Ho bisogno che l'EA finisca il suo lavoro come se lo avessi staccato manualmente dal grafico.
Ho controllato in pratica - all'infinito ad ogni tick dà l'avviso "Ordini aperti - 0".
Non ho aspettato il caro "Ciao".
Alcuni programmi maligni (io avevo mail.ru) ridistribuiscono i diritti di accesso e fanno in modo che voi con i diritti di amministratore non abbiate accesso alla loro cancellazione.
Il problema è stato risolto con il metodo scientifico di ridistribuzione dei permessi (PCM sulla cartella, proprietà, sicurezza, modifica, aggiunta, opzionale, tipi di oggetti, ricerca.......)
Ma poi ho fatto conoscenza con "Revo uninstaller" e tutto il fastidio di cancellare qualcosa è scomparso, + la certezza che il registro è stato pulito dalle loro attività.
Il tuo desiderio ricorda la battuta del "disegnatore". Se volete che l'advisor fermi il trading, allora attivando il flag (globale) (dopo alcune condizioni), l'interruzione della funzione start() (uscita tramite return) darà il risultato atteso.
Questo è più o meno quello che sembra: