Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 420
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
C'è una funzione che restituisce il tipo di variabile?
Per esempio, lei scrive.
int a=10;
poi scrivi:
functia(a);
e dice: INT!
:)
string functia(double a) { return "DABLE!"; } // anche inaspettatamente
C'è una funzione che restituisce un tipo di variabile?
Per esempio, lei scrive.
int a=10;
poi scrivi:
functia(a);
e dice: INT!
:)
Dalla guida:
È molto più semplice. Crea un pulsante di visualizzazione (o usa uno dei pulsanti esistenti). Continuando a premere - tutti gli oggetti necessari sono impostati bandiera di visibilità su tutti i TF. Quando il pulsante viene rilasciato, tutti gli oggetti sono impostati per visualizzare la proprietà su tutti i TF (o necessario se necessario). Non c'è bisogno di cancellare/riorganizzare nulla. L'unica cosa da fare è ridisegnare il grafico dopo questa operazione.
Proprietà dell'oggetto OBJPROP_TIMEFRAMES.
Puoi dirmi come ottenere i dati dall'indicatore in un array? Cioè è chiaro che ho bisogno di dichiarare un array
doppio num_array[];
Non so bene cosa fare dopo...
num_array[0] = iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,i); // l'array con l'indice [0] è uguale a MA, ma se cambiamo l'indice in [1], allora risulta che num_array[1] è uguale
gli stessi dati dell'indicatore come num_array[0]. Questo non dovrebbe essere il caso. L'array dovrebbe essere riempito in modo sequenziale. L'unica cosa che mi viene in mente è di dividere il giorno in 24
ore, dichiarare un array bidimensionale e assegnare un indice a ogni ora con la sua stringa ecc....
Forse c'è un modo più semplice o meno disordinato?
Puoi dirmi come ottenere i dati dall'indicatore in un array? Cioè è chiaro che ho bisogno di dichiarare un array
doppio num_array[];
Non so bene cosa fare dopo...
num_array[0] = iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,i); // l'array con l'indice [0] è uguale a MA, ma se cambiamo l'indice in [1], allora risulta che num_array[1] è uguale
gli stessi dati dell'indicatore come num_array[0]. Questo non dovrebbe essere il caso. L'array dovrebbe essere riempito in modo sequenziale. L'unica cosa che mi viene in mente è di dividere il giorno in 24
ore, dichiarare un array bidimensionale e assegnare un indice a ogni ora con la sua stringa ecc....
Forse c'è un modo più semplice o meno disordinato?
Io la vedo così:
Io la vedo così:
Oh, posso impostare il numero massimo di indici nell'array tramiteArrayResize ed eseguirli nel ciclo. Grazie mille, ma poi c'è una domanda, quando tutti gli indici sono riempiti con i dati dell'indicatore, devo cancellarli attraversoArrayFree, o si riscriverà da solo? O dopo il 24 tutto si fermerà? Scusa per la domanda schietta, ma gli array sono una specie di cavallo nero con funzioni sconosciute.
Oh, posso usareArrayResize per impostare il numero massimo di indici nell'array ed eseguirli nel ciclo. Grazie mille, ma poi c'è una domanda, quando tutti gli indici sono riempiti con i dati dell'indicatore, devo cancellarli attraversoArrayFree, o si riscriverà da solo? O dopo il 24 tutto si fermerà? Scusate la domanda schietta, ma gli array sono una specie di cavallo nero con funzioni sconosciute.
Array = un insieme di semplici variabili allineate in una fila per un facile riferimento al loro indice. L'indice è una variabile intera per accedere agli elementi dell'array per numero al fine di organizzare un ciclo. Indice = contatore di numeri. ArrayFree = distruzione di array - come un bulldozer su case sgangherate. Ma può essere ripristinato di nuovo con ArrayResize. Bene ,ArrayResize è un recinto intorno a un array residenziale. Il nostro è qui, ma gli estranei sono dietro il recinto, ed è vietato entrarci. Potete inserire ogni casa molte volte (assegnare un nuovo valore a un elemento dell'array). Un array è molto semplice e conveniente per molti scopi. E quelli che hanno paura degli array - quelli ... Perciò, è meglio prenderci la mano con loro.
//+------------------------------------------------------------------+ //| Проверка массива | //+------------------------------------------------------------------+ #property strict int m[10]; int n; void OnStart() { ArrayInitialize(m,7); Вывод(); // Заполнить семерками ArrayResize(m,7); Вывод(); // Удалить 3 последних элемента ArrayResize(m,9); Вывод(); // Увеличить размер m[1]=1; m[7]=1; Вывод(); // Изменить 2 элемента for(n=0; n<9; n++) m[n]=n*n; Вывод(); // Заполнить квадратами номеров ArrayCopy(m,m,0,2,7); Вывод(); // Копирование со сдвигом ArrayResize(m,ArraySize(m)-2); Вывод(); // Удалить 2 последних элемента } void Вывод() { string s=""; for(n=0; n<ArraySize(m); n++) s+=" " + string(m[n]); Alert(ArraySize(m), ":", s); }
Prova ad eseguire uno script come questo - e fai praticaDal riferimento: