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
notei novamente, mesmo quando eu o executei a partir de 2009 na data atual (04.2014), a diferença entre o MA no gráfico e o ima no backtest ainda é de 0,10, então acho que a questão persiste. Farei minha própria função de substituição do iMa se todas as outras falharem. icustom ainda retorna apenas zeros no gráfico D1 mesmo a partir de 2009 e funcionando bem no gráfico H4.
analisando como funciona o indicador demédia móvel personalizado eu entendo porque existem problemas como esse.
Cada média móvel é contada de forma não crua contando o próximo quadro de média móvel do quadro anterior de média móvel em vez de apenas contar os quadros necessários (neste caso 370) para a equação. Dessa forma, se 1 quadro de MA estiver incorreto, tudo o que se segue será também. Quanto mais longe do quadro de erro, menor será o erro. Poderia até funcionar corretamente se todos os quadros desde o início fossem contados corretamente, mas notei algumas vezes que o iMA no início reporta zeros (tenho um procedimento para descartar leituras erradas de MA, mas o próprio iMA não o faz) e esses zeros provavelmente também são levados em consideração ao contar os próximos quadros do iMA a partir dos quadros anteriores do iMA.
É por isso que quando comecei os testes anteriores em 2013 a diferença era maior, em 2012 era menor do que quando comecei em 2013, start=2011 ainda menor, e assim por diante. A diferença ainda era visível mesmo quando comecei os back-testes a partir de 2009, portanto é um problema sério.
Confirmei anteriormente que há um problema com o modo SMMA, acho que você já relatou isso ao Service Desk ? Outros modos me parecem bem.
im terminei de escrever meu próprio procedimento de substituição do iMA para que eu possa documentar e entender completamente o assunto. (não apenas por comparação visual, como feito neste tópico).
Os resultados do ima, minha substituição ima e os resultados médios móveis personalizados estarão disponíveis no log para comparação.
PS. Se você confirmar o erro, estou relatando agora. (acrescentarei um novo comentário neste tópico quando o problema for relatado). O site (ou minha internet) funciona muito lentamente no momento, então estou tendo problemas até mesmo para chegar à página do Service Desk.Pensei que outros tipos de MA também fossem afetados, mas fiz mais testes e o SSMA parece ser o único afetado, como você disse.
mas notei o problema do iCustom. Roteiro para testar os problemas do SSMA e do iCustom:
analisando como funciona o indicador de média móvel personalizado eu entendo porque existem problemas como esse.
Cada média móvel é contada de forma não crua contando o próximo quadro de média móvel do quadro anterior de média móvel em vez de apenas contar os quadros necessários (neste caso 370) para a equação. Dessa forma, se 1 quadro de MA estiver incorreto, tudo o que se segue será também. Quanto mais longe do quadro de erro, menor será o erro. Poderia até funcionar corretamente se todos os quadros desde o início fossem contados corretamente, mas notei algumas vezes que o iMA no início reporta zeros (tenho um procedimento para descartar leituras erradas de MA, mas o próprio iMA não o faz) e esses zeros provavelmente também são levados em consideração ao contar os quadros seguintes do iMA a partir dos quadros anteriores do iMA.
É por isso que quando comecei os testes anteriores em 2013 a diferença era maior, em 2012 era menor do que quando comecei em 2013, start=2011 ainda menor, e assim por diante. A diferença ainda era visível mesmo quando comecei os back-testes a partir de 2009, portanto é um problema sério.
I don't see the problem. iMA is well coded for performance. If an iMA report a 0 it's because you don't have data (or enough data). By the way there is only a problem with SMMA, I don't know why, but it cannot be due to this "incremental" implementation as it's working well for other mode.
Sim, você está certo, seria muito mais lento. Mas o fato é que esta forma de contar mais alguns quadros vazios (zeros) no início resultaria em problemas como este. (é por isso que o iMA SSMA é sempre menor, não maior do que o SSMA acual) Eu sei que eu não verifico o que o iMA retorna, é por isso que eu recebo zeros no início ao invés de lidar corretamente com a falta de informações necessárias, mas essa é uma questão diferente.
Com TFs menores, há muito mais quadros analisados e o problema pode ser diluído com o tempo. A cada novo quadro o ima SSMA se aproxima cada vez mais do verdadeiro SSMA, então quanto mais barras passam, menos visível é o problema, é por isso que acho que ninguém notou isso antes. O mesmo problema que eu encontrei com 370 SSMA e PERÍODO_12H PERÍODO_8H, etc.
Se você tiver tempo, por favor, verifique a função iCustom. Eu anexei o código fonte para testá-lo facilmente. Verifique qualquer TF inferior que o PERIOD_D1 - iCustom funciona bem e retorne os mesmos valores que o iMA. No PERIOD_D1 são sempre zeros para iCustom, enquanto o iMA ainda reporta alguns valores.
O curioso é que quando você usa SSMA no máximo PERIOD_H12 tanto iMA como iCustom indicador de "média móvel personalizada" relatam valores defeituosos. (teste a partir de 2014.01 para ver a diferença)
O erro tem que estar em algum lugar aqui: (formar média móvel personalizada)
Observe que o primeiro valor é contado da mesma forma que no procedimento SMA:
como primeiro valor = (x1 + x2 + x3 + ... + xn) / n
que é a equação "bruta" para a média móvel simples, mas não a média móvel alisada
talvez seja essa a razão da questão?
desse site:
https://mahifx.com/indicators/smoothed-moving-average-smma
O primeiro valor para a Média Móvel Suavizada é calculado como uma Média Móvel Simples (SMA):
SOMA1=SUM (FECHAR, N)
SMMA1 = SOMA1/ N
A segunda e subsequentes médias móveis são calculadas de acordo com esta fórmula:
SMMA (i) = (SUM1 - SMMA1+CLOSE (i))/ N
Onde:
SUM1 - é a soma total dos preços de fechamento para N períodos;
SMMA1 - é a média móvel suavizada da primeira barra;
SMMA (i) - é a média móvel suavizada da barra atual (exceto a primeira barra);
CLOSE (i) - é o preço de fechamento atual;
N - é o período de alisamento.
Portanto, acho que o iMa e as médias móveis personalizadas o fazem da maneira correta. Mas cálculos como esse produzem os erros que encontramos resultando em enormes diferenças, dependendo dos períodos testados. É totalmente inaceitável para uma EA que está baseando seus negócios na média móvel. Acho que terei que eliminar o Smoothed MA por esse motivo do meu EA, pois ele produz resultados errados durante os testes de retaguarda. Mesmo que teste a partir do ano 2000 e acerte, os clientes podem testar a partir de 2013 e dizer "ele elimina a conta", porque eles receberão outro SSMA além do que eu recebi.
Mais uma cotação:
A SMMA dá aos preços recentes um peso igual aos preços históricos. O cálculo leva em conta todas as séries de dados disponíveis em vez de se referir a um período fixo.
É por isso que é diferente a cada vez que o período de testes de retaguarda muda.
Por favor, não responda dentro da citação. Como você vê, quando eu quero citar você, agora está vazia.
O algoritmo é bom para a SMMA, você tem que começar em algum lugar. Mas você aponta a origem do problema, já que o SMMA é construído sobre o valor anterior, é sensível à condição de início. Como você não tem a mesma vela de partida em um gráfico ao vivo e com o testador de estratégia que explica os diferentes valores.
O mesmo se aplica à EMA, depois de uma segunda verificação (em D1) agora também tenho valores diferentes, como para o SMMA.
desse site:
https://mahifx.com/indicators/smoothed-moving-average-smma
O primeiro valor para a Média Móvel Suavizada é calculado como uma Média Móvel Simples (SMA):
SOMA1=SUM (FECHAR, N)
SMMA1 = SOMA1/ N
A segunda e subsequentes médias móveis são calculadas de acordo com esta fórmula:
SMMA (i) = (SUM1 - SMMA1+CLOSE (i))/ N
Onde:
SUM1 - é a soma total dos preços de fechamento para N períodos;
SMMA1 - é a média móvel suavizada da primeira barra;
SMMA (i) - é a média móvel suavizada da barra atual (exceto a primeira barra);
CLOSE (i) - é o preço de fechamento atual;
N - é o período de alisamento.
Portanto, acho que o iMa e as médias móveis personalizadas o fazem da maneira correta. Mas cálculos como esse produzem os erros que encontramos resultando em enormes diferenças, dependendo dos períodos testados. É totalmente inaceitável para uma EA que está baseando seus negócios na média móvel. Acho que terei que eliminar o Smoothed MA por esse motivo do meu EA, pois ele produz resultados errados durante os testes de retaguarda. Mesmo que teste a partir do ano 2000 e acerte, os clientes podem testar a partir de 2013 e dizer "ele elimina a conta", porque eles receberão outro SSMA além do que eu recebi.
Obrigado pelo link. Isso confirma meu post anterior. É muito interessante, pois nunca presto atenção a tais coisas.
Ao verificar o algoritmo do EMA também é sensível a tal questão, não sei por que meu primeiro teste obteve os mesmos valores.