Errori, bug, domande - pagina 2794
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
Il mio indicatore ha iniziato a perdere oggetti grafici per qualche motivo e non li cancella. Uso la cancellazione automatica nel distruttore di classe. Io lo chiamo:
Di conseguenza, ottengo un falso positivo. Chiamo GetLastError() e ottengo l'errore 4101 ("Errory chart identifier"). Supponiamo. Confronto il chartID dell'oggetto grafico che viene cancellato con il risultato della funzione ChartID() e sono assolutamente identici. Quale può essere la ragione per cui non si rimuove un oggetto dal grafico e come posso aggirarla?
Ho deciso di provare un altro modo. Quando creo un grafico, aggiungo tutti gli oggetti alla lista e uso il ciclo per cancellare tutti gli oggetti quando cancello l'indicatore. Ora la funzioneGetLastError() dà errore 4001 dopo la chiamata della funzione ObjectDelete e alcuni oggetti del grafico rimangono sul grafico.
Il mio indicatore ha iniziato a perdere oggetti grafici per qualche motivo e non li cancella. Uso la cancellazione automatica nel distruttore di classe. Io lo chiamo:
Di conseguenza, ottengo un falso positivo. Chiamo GetLastError() e ottengo l'errore 4101 ("Errory chart identifier"). Supponiamo. Confronto il chartID dell'oggetto grafico cancellato con il risultato della funzione ChartID() e sono esattamente gli stessi. Quale può essere la ragione per cui non si rimuove un oggetto dal grafico e come posso aggirarla?
Azioni per dimostrare il bug.
1. posizionare l'indicatore sul grafico.
2. Rimuovere l'indicatore dal grafico.
3 Premi Ctrl+B, poi premi il pulsante "List all" nella finestra e vedi gli oggetti che non sono stati rimossi.
Ne ho addirittura 294 su 100000.
Se si riduce il valore del parametro di input nBars, il bug non appare.
Buon pomeriggio.
Ho temporeggiato a lungo con l'aggiornamento da Windows 7 a 10, ma ho reinstallato questa settimana.
Ora ho un problema, non posso scaricare le versioni demo di Expert Advisor dei miei indicatori e di altri EA,
Ho premuto il pulsante di download e non succede niente, ho provato con il terminale aperto e chiuso!
Sto cercando di scaricarlo per il terminale MT4, non sono ancora passato a MT5.
Che diavolo sta succedendo?
Fatto un codice sorgente dove si verifica questo bug:
Cosa succede quando un puntatore viene cancellato?
C'è un comando al grafico per cancellare l'oggetto grafico? Vedere la nota a ObjectDelete
Ne ho addirittura 294 su 100000.
Se diminuiamo il valore del parametro di input nBars, il bug non si verifica.
Può succedere che il ciclo duri più a lungo del tempo necessario per eseguire OnDeinit?
Nel tuo esempio tutti gli oggetti hanno il prefisso "trend", perché non lo usi e rifiuti dal ciclo?
Cosa succede quando un puntatore viene cancellato?
C'è un comando al grafico per cancellare l'oggetto grafico? Vedere la nota su ObjectDelete
Ho certamente pensato a questa nota prima. Ma poi ho deciso per qualche motivo che era un bug del terminale. Per questo mi scuso. Quindi deve essere colpa mia.
Ma non so cosa fare in questo caso. Devo chiamare ObjectDelete e poi ObjectFind e aspettare che fallisca per scoprire se l'oggetto è stato effettivamente rimosso? A giudicare dalla stessa nota, richiede troppo tempo. Non so se una seconda cancellazione funzionerà (nel mio indicatore ho provato a chiamare ObjectDelete due volte di seguito, ma non ha funzionato). E la funzione Sleep negli indicatori non funziona per dare al grafico un po' di tempo per cancellare ogni oggetto. Forse ci sono esempi da qualche parte su come aggirare questo problema?
Non può succedere che il ciclo duri più a lungo del tempo concesso per eseguire OnDeinit?
Dopo tutto, tutti gli oggetti nel tuo esempio hanno il prefisso "trend", perché non usarlo e rifiutarlo dal ciclo?
Questo è solo nell'esempio. L'indicatore con cui sto lavorando ha nomi complessi. E ho fatto un esempio solo a scopo dimostrativo.
Ho certamente pensato a questa nota prima. Ma poi per qualche motivo ho pensato che fosse un bug del terminale. Per questo mi scuso. Si scopre che è colpa mia.
Ma non so cosa fare in questo caso. Devo chiamare ObjectDelete e poi ObjectFind e aspettare che fallisca per scoprire se l'oggetto è stato effettivamente rimosso? A giudicare dalla stessa nota, richiede troppo tempo. Non so se una seconda cancellazione funzionerà (nel mio indicatore ho provato a chiamare ObjectDelete due volte di seguito, ma non ha funzionato). E la funzione Sleep negli indicatori non funziona per dare al grafico un po' di tempo per cancellare ogni oggetto. Forse ci sono esempi da qualche parte su come aggirare questo problema?
Penso che tu aggiunga tutti i puntatori alla lista. Il sottosistema terminale stesso cancella tali oggetti, i cui puntatori sono nella lista CArrayObj
Dopo lo spegnimento del terminale, gli oggetti rimangono sul grafico dopo l'indicatore. E quando riavvio il terminale, questi oggetti sono visibili e rovinano l'intera vista.
Dopo lo spegnimento del terminale, gli oggetti rimangono sul grafico dopo l'indicatore. E quando riavvio il terminale, questi oggetti sono visibili e rovinano l'intera vista.