Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1023 1...101610171018101910201021102210231024102510261027102810291030...1504 Nuovo commento Yury Smagin 2019.04.04 10:35 #10221 Come posso ottenere i dati dell'indicatore iMA sulla "barra zero", cioè per ottenere il valore dell'indicatore sulla barra corrente? Se lo faccio int OnInit() {handle.MA_CHART=iMA(_Symbol,_Period,period_MA_CHART,0,Signal_MA_Method,Signal_MA_Applied);} void OnTick() {CopyBuffer(handle.MA_CHART, 0, 0, 3, ind_date.MA_CHART);} Quando si chiama ind_date.MA_CHART[0] Ottengo i dati della barra precedente, non di quella attuale. Vladimir Karputov 2019.04.04 10:43 #10222 Yury Smagin: Come posso ottenere i dati dell'indicatore iMA sulla "barra zero", cioè per ottenere il valore dell'indicatore sulla barra corrente? Se lo faccio Quando si chiama Ottengo i dati della barra precedente, non di quella attuale.L'array ha bisogno di ArraySetAsSeries(ind_date.MA_CHART,true); e quindi l'elemento con indice "0" nell'array corrisponderà alla barra DESTRA nel grafico. Yury Smagin 2019.04.04 11:03 #10223 Vladimir Karputov: L'array deve essere e quindi l'elemento della matrice con indice "0" corrisponderà alla barra molto DESTRA sul grafico. Grazie! Alexey Viktorov 2019.04.04 13:05 #10224 Yury Smagin: Come posso ottenere i dati dell'indicatore iMA sulla "barra zero", cioè per ottenere il valore dell'indicatore sulla barra corrente? Se lo faccio Quando si chiama Ottengo i dati della barra precedente, non di quella attuale.Come in quel film: "Ho qualche dubbio...". Non stai usando il mio Expert Advisor per studiare? Non c'è bisogno di girare la matrice. È sufficiente prendere il valore del secondo indice dell'array. ind_date.MA_CHART[2] Campionato di trading automatizzato Ricerca di modelli di Livelli di Fibonacci in User_mt5 2019.04.04 15:08 #10225 OBJPROP_BACK Provato in entrambi i modi. Non funziona. Non capisco affatto come funziona. Indipendentemente dal valore, gli oggetti sono semplicemente visualizzati nell'ordine in cui sono stati formati - l'ultimo è più alto. E come faccio a regolare il livello (layer) di un oggetto se ce ne sono più di due? Forse ci sono altre impostazioni? Per favore, ditemi se lo sapete. Cosa paga un cliente Errori, bug, domande [ARCHIVIO]Qualsiasi domanda da principiante, Yury Smagin 2019.04.05 10:53 #10226 Alexey Viktorov: Come in quel film, "Ho dei dubbi..." Non è il mio consigliere che stai usando per studiare? Non c'è bisogno di girare la matrice. Basta prendere il valore del secondo indice dell'array. Grazie! kopeyka2 2019.04.05 14:43 #10227 Buona giornata a tutti voi)) Potresti dirmi perché c'è una differenza nei risultati? //+------------------------------------------------------------------+ //| exponential moving average multytimeframes ДЛЯ БУФЕРА | //+------------------------------------------------------------------+ void CalculateExponentialMA(int rates_total,int prev_calculated,int begin,const double &price[]) { int i,limit; double SmoothFactor=2.0/(1.0+period_ma); //--- first calculation or number of bars was changed if(prev_calculated==0) { limit=period_ma+begin; ExtLineBuffer[begin]=price[begin]; for(i=begin+1;i<limit;i++) ExtLineBuffer[i]=price[i]*SmoothFactor+ExtLineBuffer[i-1]*(1.0-SmoothFactor); } else limit=prev_calculated-1; //--- main loop for(i=limit;i<rates_total && !IsStopped();i++) ExtLineBuffer[i]=price[i]*SmoothFactor+ExtLineBuffer[i-1]*(1.0-SmoothFactor); //--- } //+------------------------------------------------------------------+ //| exponential moving average ДЛЯ ТОЧКИ | //+------------------------------------------------------------------+ void CalculateEMA(int periodMA,int bgn) { int i,lmt=periodMA+bgn+1; double SmoothFactor=2.0/(1.0+periodMA); for(i=0;i<lmt;i++) BufferPrice[i]=0.0; switch(AppliedPrice) { case 1: BufferPrice[lmt]=iClose(NULL,Timeframes,lmt); break; case 2: BufferPrice[lmt]=iOpen(NULL,Timeframes,lmt); break; case 3: BufferPrice[lmt]=iHigh(NULL,Timeframes,lmt); break; case 4: BufferPrice[lmt]=iLow(NULL,Timeframes,lmt); break; default : BufferPrice[lmt]=iClose(NULL,Timeframes,lmt); break; } for(i=lmt-1;i>=0;i--) switch(AppliedPrice) { case 1: BufferPrice[i]=iClose(NULL,Timeframes,i)*SmoothFactor+BufferPrice[i+1]*(1.0-SmoothFactor); break; case 2: BufferPrice[i]=iOpen(NULL,Timeframes,i)*SmoothFactor+BufferPrice[i+1]*(1.0-SmoothFactor); break; case 3: BufferPrice[i]=iHigh(NULL,Timeframes,i)*SmoothFactor+BufferPrice[i+1]*(1.0-SmoothFactor); break; case 4: BufferPrice[i]=iLow(NULL,Timeframes,i)*SmoothFactor+BufferPrice[i+1]*(1.0-SmoothFactor); break; default : BufferPrice[i]=iClose(NULL,Timeframes,i)*SmoothFactor+BufferPrice[i+1]*(1.0-SmoothFactor); break; } MA=NormalizeDouble(BufferPrice[bgn],_Digits); } //+------------------------------------------------------------------+ DOMANDA: cosa ho scritto di sbagliato nella seconda versione dei calcoli MA? Grazie))) Aleksey Vyazmikin 2019.04.06 17:39 #10228 Quando si ottimizza, gli oggetti grafici sono costruiti in modo da poter essere letti dal grafico? Artyom Trishkin 2019.04.06 17:53 #10229 Aleksey Vyazmikin: Quando si ottimizza, gli oggetti grafici sono costruiti in modo da poter essere letti dal grafico?No Aleksey Vyazmikin 2019.04.06 17:54 #10230 Artyom Trishkin: NoMale... 1...101610171018101910201021102210231024102510261027102810291030...1504 Nuovo commento
Come posso ottenere i dati dell'indicatore iMA sulla "barra zero", cioè per ottenere il valore dell'indicatore sulla barra corrente?
Se lo faccio
Quando si chiama
ind_date.MA_CHART[0]Ottengo i dati della barra precedente, non di quella attuale.
Come posso ottenere i dati dell'indicatore iMA sulla "barra zero", cioè per ottenere il valore dell'indicatore sulla barra corrente?
Se lo faccio
Quando si chiama
Ottengo i dati della barra precedente, non di quella attuale.
L'array ha bisogno di
e quindi l'elemento con indice "0" nell'array corrisponderà alla barra DESTRA nel grafico.
L'array deve essere
e quindi l'elemento della matrice con indice "0" corrisponderà alla barra molto DESTRA sul grafico.
Come posso ottenere i dati dell'indicatore iMA sulla "barra zero", cioè per ottenere il valore dell'indicatore sulla barra corrente?
Se lo faccio
Quando si chiama
Ottengo i dati della barra precedente, non di quella attuale.
Come in quel film: "Ho qualche dubbio...". Non stai usando il mio Expert Advisor per studiare?
Non c'è bisogno di girare la matrice. È sufficiente prendere il valore del secondo indice dell'array.
ind_date.MA_CHART[2]OBJPROP_BACK
Provato in entrambi i modi. Non funziona. Non capisco affatto come funziona.
Indipendentemente dal valore, gli oggetti sono semplicemente visualizzati nell'ordine in cui sono stati formati - l'ultimo è più alto.
E come faccio a regolare il livello (layer) di un oggetto se ce ne sono più di due? Forse ci sono altre impostazioni? Per favore, ditemi se lo sapete.
Come in quel film, "Ho dei dubbi..." Non è il mio consigliere che stai usando per studiare?
Non c'è bisogno di girare la matrice. Basta prendere il valore del secondo indice dell'array.
Grazie!
Buona giornata a tutti voi))
Potresti dirmi perché c'è una differenza nei risultati?
DOMANDA: cosa ho scritto di sbagliato nella seconda versione dei calcoli MA?
Grazie)))
Quando si ottimizza, gli oggetti grafici sono costruiti in modo da poter essere letti dal grafico?
No
No
Male...