Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1461
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
Se nell'Expert Advisor è prescritta la cancellazione degli ordini e la chiusura delle posizioni quando l'Expert Advisor viene cancellato,
allora tutto verrà cancellato e chiuso
Una piccola aggiunta: se ci vogliono 2,5 secondi.
Non riesco a capire come fare.
Quando si verifica l'evento di scorrimento della rotellina del mouse, il codice viene eseguito.
La rotellina del mouse può essere fatta scorrere per diversi clic alla volta e non si otterrà un evento con dparam = numero di clic, ma diversi eventi con dparam = +/-120.
Il codice viene eseguito per un certo tempo, che è molto più lungo del tempo che intercorre tra un clic e l'altro durante lo scorrimento della rotellina del mouse.
Di conseguenza, risulta che nessuno scorre più la rotellina del mouse e il programma continua a ricalcolare per un altro po' di tempo.
La rotellina del mouse è stata fatta scorrere alle 15:12:22.820 e poi il programma è stato eseguito altre 5 volte, per 5 secondi interi.Domanda: come eseguire il codice del programma una sola volta anziché più volte.
Cioè, la rotellina scorre per 5 click, delta = dparam / 120 * 5.
Non riesco a capire come fare.
Quando si verifica l'evento di scorrimento della rotellina del mouse, il codice viene eseguito.
La rotellina del mouse può essere fatta scorrere per diversi clic alla volta e non si otterrà un evento con dparam = numero di clic, ma diversi eventi con dparam = +/-120.
Il codice viene eseguito per un certo tempo, che è molto più lungo del tempo che intercorre tra un clic e l'altro durante lo scorrimento della rotellina del mouse.
Di conseguenza, si scopre che nessuno scorre più la rotellina del mouse e il programma continua a ricalcolare per un altro po' di tempo.
La rotellina del mouse è stata fatta scorrere alle 15:12:22.820 e poi il programma è stato eseguito altre 5 volte, per 5 secondi interi.Domanda: come eseguire il codice del programma una sola volta anziché più volte.
Cioè, la rotella è stata fatta scorrere per 5 click, delta = dparam / 120 * 5.
Prova questo
Non ho controllato, semmai non è colpa mia...)))))) Dovrò fare qualcosa con il flag... e forse dovrò inserire il codice in una funzione personalizzata e gestire il flag lì.
Il 03 giugno ho pubblicato il mio script per MT5(https://www.mql5.com/ru/code/44732).... E' ancora nello stato di "in fase di controllo da parte del moderatore". Chi sa quanto tempo ci vorrà per il controllo?
Prova questo
Non ho controllato, se non è colpa mia...)))))) Dovrò modificare il flag in qualche modo... e forse dovrò inserire il codice in una funzione personalizzata e modificare il flag lì.
Il problema è che le funzioni personalizzate vengono eseguite solo all'interno di funzioni evento, e io ho solo due funzioni di questo tipo OnInit e OnChartEvent nel mio EA.
In generale, sono riuscito a farcela, anche se non proprio come asso pigliatutto, ma comunque meglio di prima.
Il problema è che le funzioni personalizzate vengono eseguite solo all'interno di funzioni evento e io ho solo due funzioni di questo tipo OnInit e OnChartEvent nel mio EA.
In generale, sono riuscito a farlo, anche se non è proprio una buona idea, ma comunque meglio di come era.
È anche possibile chiamare funzioni personalizzate da OnChartEvent senza problemi.
Il flag è dichiarato a livello globale. Inserire OnTick solo per resettare il flag non è un problema e non ritarda l'esecuzione del codice.
Se il flag è aperto, viene chiamata una funzione personalizzata. Internamente, il flag è stato chiuso. In OnTick, il flag viene riaperto e attende la prossima esecuzione della funzione utente.
Penso che sia più facile che rimanere bloccati sul tempo di esecuzione.
È possibile chiamare funzioni personalizzate anche da OnChartEvent, senza problemi.
Il flag è dichiarato a livello globale. Inserire OnTick solo per resettare il flag non è un problema e non ritarda l'esecuzione del codice.
Se il flag è aperto, viene chiamata una funzione personalizzata. Internamente, il flag è stato chiuso. In OnTick il flag viene riaperto e attende la prossima esecuzione della funzione utente.
Penso che sia più semplice che essere legati al tempo di esecuzione.
Non capisco bene, o meglio non capisco affatto :)
E se non ci sono tick, OnTick non funziona senza tick, cosa dovrei fare?
In realtà chiamo comunque funzioni personalizzate da OnChartEvent. Era solo un problema di tracciamento dell'ultimo clic del mouse quando si scorre la rotellina.
Si trattava di ritardare l'esecuzione della funzione personalizzata fino al momento in cui si interrompeva lo scorrimento della rotellina, contando il numero di clic durante lo scorrimento.
In linea di principio, ha funzionato.
Il 03 giugno ho pubblicato il mio script per MT5(https://www.mql5.com/ru/code/44732).... E' ancora nello stato di "in fase di controllo da parte del moderatore". Chi sa quanto tempo ci vorrà per il controllo?
Ho appena pubblicato il codice. La verifica ha richiesto meno di un minuto.
Molto probabilmente hai commesso un errore durante la pubblicazione.
Ho appena pubblicato il codice. La verifica ha richiesto meno di un minuto.
Molto probabilmente hai commesso un errore durante la pubblicazione.
Ho provato a pubblicare di nuovo... ed è la stessa cosa:
sotto "5. Test" c'è scritto"Iltest è stato completato senza errori" e propone di pubblicarlo, ma quando si fa clic sul pulsante "Pubblica" si riceve un errore
404. Questa pagina non esiste
Nella sottosezione "I miei codici" ci sono ora due codici e su entrambi c'è scritto "controllato dal moderatore".
In generale, farò una domanda nel thread generale, forse i moderatori se ne accorgeranno.