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
Salve, signori sviluppatori!
Possiamo fare dei cambiamenti nel compilatore MQL5 per darci almeno un avvertimento?
per errori di questo tipo nel codice.
if(Flag_Exitl=true) {break;}
La condizione di confronto qui non è corretta (dovrebbe essere == ), ecco perché sarà sempre break.
Come affrontare questa situazione nel compilatore (se è possibile), in modo che io possa avere meno scossoni quando scrivo il codice?
(Ho pensato che non funzionerà, sembra che dovremmo separare l'assegnazione e il confronto in if, quindi la domanda viene rimossa).
Le variabili di tipo bool non possono essere confrontate con true/false, ma usate direttamente (essenzialmente è una bandiera sì/no)
Ricevo regolarmente l'errore 4401
ERR_HISTORY_NOT_FOUND
Il seguente codice indicatore
darà un errore subito dopo l'avvio (se non è su D1). O meglio, una volta che avviate il terminale e aprite il grafico - mettete l'indicatore, otterrete un errore. Se il terminale non è chiuso, allora non ci sarà questo errore all'inizio.
Ma dopo un po' di tempo (un paio d'ore - 2 ore sono state sufficienti per me) vedremo che otterremo l'errore sul grafico già aperto. (Lo stavo facendo funzionare su m30)
...l'errore 4401 appare regolarmente.
riferimento:
Organizzare l'accesso ai dati
Accessibilità dei dati
La disponibilità di dati in formato HCC o anche in formato HC pronto all'uso non significa sempre la disponibilità incondizionata di questi dati per la visualizzazione su un grafico o per l'uso in programmi mql5.
Quando si accede ai dati dei prezzi o ai valori degli indicatori dai programmi mql5, dobbiamo ricordare che non è garantito che siano disponibili in un certo momento, o da un certo punto nel tempo. Questo ha a che fare con il fatto che MetaTrader 5 non memorizza la copia completa dei dati necessari per il programma mql5, ma dà accesso diretto al database del terminale per risparmiare risorse.
La storia dei prezzi per tutti i timeframes è costruita a partire dai dati comuni in formato HCC e qualsiasi aggiornamento del server porta all'aggiornamento dei dati per tutti i timeframes e al ricalcolo dell'indicatore. Pertanto, l'accesso ai dati può essere negato anche se i dati erano disponibili un attimo prima.
CopyRate
Quando si richiedono dati all'indicatore, se le serie temporali richieste non sono state costruite o devono essere scaricate dal server, la funzione restituisce immediatamente -1, ma viene avviato il processo di download/costruzione.scheda informativa:
Sembra che dovrebbe essere così. Fino a CopyRate SERIES_SYNCRONIZED si può controllare...Mi sto solo cospargendo il capo di cenere, sì. Grazie.
Anche se è strano vedere la richiesta di due barre e la storia non disponibile, anche se cambia solo zero barre. Ma non importa - se è descritto nella documentazione, non è un errore
nel mio IsNewBar è uscito un errore.
Invece di
Avrei dovuto scrivere
E mi sono chiesto perché ogni paio d'ore IsNewBar(PERIOD_D1) == true -> da qui ho scoperto l'inaccessibilità della storia, ma non mi veniva in mente una funzione che avevo scritto un anno o due fa.
Perché l'indicatore non può gestire tipi di colore (COLOR_ARROW, ecc.) con più di un buffer
campione di codice
Impostiamo due DRAW_COLOR_ARROW (buf1 e buf2) e per ogni buffer di colore aggiuntivo (clr1, clr2)
Allo stesso tempo, anche se il secondo buffer buf2 riceve le barre High/Low, non appare sul grafico. Sembra che il colore delle frecce in questo buffer = clrNONE. Cioè, l'impostazione del colore nel buffer clr2 non funziona
Ecco uno screenshot. solo i valori di buf1/clr1 sono visibili. i valori del secondo buffer non sono visualizzati a colori anche se i valori sono ricevuti.
Dov'è l'errore?
La domanda è stata creata semplicemente per rispondere "in MQL5 DNA".
Tale assurdità anche su DRAW_FILLING e anche su relativamente normale DRAW_HISTOGRAM2 (non così stabile ovviamente, ma i bug si verificano).
Solo dall'instabilità dei bug, concludo che è improbabile ottenere una risposta senza un CD.
Bild 642 per Win32
Qualche problema con gli array tridimensionali di doppi appare se per errore andate oltre i limiti dell'array quando fate l'output nella funzione Print
Lo script entra da solo in un ciclo infinito.
Bild 642 per Win32
qualche problema con gli array tridimensionali doppio appare se si passa per errore all'esterno dell'array quando si emette nella funzione Print
In realtà, il superamento avviene due righe prima
e stai chiamando un esponente da un elemento inesistente, molto probabilmente zero.
Guarda nel registro
Generalmente, il fuori limite si verifica due righe prima
e stai chiamando un esponente da un elemento inesistente, molto probabilmente zero.
guarda nel registro