Errori, bug, domande - pagina 969

 
zfs:

Pensi che dovresti controllarlo o saperlo con certezza).

...

Beh, fatelo già controllare. Hai un problema, quindi dovresti controllarlo. )) Di solito inizio a controllare quando ho bisogno di saperlo con certezza. E negli indicatori dopo il calcolo principale l'ultimo valore è di solito aggiornato e non ho mai notato alcun problema. E nessuno sembra averlo notato, tranne voi. Ecco perché mi ha incuriosito. ))

Vedo un'immagine diversa su diversi computer, così ho qualcosa con cui confrontarla. (Non posso comunque ottenere la verità, quindi non ci resta che brontolare sul forum).

Eseguo un terminale con applicazioni pesanti, non si carica come applicazione ed è visibile solo come processo. Se lancio l'applicazione su un terminale aperto non si blocca. Ma all'avvio si blocca o non si carica come applicazione. Quindi devo disinstallare l'applicazione prima di uscire. Ho scritto a servicedesk chiedendo di poter chiudere l'applicazione senza chiudere il terminale o cancellare le cartelle.

Cosa intendi per applicazione? Lei applica la parola "applicazione" sia come qualcosa di separato dal terminale che come il terminale stesso, quindi è difficile capirla.

Cosa significa chiudere l'applicazione senza chiudere il terminale? Non è possibile rimuovere un Expert Advisor, un indicatore o uno script da un grafico?

 
tol64:

Beh, fatelo già controllare. Hai un problema, quindi dovresti controllarlo. )) Di solito inizio a controllare quando ho bisogno di saperlo con certezza. E negli indicatori dopo il calcolo principale l'ultimo valore è di solito aggiornato e non ho notato alcun problema. E nessuno sembra averlo notato, tranne voi. Ecco perché mi ha incuriosito. ))

Cosa intendi per applicazione? Tu usi la parola "applicazione" sia come qualcosa di separato dal terminale che come il terminale stesso, quindi è difficile capirti.

Cosa intendete per "chiudere l'applicazione senza chiudere il terminale"? Non è possibile rimuovere un Expert Advisor, un indicatore o uno script da un grafico?

Sì, devo pensare a come ottenere questo risultato. Se non posso nemmeno
double iCloseMQL4

Se non ci arrivate, allora si scopre che i tick non sono saltati, ma i calcoli sono sovrapposti l'uno all'altro. Non è un fatto però, è più un'opera diversa.

Le applicazioni nel mio caso sono l'indicatore ma anche lo script e l'Expert Advisor. Non posso rimuovere l'indicatore dal terminale finché non fallisce i calcoli, questo era anche il caso nel 4, cioè si blocca. Non posso caricare il terminale se l'indicatore era sospeso sul grafico all'uscita, solo cancellando i file dalle cartelle. Non posso compilare l'indicatore, se si blocca sul grafico - può bloccarsi di nuovo. L'applicazione è anche nel task manager del terminale stesso. Mi dispiace per la confusione.

Документация по MQL5: Файловые операции / FileDelete
Документация по MQL5: Файловые операции / FileDelete
  • www.mql5.com
Файловые операции / FileDelete - Документация по MQL5
 
zfs:
...

L'applicazione nel mio caso è l'indicatore ma anche lo script e l'Expert Advisor. Non posso rimuovere l'indicatore dal terminale finché non fallisce i calcoli, questo era anche il caso nel 4, cioè si blocca. Non posso caricare il terminale se l'indicatore era sospeso sul grafico all'uscita, solo cancellando i file dalle cartelle. Non posso compilare l'indicatore, se si blocca sul grafico - può bloccarsi di nuovo. L'applicazione è anche nel task manager del terminale stesso. Mi dispiace per la confusione.

Prova a usare IsStopped():

for(int i=0; i<rates_total && !IsStopped(); i++)
   {
    
   }

Quando hai provato, scrivi se sei riuscito o meno a fermare i calcoli del tuo indicatore e a rimuovere il programma dal grafico. In generale, sarebbe auspicabile guardare il codice dell'indicatore.

 
tol64:

Prova a usare IsStopped():

