Errori, bug, domande - pagina 1233
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
restituisceTimeGMT() quandoStringToTime è sbagliato; ad esempio quandoStringToTime("0") - quando l'argomento non viene analizzato.
E restituisce il tempo normale quando l'argomento viene analizzato, ad esempio quandoStringToTime(" 24.10.2014") - D'2014.10.24 00:00:00'
È normale? PerchéTimeGMT() nello specifico? Si tratta di -2 ore dal mio orario attuale in MT4 e sul mio computer.
mentre la stessa funzione con gli stessi parametri nel codice EA funziona bene? "
il mio codice funziona dal debugger, ma non funziona in modalità normale (o meglio, funziona a volte e non sono riuscito a stabilire un modello semplice sul perché funziona e perché no)
perché abbiamo bisogno di indicatori come iXXX, se non possono essere usati normalmente?
La domanda sull'errore 4806 è stata sollevata molto tempo fa "Perché la funzione CopyBuffer inserita in un indicatore personalizzato, porta all'errore 4806?
mentre la stessa funzione con gli stessi parametri nel codice EA funziona bene? "
il mio codice funziona sotto il debugger, ma non funziona in modalità normale (in realtà, funziona a volte e non ho potuto stabilire il semplice schema del perché funziona e perché non funziona)
A cosa ci servono gli indicatori di tipo iXXX se non possono essere usati correttamente?
Pomeriggio. I dati per il CopyBuffer sono presi dallo stesso TF su cui gira il tuo indicatore?
Avete provato a usare la funzione BarsCalculated() per risolvere il problema?
In MQL OOP, come si controlla se un puntatore è un membro di una certa classe - come instanceof in JavaScript o typeid in C++?
Buon pomeriggio. I dati per CopyBuffer sono presi dallo stesso TF in cui gira il vostro indicatore?
Avete provato a usare la funzione BarsCalculated() per risolvere il problema?
Buon pomeriggio.
Problema con le chiamate di funzione dalla dll di sistema. Il compito è quello di scrivere un semplice server TCP in MQL5, che gira su una certa porta e riceve solo messaggi.
Importato da ws2_32.dll funzioni WSAStartup(), WSAClenup(), socket(), bind(), accept(), listen(), recv(). Tutto funziona esattamente fino a quando non si prova a fermare il server. Quando cerco di fermare il server e terminare correttamente lo script, il terminale semplicemente mi butta fuori.
Da allora la funzione recv() è stata usata come metodo scientifico.
Nel file allegato c'è una linea (171):
se è configurato in questo modo:
allora il server si ferma senza errori. Stavo guardando degli esempi di utilizzo delle funzioni di rete su MSDN e ho fatto tutto per analogia.
Qualcuno ha idea di come risolvere questo problema?
Grazie per aver chiesto. Ho preso i dati da iATR su D1 l'indicatore principale funziona su timeframe più piccoli, BarsCalculated() restituisce anche -1 e lo stesso errore. Come immagino, c'è una funzione ma nessun indicatore (in runtime). Se creo un indicatore in un'altra finestra sullo stesso strumento, tutto funziona. In modalità debug funziona anche. Ma la mia domanda è un bug o non capisco qualcosa?
Anch'io ho lottato con questo problema di recente. L'ho risolto, non so se fosse ottimale, ma l'ho risolto. Solo i dati sono stati presi da iFractals, ma non importa. Perché ho chiesto del TF? Secondo le mie osservazioni, succede la seguente cosa. Per esempio, l'indicatore funziona a M15. Se i dati dell'indicatore sono richiesti da M1 a M15 - tutto va bene, i dati sono disponibili nel momento in cui vengono richiesti (se non alla prima chiamata). Se i dati sono richiesti da M30 (ripeto, l'indicatore funziona su TF M15), allora al momento della richiesta non ci sono dati su M30 per una nuova candela (o abbiamo bisogno di una richiesta preliminare, o i dati sono ritardati dal tick). L'ho risolto nel modo seguente. Ricordo il risultato di BarsCalculated() sulla candela corrente. Appena la prossima volta che BarsCalculated() restituisce il valore 1 in più (una nuova candela è apparsa), ricordiamo il nuovo valoredi BarsCalculated() e copiamo i dati. Ma questo momento (quando i dati dell'indicatore appaiono sul TF superiore) non coincide con la formazione di una nuova candela nel TF corrente.
Sì,BarsCalculated() restituisce -1 quando non ci sono dati, succede, per quanto ne so, solo durante la prima esecuzione. Cioè, quando si ottiene la maniglia dell'indicatore e si richiedono immediatamente i dati. Bisogna anche aspettare.
Subito dopo la creazione dell'handle dell'indicatore, i dati non possono essere interrogati perché non sono pronti. Il processo di inizializzazione e ricalcolo è complesso e dipende da molti fattori.
La strategia corretta è quella di creare un handle in oninit e lavorare con i dati quando arriva il primo tick.
Subito dopo la creazione dell'handle dell'indicatore, i dati non possono essere interrogati perché non sono pronti. Il processo di inizializzazione e ricalcolo è complesso e dipende da molti fattori.
La strategia corretta è quella di creare un handle in oninit e lavorare con i dati quando arriva il primo tick.