Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1023 1...101610171018101910201021102210231024102510261027102810291030...1503 Nuevo comentario Yury Smagin 2019.04.04 10:35 #10221 ¿Cómo puedo obtener los datos del indicador iMA en la "barra cero", es decir, obtener el valor del indicador en la barra actual? Si lo hago 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);} Al llamar ind_date.MA_CHART[0] Obtengo los datos de la barra anterior, no de la actual. Vladimir Karputov 2019.04.04 10:43 #10222 Yury Smagin: ¿Cómo obtengo los datos del indicador iMA en la "barra cero", es decir, para obtener el valor del indicador en la barra actual? Si lo hago Al llamar Obtengo los datos de la barra anterior, no de la actual.El conjunto necesita ArraySetAsSeries(ind_date.MA_CHART,true); y entonces el elemento con índice "0" en el array corresponderá a la barra DERECHA del gráfico. Yury Smagin 2019.04.04 11:03 #10223 Vladimir Karputov: La matriz debe ser y entonces el elemento de la matriz con índice "0" corresponderá a la barra de la DERECHA en el gráfico. Gracias. Alexey Viktorov 2019.04.04 13:05 #10224 Yury Smagin: ¿Cómo puedo obtener los datos del indicador iMA en la "barra cero", es decir, obtener el valor del indicador en la barra actual? Si lo hago Al llamar Obtengo los datos de la barra anterior, no de la actual.Como en aquella película, "tengo algunas dudas...". ¿No estás usando mi Asesor Experto para estudiar? No tienes que voltear la matriz. Basta con tomar el valor del segundo índice del array. ind_date.MA_CHART[2] User_mt5 2019.04.04 15:08 #10225 OBJPROP_BACK Lo he probado de las dos maneras. No funciona. No entiendo en absoluto cómo funciona. Independientemente del valor, los objetos se muestran simplemente en el orden en que se formaron: el último es más alto. ¿Y cómo puedo ajustar el nivel (capa) de un objeto si hay más de dos? ¿Tal vez haya otros ajustes? Por favor, dígame si lo sabe. ¿Qué paga un cliente FOREX - Tendencias, previsiones Cualquier pregunta de los Yury Smagin 2019.04.05 10:53 #10226 Alexey Viktorov: Como en esa película, "tengo dudas..." ¿No es mi asesor el que está usando para estudiar? No tienes que voltear la matriz. Simplemente toma el valor del segundo índice del array. Gracias. kopeyka2 2019.04.05 14:43 #10227 Buenos días a todos)) ¿Podría decirme por qué hay una diferencia en los resultados? //+------------------------------------------------------------------+ //| 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); } //+------------------------------------------------------------------+ PREGUNTA: ¿qué he escrito mal en la segunda versión de los cálculos de MA? Gracias))) Aleksey Vyazmikin 2019.04.06 17:39 #10228 Al optimizar, ¿se construyen los objetos gráficos de forma que puedan leerse en el gráfico? Artyom Trishkin 2019.04.06 17:53 #10229 Aleksey Vyazmikin: Al optimizar, ¿se construyen los objetos gráficos de manera que puedan leerse desde el gráfico?No Aleksey Vyazmikin 2019.04.06 17:54 #10230 Artyom Trishkin: NoMalamente... 1...101610171018101910201021102210231024102510261027102810291030...1503 Nuevo comentario
¿Cómo puedo obtener los datos del indicador iMA en la "barra cero", es decir, obtener el valor del indicador en la barra actual?
Si lo hago
Al llamar
ind_date.MA_CHART[0]Obtengo los datos de la barra anterior, no de la actual.
¿Cómo obtengo los datos del indicador iMA en la "barra cero", es decir, para obtener el valor del indicador en la barra actual?
Si lo hago
Al llamar
Obtengo los datos de la barra anterior, no de la actual.
El conjunto necesita
y entonces el elemento con índice "0" en el array corresponderá a la barra DERECHA del gráfico.
La matriz debe ser
y entonces el elemento de la matriz con índice "0" corresponderá a la barra de la DERECHA en el gráfico.
¿Cómo puedo obtener los datos del indicador iMA en la "barra cero", es decir, obtener el valor del indicador en la barra actual?
Si lo hago
Al llamar
Obtengo los datos de la barra anterior, no de la actual.
Como en aquella película, "tengo algunas dudas...". ¿No estás usando mi Asesor Experto para estudiar?
No tienes que voltear la matriz. Basta con tomar el valor del segundo índice del array.
ind_date.MA_CHART[2]OBJPROP_BACK
Lo he probado de las dos maneras. No funciona. No entiendo en absoluto cómo funciona.
Independientemente del valor, los objetos se muestran simplemente en el orden en que se formaron: el último es más alto.
¿Y cómo puedo ajustar el nivel (capa) de un objeto si hay más de dos? ¿Tal vez haya otros ajustes? Por favor, dígame si lo sabe.
Como en esa película, "tengo dudas..." ¿No es mi asesor el que está usando para estudiar?
No tienes que voltear la matriz. Simplemente toma el valor del segundo índice del array.
Gracias.
Buenos días a todos))
¿Podría decirme por qué hay una diferencia en los resultados?
PREGUNTA: ¿qué he escrito mal en la segunda versión de los cálculos de MA?
Gracias)))
Al optimizar, ¿se construyen los objetos gráficos de manera que puedan leerse desde el gráfico?
No
No
Malamente...