Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 1023 1...101610171018101910201021102210231024102510261027102810291030...1503 Novo comentário Yury Smagin 2019.04.04 10:35 #10221 Como obter os dados do indicador iMA na "barra zero", ou seja, para obter o valor do indicador na barra actual? Se eu o fizer 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);} Ao telefonar ind_date.MA_CHART[0] Recebo os dados do bar anterior, não do actual. Vladimir Karputov 2019.04.04 10:43 #10222 Yury Smagin: Como obter os dados do indicador iMA na "barra zero", ou seja, para obter o valor do indicador na barra actual? Se eu o fizer Ao telefonar Recebo os dados do bar anterior, não do actual.A matriz precisa ArraySetAsSeries(ind_date.MA_CHART,true); e depois o elemento com índice "0" na matriz corresponderá à barra DIREITA no gráfico. Yury Smagin 2019.04.04 11:03 #10223 Vladimir Karputov: A matriz deve ser e depois o elemento da matriz com índice "0" corresponderá à própria barra DIREITA no gráfico. Obrigado! Alexey Viktorov 2019.04.04 13:05 #10224 Yury Smagin: Como obter os dados do indicador iMA na "barra zero", ou seja, para obter o valor do indicador na barra actual? Se eu o fizer Ao telefonar Recebo os dados do bar anterior, não do actual.Como nesse filme, "Tenho algumas dúvidas...". Não está a usar o meu Conselheiro Especialista para estudar? Não é necessário virar a matriz. É suficiente tomar o valor do segundo índice da matriz. ind_date.MA_CHART[2] User_mt5 2019.04.04 15:08 #10225 OBJPROP_BACK Experimentei-o de ambas as maneiras. Não funciona. Não compreendo de todo como funciona. Independentemente do valor, os objectos são simplesmente expostos na ordem em que foram formados - o último é mais alto. E como ajustar o nível (camada) de um objecto se houver mais de dois deles? Talvez haja outras configurações? Por favor, digam-me se sabem. Para a consideração dos [ARQUIVO!] Qualquer pergunta de Escreverei um conselheiro sem Yury Smagin 2019.04.05 10:53 #10226 Alexey Viktorov: Como nesse filme, "Tenho dúvidas..." Não é esse o meu conselheiro que está a utilizar para estudar: Não é necessário virar a matriz. Basta tomar o valor do segundo índice da matriz. Obrigado! kopeyka2 2019.04.05 14:43 #10227 Bom dia a todos vós)) Pode dizer-me, por favor, por que razão há uma diferença nos 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); } //+------------------------------------------------------------------+ PERGUNTA: o que é que escrevi mal na segunda versão dos cálculos da MA? Obrigado)))) Erros, bugs, perguntas Metatrader 5 para Google Sugestões, comentários, erros no Aleksey Vyazmikin 2019.04.06 17:39 #10228 Ao optimizar, os objectos gráficos são construídos para que possam ser lidos do gráfico? Artyom Trishkin 2019.04.06 17:53 #10229 Aleksey Vyazmikin: Ao optimizar, os objectos gráficos são construídos para que possam ser lidos a partir do gráfico?Não Aleksey Vyazmikin 2019.04.06 17:54 #10230 Artyom Trishkin: NãoMal... 1...101610171018101910201021102210231024102510261027102810291030...1503 Novo comentário
Como obter os dados do indicador iMA na "barra zero", ou seja, para obter o valor do indicador na barra actual?
Se eu o fizer
Ao telefonar
ind_date.MA_CHART[0]Recebo os dados do bar anterior, não do actual.
Como obter os dados do indicador iMA na "barra zero", ou seja, para obter o valor do indicador na barra actual?
Se eu o fizer
Ao telefonar
Recebo os dados do bar anterior, não do actual.
A matriz precisa
e depois o elemento com índice "0" na matriz corresponderá à barra DIREITA no gráfico.
A matriz deve ser
e depois o elemento da matriz com índice "0" corresponderá à própria barra DIREITA no gráfico.
Como obter os dados do indicador iMA na "barra zero", ou seja, para obter o valor do indicador na barra actual?
Se eu o fizer
Ao telefonar
Recebo os dados do bar anterior, não do actual.
Como nesse filme, "Tenho algumas dúvidas...". Não está a usar o meu Conselheiro Especialista para estudar?
Não é necessário virar a matriz. É suficiente tomar o valor do segundo índice da matriz.
ind_date.MA_CHART[2]OBJPROP_BACK
Experimentei-o de ambas as maneiras. Não funciona. Não compreendo de todo como funciona.
Independentemente do valor, os objectos são simplesmente expostos na ordem em que foram formados - o último é mais alto.
E como ajustar o nível (camada) de um objecto se houver mais de dois deles? Talvez haja outras configurações? Por favor, digam-me se sabem.
Como nesse filme, "Tenho dúvidas..." Não é esse o meu conselheiro que está a utilizar para estudar:
Não é necessário virar a matriz. Basta tomar o valor do segundo índice da matriz.
Obrigado!
Bom dia a todos vós))
Pode dizer-me, por favor, por que razão há uma diferença nos resultados?
PERGUNTA: o que é que escrevi mal na segunda versão dos cálculos da MA?
Obrigado))))
Ao optimizar, os objectos gráficos são construídos para que possam ser lidos a partir do gráfico?
Não
Não
Mal...