Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 134
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
Há um problema com o Consultor Especialista no testador. Estou testando com dados de 1 minuto. Eu mesmo calculo o estocástico para o TF superior usando os dados mínimos.
A história das atas tem sido baixada desde 2001. Na aba "Gráficos", definir o número máximo de barras no histórico, e exibido.
Toda a história no gráfico é percorrida.
O problema é que, como ficou demonstrado com a impressão de depuração, não importa a partir de que data eu inicie o testador, o número máximo de barras
na variável Bars na primeira barra do teste (no início) é sempre 1001 ou 1002. O valor das barras aumenta em 1 a cada barra seguinte.
Portanto, é impossível calcular a TF mais alta no início.
Há uma solução. Devemos acrescentar uma proibição de comercialização antes que as barras atinjam o valor desejado.
Podemos resolver este problema de outra forma? Este valor inicial de barras no testador aumenta de alguma forma?
Há um problema com o Consultor Especialista no testador. Estou testando com dados de 1 minuto. Eu mesmo calculo o estocástico para o TF superior usando os dados mínimos.
A história das atas tem sido baixada desde 2001. Na aba "Gráficos", definir o número máximo de barras no histórico, e exibido.
Toda a história no gráfico é percorrida.
O problema é que, como ficou demonstrado com a impressão de depuração, não importa a partir de que data eu inicie o testador, o número máximo de barras
na variável Bars na primeira barra do teste (no início) é sempre 1001 ou 1002. O valor das barras aumenta em 1 a cada barra seguinte.
Portanto, é impossível contar os TFs mais altos no início.
Há uma solução. Devemos acrescentar uma proibição de comercialização antes que as barras atinjam o valor desejado.
Podemos resolver este problema de outra forma? Este valor inicial de barras no testador aumenta de alguma forma?
P.S. Eu apertei o botão de compilação.
Preciso realmente entender o algoritmo para calcular a média móvel suavizada. Há várias razões pelas quais a função iMA não é adequada.
Como entendi as informações de https://www.metatrader5.com/ru/terminal/help/indicators/trend_indicators/ma#smma
O primeiro elemento é calculado como a soma dos preços de fechamento divididos pelo período.
Os seguintes são calculados de acordo com a fórmula SMMA (i) = (SMMA (i - 1) * (N - 1) + CLOSE (i)) / N.
Vamos tomar um período de 5 e os preços de fechamento de EUR/USD H1 para o período de 24.02.2017 19:00 a 24.02.2017 23:00 (GMT+2), ou seja, as últimas 5 velas
Os preços de fechamento são 1,05681; 1,05702; 1,05639; 1,05612; 1,05592.
Correspondentemente, 1º elemento - 1.056452; 2º elemento - 1.056852 3º elemento - 1.05676 4º elemento - 1.056632 5º elemento - 1.056489
Mas no gráfico SMMA 5, fechar é 1,05706, ou seja, a diferença já está no 3º dígito
O que eu estou contando errado?
E como devo calcular corretamente para obter 1.05706?
Preciso realmente entender o algoritmo para calcular a média móvel suavizada. Há várias razões pelas quais a função iMA não é adequada.
Como entendi as informações de https://www.metatrader5.com/ru/terminal/help/indicators/trend_indicators/ma#smma
O primeiro elemento é calculado como a soma dos preços de fechamento divididos pelo período.
Os seguintes são calculados de acordo com a fórmula SMMA (i) = (SMMA (i - 1) * (N - 1) + CLOSE (i)) / N.
Vamos tomar um período de 5 e os preços de fechamento de EUR/USD H1 para o período de 24.02.2017 19:00 a 24.02.2017 23:00 (GMT+2), ou seja, as últimas 5 velas
Os preços de fechamento são 1,05681; 1,05702; 1,05639; 1,05612; 1,05592.
Correspondentemente, 1º elemento - 1.056452; 2º elemento - 1.056852 3º elemento - 1.05676 4º elemento - 1.056632 5º elemento - 1.056489
Mas no gráfico SMMA 5, fechar é 1,05706, ou seja, a diferença já está no 3º dígito
O que eu estou contando errado?
E como devo calcular corretamente para obter 1.05706?
Cavalheiros desenvolvedores! Bom dia para todos. Estou interessado na questão da criação de um modelo para um Expert Advisor (roteiro) ao criá-lo. Pode ser editado em algum lugar e como é feito?
Olhe para o próprio indicador, ele fará mais sentido.
duplo SMMA(período int)
{
//envasto com preços de fechamento
int k=período;
for(int i=1; i<=período; i++)
{
H1_Close[i]=Close[k];
// Imprimir("H1_Fechar [",i,"] ",H1_Fechar[i]," Fechar [",k,"] ",Fechar[k]);
k--;
}
//calcule o primeiro elemento como o preço médio de fechamento
soma dupla=0;
para (int i=1; i<=período;i+++)
Summ=Summ+H1_Fechar[i]; //SUM1 = SUM(FECHADO, N)
duplo TmpSMMA=Soma/período; //SMMA1 = SUM1/N
//calcule o i-ésimo elemento como SMMA (i) = (SMMA (i - 1) * (N - 1) + CLOSE (i)) / N
for(int i=2;i<=período;i++)
TmpSMMA=(TmpSMMA*(período-1)+H1_Fechar[i])/período;
}
O resultado ainda é muito diferente dos dados indicadores no terminal. POR QUE ?
Preciso realmente entender o algoritmo para calcular a média móvel suavizada. Há várias razões pelas quais a função iMA não é adequada.
Como entendi as informações de https://www.metatrader5.com/ru/terminal/help/indicators/trend_indicators/ma#smma
O primeiro elemento é calculado como a soma dos preços de fechamento divididos pelo período.
Os seguintes são calculados de acordo com a fórmula SMMA (i) = (SMMA (i - 1) * (N - 1) + CLOSE (i)) / N.
Vamos tomar um período de 5 e os preços de fechamento de EUR/USD H1 para o período de 24.02.2017 19:00 a 24.02.2017 23:00 (GMT+2), ou seja, as últimas 5 velas
Os preços de fechamento são 1,05681; 1,05702; 1,05639; 1,05612; 1,05592.
Correspondentemente, 1º elemento - 1.056452; 2º elemento - 1.056852 3º elemento - 1.05676 4º elemento - 1.056632 5º elemento - 1.056489
Mas no gráfico SMMA 5, fechar é 1,05706, ou seja, a diferença já está no 3º dígito
O que eu estou contando errado?
E como devo calcular corretamente para obter 1.05706?
Há um algoritmo de cálculo no inluder.
Eu escrevi o código da função na resposta de Vitaly Muzichenko , mas não consigo descobrir qual é o erro
Portanto, parece que estou fazendo tudo como nos cálculos, mas o resultado não sai. Estou sentado aqui pelo 4º dia e não consigo entender.
Eu escrevi o código da função na resposta de Vitaly Muzichenko , mas não consigo descobrir qual é o erro