Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 503
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
Per le coppie di valute, se si mette un limite, tutto funziona, ma per il timeframe non funziona, anche se lo si mette sull'indicatore h1 non funziona
https://docs.mql4.com/ru/chart_operations/periodwindow
https://docs.mql4.com/ru/constants/chartconstants/enum_timeframes
Valore di ritornoPeriodo del grafico corrente (in minuti).
Provate, forse funzionerà.
O rimuovere le virgolette.
https://docs.mql4.com/ru/chart_operations/periodwindow
https://docs.mql4.com/ru/constants/chartconstants/enum_timeframes
Valore di ritornoPeriodo del grafico corrente (in minuti).
Provatelo e vedete se funziona.
Un'altra domanda, quando si aggiunge all'inizio quando l'indicatore #property strict dà errore array fuori range in 'Indicator name' (100,41) come comportarsi
Cosa c'è che non va?
Mi dispiace, non sapevo dell'inserimento del codice, ma per quanto riguarda il codice stesso, perché succede quando si inserisce #property strict e tutto funziona senza?
Avete visto l'aiuto in MetaEditor?
Anche il lavoro con le funzioni, lo scopo delle variabili e la liberazione della memoria negli array locali è cambiato. Poiché i cambiamenti si sono rivelati abbastanza significativi, si è deciso di introdurre una nuova proprietà #property strict per massimizzare la compatibilità con il vecchio approccio alla scrittura dei programmi MQL4. Quando si crea un nuovo programma MQL4 usando la procedura guidata MQL4, questa proprietà viene sempre aggiunta al modello.
E così via:
Tabella delle differenze tra i compilatori:
Vecchio compilatore MQL4
Nuovo compilatore MQL4
Nuovo compilatore MQL4 con #property strict
I punti di ingresso init(), start(), deinit() possono avere qualsiasi parametro e qualsiasi tipo di ritorno
init(), start(), deinit() mantenuti per compatibilità,
e i nuoviOnInit(),OnStart(),OnCalculate(),OnTick(),OnTimer(),OnChartEvent(),OnTester(),OnDeinit() devono corrispondere esattamente alle loro firme
Stesso
Il risultato di ritorno della funzione init() non è analizzato in alcun modo dal sottosistema di esecuzione
Il risultato di ritorno delle funzioni init() e OnInit() non è analizzato in alcun modo dal sottosistema di esecuzione
Quando ritorna un valore diverso da zero da OnInit(), l'esperto o l'indicatore si ferma e il programma viene scaricato
I nomi delle variabili possono essere quasi tutti (eccetto le parole riservate), compresi i caratteri speciali e i punti fermi
I nomi delle variabili non possono avere caratteri speciali e punti fermi.
La listadelle parole riservate è estesa, quindi parole comuni come short, long, const, ecc. non possono essere usate come nomi.
Stesso
Lo scopo di una variabile è dalla dichiarazione (anche in un blocco annidato) alla fine della funzione.
Stesso
Gamma di visibilità di una variabile - dalla dichiarazione alla fine del blocco in cui la variabile è dichiarata.
Inizializzazione implicita di tutte le variabili (sia globali che locali) con degli zeri.
Lo stesso
Inizializzazione delle sole variabili globali. Dalle variabili locali, solo le stringhe sono inizializzate implicitamente
Gli array locali non sono liberati quando si lascia la funzione
Gli array locali sono liberati quando si lascia la funzione
Gli array locali sono liberati in uscita {}
L'errore"Array out of range" non porta ad un errore critico*.
Lo stesso. Tranne che per gli array di strutture e classi per le quali questo errore è critico
"Array out of range" è un errore critico e causa l'arresto del programma
Nessuna struttura e classi
Ci sonostrutture e classi. Appaiono altri tipi di dati.
Stesso
Stringhe - a singolo byte.
datetime - intero a 32 bit
La variabile predefinita Volume è di tipo double
Stringhe - unicode.
datetime - intero a 64 bit
Ilvolume è una variabile predefinita di tipo lungo.
Stesso
ArrayCopyRates() produce una copia virtuale nell'array double[][6]
ArrayCopyRates() produce una copia virtuale dell'array MqlRates[]. Per compatibilità, la copia nell'array double[][6] rimane, ma questa copia non è virtuale ma reale.
Anche.
Le funzioni non possono restituire valori anche se hanno un tipo. A questo scopo, il compilatore inserisce automaticamente return(0) alla fine della funzione.
Lo stesso.
Le funzioni di qualsiasi tipo devono sempre restituire un valore
Numero di file aperti simultaneamente - 32
Numero di file aperti simultaneamente - 64
Stesso
I file sono sempre aperti in modalità condivisa **.
La modalità di condivisione deve essere dichiarata esplicitamente con FILE_SHARE_READ e/o FILE_SHARE_WRITE
Stesso
Gli script nella finestra di input mostrano i nomi delle variabiliesterne
I nomi dellevariabiliesterne e diinput sono mostrati nella finestra dei parametri di input per gli script in modalità show_inputs.
Per gli script in modalità show_inputs, i commenti alle stringhe sono mostrati nella finestra di input al posto dei nomi dellevariabiliesterne e diinput
* Dovresti prestare particolare attenzione all'errore "Array out of range" - molti vecchi indicatori personalizzati produrranno questo errore nel nuovo compilatore in modalità rigorosa quando vengono eseguiti su un grafico. È auspicabile trovare la causa ed eliminarla.
** Nel nuovo MQL4 e MQL5 i flag FILE_SHARE_READ e FILE_SHARE_WRITE sono responsabili della modalità di condivisione dei file, non esistevano nel vecchio MQL4.
dimmi cosa c'è che non va?
Scusa se ti disturbo, ma ora c'è questo errore
39° posizione.
Stesso errore, array fuori portata?