Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1422
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
Non so perché l'Expert Advisor nello Strategy Tester funziona bene, piazza ordini, ecc., ma nel conto reale, anche se il robot è attivo, gli ordini non vengono piazzati
Devi leggere la rivista, potrebbe esserci una risposta
Puoi dirmi come ottenere questo...
prendi questo -
Puoi dirmi come ottenere questo...
prendi questo -
Una conversione esplicita del tipo.
Si può anche arrotondare un intero da un non intero, ma il doppio sarà 18,0
Allora ripeterò la domanda.
L'espressione
if (izmb>b ||izmb<b || izms>s || izms<s)
è identico a questo:
if (izmb!=b || izms!=s)
E se volete memorizzare qualcosa, fatelo in una variabile globale.
Questo è quello che viene dichiarato fuori dal corpo della funzione.
Buona giornata a tutti voi!
Domanda su MQL4. Ecco un semplice codice
Crea un array bidimensionale e lo riempie di valori. Ci sono due funzioni nel codice che mi interessano - ArrayFill(LoY,0,31,0.5555); e ArraySort(LoY,WHOLE_ARRAY,0,MODE_ASCEND); Secondo il Reference Manual, entrambe le funzioni lavorano con array bidimensionali.ArrayFill() lavora rigorosamente su array riempiti orizzontalmente, il Reference book specifica che riempie l'array con valori rigorosamente da sinistra a destra (non dall'alto in basso o dal basso in alto). ArraySort() ordina un array bidimensionale per la prima dimensione. La Reference non dice se ordina gli array riempiti orizzontalmente o verticalmente. A giudicare dall'esecuzione del mio codice, ArraySort() ordina solo gli array riempiti verticalmente . Sembra che queste due funzioni non possano gestire uno stesso array in un programma.
D. È importante per me che la funzione ArraySort() funzioni correttamente . Quindi, ArraySort() può essere configurato per ordinare gli array riempiti orizzontalmente, con cui ArrayFill() funziona? O la funzione di ordinamento di MQL5, che funziona in MQL4, può aiutarmi invece? O c'è una funzione che converte un array riempito orizzontalmente con tutti i suoi valori in uno verticale, in poche parole, come fare in modo che il mio programma ordini un array orizzontalmente
Nota. Usare un ciclo invece di ArrayFill() non funziona per me.
Grazie per l'aiuto.
Buona giornata a tutti voi!
Domanda su MQL4. Ecco un semplice codice
Crea un array bidimensionale e lo riempie di valori. Ci sono due funzioni nel codice che mi interessano - ArrayFill(LoY,0,31,0.5555); e ArraySort(LoY,WHOLE_ARRAY,0,MODE_ASCEND); Secondo il Reference Manual, entrambe le funzioni lavorano con array bidimensionali.ArrayFill() lavora rigorosamente su array riempiti orizzontalmente, il Reference book specifica che riempie l'array con valori rigorosamente da sinistra a destra (non dall'alto al basso o dal basso all'alto). ArraySort() ordina un array bidimensionale per la prima dimensione. La Reference non dice se ordina gli array riempiti orizzontalmente o verticalmente. A giudicare dall'esecuzione del mio codice, ArraySort() ordina solo gli array riempiti verticalmente . Sembra che queste due funzioni non possano gestire uno stesso array in un programma.
D. È importante per me che la funzione ArraySort() funzioni correttamente . Quindi, ArraySort() può essere configurato per ordinare gli array riempiti orizzontalmente, con cui ArrayFill() funziona? O la funzione di ordinamento di MQL5, che funziona in MQL4, può aiutarmi invece? O c'è una funzione che converte un array riempito orizzontalmente con tutti i suoi valori in uno verticale, in poche parole, come fare in modo che il mio programma ordini un array orizzontalmente
Nota. Usare un ciclo invece di ArrayFill() non funziona per me.
Grazie per il vostro aiuto.
Hai notato il
nota
L'array multidimensionale quando viene elaborato con ArrayFill() appare come monodimensionale, per esempio, array[2][4] viene elaborato come array[8], quindi quando si lavora con questo array è accettabile specificare l'indice dell'elemento iniziale uguale a 5. Quindi, chiamando ArrayFill(array, 5, 2, 3.14) per array[2][4] si riempirà array[1][1] e array[1][2] con 3.14.
Questa stringa
riempirà l'array esattamente con una riga.
Per quanto riguarda la verticalità/orizzontalità, questo è il modo in cui terresti la testa guardando l'entrata. Guardate la tabella Excell e tutto diventerà chiaro. Se la colonna "A" è riempita di valori, si ottiene un array unidimensionale. Come è organizzato? Giusto... orizzontalmente, perché lo sto guardando sdraiato sul divano.........
Avete notato il
nota
Questa linea
riempirà l'array esattamente con una riga.
Per quanto riguarda la verticalità/orizzontalità, è come terresti la testa guardando l'entrata. Guardate la tabella Excell e tutto diventerà chiaro. Se la colonna "A" è riempita di valori, si ottiene un array unidimensionale. Come è organizzato? Giusto... orizzontalmente, perché lo sto guardando sdraiato sul divano.........
Grazie per la risposta. Ho capito tutto quello che hai scritto. Ma non ho capito il senso di quello che hai scritto in termini del mio problema.
Per array bidimensionale orizzontale nel mio codice intendo quando ci sono 2 righe sotto l'indice 0 o 1 e colonne sotto gli indici da 0 a 30. La prima dimensione è indicata come[0][0],[0][1],[0][2], ...[0][30] La seconda dimensione è indicata come[1][0],[1][1],[1][2], ...[1][30]
Per array bidimensionale verticale nel mio codice intendo quando ci sono 31 righe indicizzate da 0 a 30 e 2 colonne indicizzate 0 e 1. La prima dimensione è indicata come[0][0],[1[0],[2][0], ...[30][0] La seconda dimensione è indicata come[0][1],[1][1],[2][1], ...[30][1]
Se eseguite il mio codice, l'array si riempirà verticalmente. E la funzione ArraySort() ordinerà l'array come dovrebbe.
DOMANDA Perché la funzione ArrayFill() non funziona in questo caso ? Dopo tutto, gli ho chiesto di riempire la prima dimensione dell'array (31 elementi) con gli stessi valori 0,5555 al ventesimo minuto.
Grazie per il vostro aiuto.
Io ci proverei.
Grazie per il vostro aiuto. Farò un tentativo.
l'espressione
è identico a questo:
E se volete memorizzare qualcosa, fatelo in una variabile globale.
Questo è quello che viene dichiarato fuori dal corpo della funzione.
Volevamo controllare le condizioni di ricerca per entrare nell'EA non ogni tick, ma solo se un altro ordine viene aperto o chiuso da un altro EA o manualmente (per evitare un carico inutile sul processore). Per questo dobbiamo controllare se il numero di ordini corrisponde ad ogni tick.
Possiamo usare una variabile statica ? Il programma funzionerà in tale forma?