Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1497
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Buongiorno a tutti!
Domanda sull'istruzione for() in mql4. L'intestazione di questo operatore esegue la diminuzione e l'aumento sequenziale del valore di qualche variabile
for(int A=14; A>=0;A--) o for(int A=0; A<14;A++) o for(int A=0; A<14;A=+2) Si suppone che le dimensioni della variabile A aumentino o diminuiscano sempre nello stesso modo negli esempi dati 1 o 2.
DOMANDA: Se una variabile è un valore di timeframe (1 (minuto),5,15,30,60,240,1440), è ovvio che le dimensioni di aumento o diminuzione di questa variabile non possono essere uguali. In questo caso, come formattare l'intestazione for in modo che la variabile A inizi con 1 e poi sia incrementata ad ogni iterazione del numero di minuti richiesto, in modo non uniforme.
L'esempio con la variabile A è un caso speciale. In generale, come faccio a formattare un ciclo se il cambiamento della variabile nell'intestazione del ciclo deve essere fatto in modo non uniforme agli intervalli desiderati.
O c'è qualche altro operatore da usare per questi casi? Ma siccome mi sembra che gli altri operatori siano molto ingombranti in confronto a for. Per favore aiutatemi a risolvere il mio problema esattamente con l'aiuto dell'istruzione for, ed esattamente con la sua intestazione. Perché per risolvere il mio problema all'interno del corpo della dichiarazione for, naturalmente, è possibile utilizzare le dichiarazioni if, ma sarà molto ingombrante e la dichiarazionefor dovrà fare 1440 iterazioni per il bene di filtrare 7 valori corretti.
Grazie.
C'è un errore qui. Dovrebbe essere for(int A=0; A<14;A+=2)
La cosa più semplice che mi viene in mente è mettere i periodi nell'array
La cosa più semplice che mi viene in mente è segnare i periodi in un array
Grazie, potrebbe servire anche a me)
C'è un errore qui. Dovrebbe essere for(int A=0; A<14;A+=2)
La cosa più semplice che mi viene in mente è memorizzare i periodi in un array
Grazie mille per il suggerimento. Si è rivelato molto più semplice di quanto pensassi.
Non capisco solo una cosa. Il nome dell'array è per. E ENUM_TIMEFRAMES è un identificatore di un tipo di variabile? Non ho trovato un tale identificatore in mql4 Reference. Ci sono solo
Grazie mille per il suggerimento. Si è rivelato molto più facile di quanto pensassi.
Solo una cosa non ho capito. Il nome dell'array per. E ENUM_TIMEFRAMES è un identificatore del tipo di variabile? Non ho trovato un tale identificatore in mql4 Reference. Ci sono solo
qui
qui
Ho capito bene che mi hai mandato informazioni su mql 5? O queste informazioni valgono anche per mql 4?
Ho capito bene che mi hai mandato informazioni su mql 5? O queste informazioni valgono anche per mql 4?
L'ho corretto.
Grazie.
Grazie.
Una piccola raccomandazione: abituatevi subito a ENUM_TIMEFRAMES e dimenticate la rappresentazione numerica come numero di minuti.
In primo luogo PERIOD_W1 è più informativo di 10080, è più chiaro che è una settimana.
In secondo luogo, in mql5 il periodo non corrisponde al numero di minuti e non sarà un problema inutile durante la migrazione a mql5, ed è inevitabile.
Bene, se avete davvero bisogno del numero di minuti in un periodo, allora potete