La lunghezza standard della stringa va da 0 a 255 caratteri. Leggo la stringa dal file riga per riga tramite FileReadString senza parametro di lunghezza ( lunghezza=0per default ).Cioè, la stringa viene letta dalla posizione corrente al carattere diavanzamento di riga "\r\n". Cosa fare nel caso in cui una riga di un file occupi più di 255 caratteri (ed è possibile abbastanza spesso). Non voglio rompere la stringa in parti, perché le stringhe sono strettamente strutturate (il file contiene codice html). L'idea è che prima leggo l'intero file riga per riga nell'array, e poi lo analizzo e seleziono solo le informazioni di cui ho bisogno. Se le linee si dividono, il parser smetterà di funzionare, perché i segni delle informazioni necessarie possono separarsi ed entrare in diverse linee di lettura. Nessuna stringa lunga( Qualche altra idea?
Buon pomeriggio.
Potreste dirmi come ottenere il valore diTenkan eKijun sulla candela precedente in mql5?
Guardate l'esempio diiIchimoku.
Stavo guardando prima di fare la domanda. In mql4 era più facile, per esempio sull'ultima candela
double tenkan_sen=iIchimoku(NULL,0,9,26,52,MODE_TENKANSEN,1);
E qui ho capito che viene creato un oggetto
handle=iIchimoku(nome,periodo,tenkan_sen,kijun_sen,senkou_span_b);
Ma come ottenere il valore tenkan da esso, non riesco a capirlo :(. Voglio una semplice intersezione tenkan e kijun da tracciare e basta.
Stavo guardando prima di fare la domanda. In mql4 era più facile, per esempio sull'ultima candela
double tenkan_sen=iIchimoku(NULL,0,9,26,52,MODE_TENKANSEN,1);
E qui ho capito che viene creato un oggetto
handle=iIchimoku(nome,periodo,tenkan_sen,kijun_sen,senkou_span_b);
Ma come ottenere il valore tenkan da esso, non riesco a capirlo :(. Voglio una semplice intersezione di tenkan e kijun e basta.
Vuoi tracciare in un indicatore o in un EA?
Nel consigliere. Avvisi di forma in uscita con suono.
Guardate la funzione CopyBuffer().
Nell'esempio
ma_handle=iMA(Symbol(),0,period,shift,smootMode,price); - l'oggetto viene creato
if(CopyBuffer(ma_handle,0,0,to_copy,MABuffer)<=0)return(0); - riempie l'arrayMABuffer con i valori dima_handle
E orapossiamo ottenere valori daMABuffer?
Nell'esempio
ma_handle=iMA(Symbol(),0,period,shift,smootMode,price); - l'oggetto viene creato
if(CopyBuffer(ma_handle,0,0,to_copy,MABuffer)<=0)return(0); - riempie l'arrayMABuffer con i valori dima_handle
E orapossiamo ottenere valori daMABuffer?
Sì. In MABuffer, usando la funzione CopyBuffer() si ottengono i valori di MA sull'intervallo specificato. MABuffer è, ovviamente, un array.
Sì. In MABuffer hai ottenuto i valori MA sull'intervallo che hai specificato con la funzione CopyBuffer(). MABuffer, naturalmente, è un array.
E si dovrebbe fare tutto correttamente nella procedura
intOnCalculate(constint rates_total,constint prev_calculated,
constdatetime&time[],
constdouble&open[],
constdouble&high[],
constdouble&low[],
constdouble&close[],
constlong&tick_volume[],
constlong&volume[],
constint&spread[])
Anche se voglio visualizzare il valore sullo schermo?
E tutto questo viene fatto correttamente in una procedura
intOnCalculate(constint rates_total,constint prev_calculated,
constdatetime&time[],
constdouble&open[],
constdouble&high[],
constdouble&low[],
constdouble&close[],
constlong&tick_volume[],
constlong&volume[],
constint&spread[])
Anche se voglio visualizzare il valore sullo schermo?