Quando hai provato, scrivi se sei riuscito o meno a fermare i calcoli del tuo indicatore e a rimuovere il programma dal grafico. In generale, è auspicabile guardare il codice dell'indicatore.

Negli indicatori, il flag di stop non è impostato.
 
uncleVic:
Negli indicatori il flag di stop non è impostato.

Allora sembra che la descrizione nella Guida debba essere completata/specificata:

//---

Controlla l'arresto forzato di un programma mql5.

Valore restituito

Restituisce true, se la variabile di sistema _StopFlag contiene un valore diverso da 0. Un valore diverso da zero viene scritto in _StopFlag, se è stato ricevuto un comando per spegnere il programma mql5. In questo caso, il programma deve essere terminato il più presto possibile, altrimenti il programma sarà completato forzatamente dall'esterno dopo 3 secondi.

//---

...O aggiungere anche la possibilità di un'interruzione forzata negli indicatori.

Molti indicatori in CodeBase usano questa funzione, e si scopre che non funziona negli indicatori. ))

 
tol64:

Allora sembra che la descrizione nella Guida debba essere completata/specificata:

//---

//---

...o aggiungere anche la possibilità di un licenziamento forzato negli indicatori.

Perché molti indicatori in CodeBase usano questa funzione, ma sembra che non funzioni negli indicatori. ))

IsStoped negli indicatori è stato discusso sul forum. Non ho ancora capito che IsStoped è presente negli indicatori di default, ma l'amministrazione dice che non è necessario.
 
paladin800:
IsStoped negli indicatori è stato discusso sul forum. È ancora un mistero per me che IsStoped sia presente negli indicatori standard, ma l'amministrazione dice di no.
Sì, mi ricordo. Recentemente ho avuto un caso in cui, dopo essere entrato in un ciclo eterno e aver cancellato un indicatore da un grafico, IsStopped() non ha aiutato e il ciclo eterno ha dovuto essere fermato chiudendo il terminale.
 
tol64:
Sì, mi ricordo. Recentemente ho avuto un caso in cui, dopo essere entrato nel ciclo perpetuo e aver cancellato l'indicatore dal grafico, IsStopped() non ha aiutato e il ciclo perpetuo ha dovuto essere fermato chiudendo il terminale.

IsStopped() aiuta a combattere il looping - questo è sicuro. Da qualche tempo il "ciclo perpetuo" non è curato daIsStopped() e, infatti, dobbiamo cancellare il processo terminale per ripristinare il funzionamento. Anche se l'indicatore di tipo viene eliminato dal grafico senza problemi, ma il grafico si blocca.

Per divertirvi, potete provare un indicatore con un loop speciale. A proposito, come si suppone in questo caso, OnDeinit() non funziona.

File:
test.mq5  1 kb
 
tol64:

Allora sembra che la descrizione nella Guida debba essere completata/specificata:

//---

//---

...o aggiungere anche la possibilità di un licenziamento forzato negli indicatori.

Molti indicatori in CodeBase usano questa funzione, ma sembra che non funzioni negli indicatori. ))

Credo che questo sia solo l'inizio della storia.

Non capisco le ragioni della divisione in indicatori e Expert Advisors, come se il compilatore non capisse cosa hanno lì. Inoltre non capisco la ragione di una tale restrizione. Avevo l'indicatore di commercio sul 4. Ma nella sua forma pura, se chiamo un comando commerciale, l'indicatore si blocca e devo bypassarlo attraverso la libreria.

 

Buon giorno caro MQ!

Ci sono un paio di domande:

1. è stato pubblicato di recente che ci sarà un'API per gli Alert. Forse è già apparso, come imparare a conoscerlo?

2. si fa qualcosa per il bug con la parola chiave this? Nessun tooltip con i nomi delle funzioni di classe viene visualizzato dopo di esso. Di nuovo, quando sarà risolto, come lo scopriremo prontamente?

Grazie per il vostro lavoro!

Документация по MQL5: Основы языка / Типы данных / Ссылки. Модификатор & и ключевое слово this
Документация по MQL5: Основы языка / Типы данных / Ссылки. Модификатор & и ключевое слово this
  • www.mql5.com
Основы языка / Типы данных / Ссылки. Модификатор & и ключевое слово this - Документация по MQL5