![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Estou anexando o indicador solicitado.
Baseia-se na Média Móvel Personalizada da pasta com exemplos de indicadores.
Função de cálculo SMA sem alterações.
O GMA é calculado em uma função separada.
No final, calculamos sua diferença.
Estou anexando o indicador solicitado.
Baseia-se na Média Móvel Personalizada da pasta com exemplos de indicadores.
Função de cálculo SMA sem alterações.
O GMA é calculado em uma função separada.
No final, calculamos sua diferença.
Anexar o indicador solicitado.
Baseia-se na Média Móvel Personalizada da pasta com exemplos de indicadores.
A função de cálculo do SMA não foi alterada.
O GMA é calculado em uma função separada.
No final, calculamos sua diferença.
Obrigado! Você pode ver no gráfico acima que o indicador está cumprindo sua função. Ou não é? Ainda preciso trabalhar muito para entendê-lo melhor.
Pergunta: Qual é o período utilizado?
Não se pode ver nada, exceto o que se pode ver sem indicadores.
Período M1. Está escrito no canto esquerdo).
Eu não vejo nada, exceto o que você pode ver sem indicadores.
Obrigado! Pelo gráfico acima, você pode ver que o indicador está cumprindo sua função. Ou será que sim?
A propósito, favor verificar se o GMA está contando corretamente?
void CalculateGeometricalMA(int rates_total,int prev_calculated,int begin,const double &price[])
{
int i,limit;
//--- first calculation or number of bars was changed
double powr=1/(double)InpMAPeriod;
if(prev_calculated==0)// first calculation
{
limit=InpMAPeriod+begin;
//--- set empty value for first limit bars
for(i=0;i<limit-1;i++) gma[i]=1.0;
//--- calculate first visible value
double firstValue=1;
for(i=begin;i<limit;i++)
firstValue*=price[i];
firstValue=MathPow(firstValue, powr);
gma[limit-1]=firstValue;
}
else limit=prev_calculated-1;
//--- main loop
for(i=limit;i<rates_total && !IsStopped();i++){
gma[i]=gma[i-1] * (MathPow(price[i], powr) / MathPow(price[i-InpMAPeriod], powr));
}
//---
}
Não se pode ver nada, exceto o que se pode ver sem indicadores.
Período M1. Está escrito no canto esquerdo).
Porque, você não quer ver. Vejo que o indicador previu sem ambigüidade uma queda ainda mais cedo (no lado positivo) do que o preço realmente caiu.
Será?
Chegou até a olhar novamente.
Zy A derivado da MA teria dado a mesma coisa. Mesmo assim, também previu a direção).
O indicador conta o que é dado na fórmula. Mas interpretar os resultados é uma tarefa muito mais difícil.
A propósito, favor verificar se o GMA está correto?
void CalculateGeometricalMA(int rates_total,int prev_calculated,int begin,const double &price[])
{
int i,limit;
//--- first calculation or number of bars was changed
double powr=1/(double)InpMAPeriod;
if(prev_calculated==0)// first calculation
{
limit=InpMAPeriod+begin;
//--- set empty value for first limit bars
for(i=0;i<limit-1;i++) gma[i]=1.0;
//--- calculate first visible value
double firstValue=1;
for(i=begin;i<limit;i++)
firstValue*=price[i];
firstValue=MathPow(firstValue, powr);
gma[limit-1]=firstValue;
}
else limit=prev_calculated-1;
//--- main loop
for(i=limit;i<rates_total && !IsStopped();i++){
gma[i]=gma[i-1] * (MathPow(price[i], powr) / MathPow(price[i-InpMAPeriod], powr));
}
//---
}