Estratégias comerciais baseadas em filtros digitais - página 73
![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
Faixas de freqüência
Simba,
Como qualquer componente cíclico no sinal final (digamos H1) deve ter estado no sinal M1 original, mas com uma melhor relação sinal/ruído, me parece que se deve usar o sinal M1 para extrair componentes cíclicos. É claro que o problema com isto é que aqueles componentes que estão em períodos de, digamos, 20 horas serão muito difíceis de extrair dos dados M1 porque o período M1 exigirá 60 vezes mais amostras no M1. Por outro lado, pode haver muitos componentes que estão em altas freqüências na série M1, que, por sinal na série H1, várias vezes causam mais picos do que realmente estão lá.
A única maneira simples de investigar isto é olhar o espectro de um sinal M1 e de um sinal H1 durante o mesmo período (absoluto), por exemplo, 200 horas ou mais. Isto não pode ser feito com as ferramentas R_MESA atualmente disponíveis porque o comprimento requerido no M1 excede a capacidade do algoritmo como codificado.
MadCow...Madcow,
Sim a ambos,deve-se usar o sinal M1 e compará-lo com o H1,M5,15,M30...no mesmo período absoluto...foi exatamente o que eu fiz(começando por M5) e mostrei nas fotos
...Eu digitalizei 540 barras h1 em h1,m30(1080 barras m30),m15,m5....para a mesma faixa de freqüências absolutas H1 1/90 a 1/180...assim, procurei ciclos com periodicidade de 90 a 180 períodos H1(180 a 360 m30 períodos,etc,etc)...e encontrei os mesmos 2 ciclos em todos os intervalos de tempo.
Se eu refaço o scan para procurar os ciclos de 8 a 80 períodos h1, em um intervalo absoluto de 240 h1 barras, o que encontrarei é uma imagem muito diferente, cada período está me devolvendo um número diferente de ciclos, períodos, amplitudes e fases... é uma bagunça intransferível como você pode ver na figura....Então, usando as bandas de freqüência certas, aquelas que lhe devolvem ciclos claros é uma das chaves do trabalho com ciclos... para isso, você precisa de um scanner que possa digitalizar pelo menos 7k -9k m1 bares e lhe devolva períodos cíclicos de até 2k -3k m1 bares.
Ciclos fractais... Basicamente:O número de iterações ou passagem de tempo antes de uma repetição fractal(caveat emptor:Pode repetir no mesmo OU em um tempo diferente).... as linhas verticais na pic marcam as iterações posteriores de um ciclo fractal,fractal é 22 ou 23 barras(é fractal
)...BTW,no final da sexta-feira completamos uma iteração fractal...Estou extremamente intrigado com o movimento direcional de abertura de hoje para as próximas 22 barras.
http://www.elliottfractals.com/triggers/
Macroeconomia de Saturação não estocástica Lammert: Julho de 2005 Macroeconomia da Saturação Nonstocástica - Uma Nova Ciência
Cumprimentos
S
Simba,
Li as coisas de Lammert, e até agora não posso fazer cabeças ou rabos delas. Parece muito com a astrologia, mas muitas pessoas acreditam nele aparentemente, então tenho que cavar mais fundo. Ele parece usar a definição de fractal usada no MT4 "fractal.mq4", essencialmente extrema. Como isso se relaciona aos ciclos fractais?
Mas deixe-me começar a provar a minha utilidade:
1. Não utilize a série de preços TF mais altos ao procurar componentes cíclicos. Eles serão mais ruidosos que o M1. Você parece já estar fazendo isso... Que tal o resto do fórum?
2. Use um filtro anti-aliasing nos dados M1 e subamostra sua saída para reduzir a complexidade computacional na busca de componentes cíclicos de longa periodicidade. Combine o filtro aa com as freqüências que você procura.
3. Não "achatar" a série de preços ao aplicar o FFT ou Geortzel.
Os dois primeiros itens que discuti acima.
Considere o terceiro. Pode-se mostrar que o periodograma é o detector de máxima probabilidade de um sinusoidal em ruído gaussiano branco estacionário. Eu sei que o ruído FX não é estacionário, branco ou mesmo gaussiano, mas ainda há um argumento de que o periodograma é uma coisa boa de se usar. O periodograma é essencialmente o quadrado da transformação de Fourier do sinal, e sofre com o fato de que sua variância não diminui à medida que o comprimento da seqüência processada aumenta. Quando é usado para estimar a densidade espectral, os dados são janelados para reduzir este efeito de "ponto final". Mas estamos interessados em detectar o componente, não em estimar o espectro. Se utilizássemos um conjunto de filtros passa-banda para encontrar o sinal, não acharíamos o primeiro ponto final aplanando a série de preços. Isso seria claramente contraproducente, uma vez que diminuiria o peso das amostras mais recentes. Portanto, não aplanar o ponto final da série de preços antes de aplicar o FFT ou Geortzel.
4. Os FFT ou Geortzel são equivalentes quando ajustados para resolução. O Geortzel é mais eficiente ao pesquisar sobre um pequeno conjunto de freqüências. Use-as intercambiavelmente, dependendo da eficiência computacional determinada pela banda que está sendo pesquisada e da resolução necessária.
5. O MESA é bom para estimar o espectro, e em alguns casos (particularmente para sinusoidais com tempo variável) pode ser melhor do que o FFT. Entretanto, estimar o espectro e detectar sinusoides são tarefas diferentes, e se o sinusoide durar o FFT, a MESA não é melhor que o FFT no sentido da máxima probabilidade, e muito provavelmente não tão boa. Portanto, use o FFT e combine a sua resolução com a duração esperada do sinusoidal. Esqueça a MESA, apesar do excelente software do RC.
Estas são apenas minhas opiniões, mas elas podem ser apoiadas matematicamente se o modelo for simplificado, como foi dito. Também sei que nem todos concordarão, e que RC e Ehlers discordariam particularmente, mas estou apenas tentando ser útil conforme solicitado.
Cumprimentos ...MadCow...Não sei sobre o resto do Fórum, alguns deles podem estar fazendo algumas coisas interessantes, outros provavelmente vão esperar para serem alimentados com uma colher.
Cumprimentos
S
Simba,
Li as coisas de Lammert, e até agora não posso fazer cabeças ou rabos delas. Parece muito com a astrologia, mas muitas pessoas acreditam nele aparentemente, então tenho que cavar mais fundo. Ele parece usar a definição de fractal usada no MT4 "fractal.mq4", essencialmente extrema. Como isso se relaciona aos ciclos fractais?
Cumprimentos ...MadCow...
Comprimento variável Goertzel
Quero pedir desculpas por editar abruptamente meu post anterior. (Você pode lê-lo na íntegra na resposta de Simba'a). Minha razão era que eu havia descoberto que o ponto final não era o que eu pensava. Ele apenas fixa os dois pontos finais em 0 e adiciona uma pequena quantidade a cada amostra entre eles para compensar isso. Essencialmente adiciona um componente de período muito longo, que podemos ignorar. Ele não distorce a saída de corrente para uma freqüência suficientemente alta. Também estava escrevendo mal Goertzel.![](https://c.mql5.com/forextsd/smiles/embaressed_smile.png)
E não sinto mais que o FFT ou Goertzel é a melhor maneira de encontrar componentes cíclicos.
Ao olhar o achatamento do ponto final e o algoritmo Goertzel, descobri que pode haver uma melhor maneira de encontrar o conteúdo espectral quando nosso objetivo é usar o espectro estimado para prever as próximas amostras. Podemos querer usar filtros Goertzel de comprimento variável em vez dos filtros de comprimento fixo em todas as implementações Goertzel. A figura em anexo mostra a diferença entre o Goertzel de comprimento fixo implementado como Goertzel_v1.mq4 e um Goertzel de comprimento variável. Uma grande diferença.
Eu tenho o hábito de escrever notas para mim mesmo enquanto analiso um problema. À medida que envelheço, descubro que isto ajuda com problemas de recall a curto prazo, que me atormentam (daí MadCow...).
O documento anexo é meu conjunto de notas sobre a Goertzel de comprimento variável, e por que eu o prefiro. Eu apreciaria qualquer feedback.variable_length_goertzel_filters.doc
Cumprimentos ...MadCow...
Feedback
Quero pedir desculpas por editar abruptamente meu post anterior. (Você pode lê-lo na íntegra na resposta de Simba'a). Minha razão era que eu tinha descoberto que o ponto final não era o que eu pensava. Ele apenas fixa os dois pontos finais em 0 e adiciona uma pequena quantidade a cada amostra entre eles para compensar isso. Essencialmente adiciona um componente de período muito longo, que podemos ignorar. Ele não distorce a saída de corrente para uma freqüência suficientemente alta. Também estava escrevendo mal Goertzel.
E eu não sinto mais que o FFT ou Goertzel é a melhor maneira de encontrar componentes cíclicos.
Ao olhar o achatamento do ponto final e o algoritmo Goertzel, descobri que pode haver uma melhor maneira de encontrar o conteúdo espectral quando nosso objetivo é usar o espectro estimado para prever as próximas amostras. Podemos querer usar filtros Goertzel de comprimento variável em vez dos filtros de comprimento fixo em todas as implementações Goertzel. A figura em anexo mostra a diferença entre o Goertzel de comprimento fixo implementado como Goertzel_v1.mq4 e um Goertzel de comprimento variável. Uma grande diferença.
Eu tenho o hábito de escrever notas para mim mesmo enquanto analiso um problema. À medida que envelheço, descubro que isto ajuda com problemas de recall a curto prazo, que me atormentam (daí MadCow...).
O documento anexo é meu conjunto de notas sobre a Goertzel de comprimento variável, e por que eu o prefiro. Gostaria de receber qualquer feedback.variable_length_goertzel_filters.doc
Cumprimentos ...MadCow...MadCow,
Como eu vejo em seu .doc
1-A base de todo o seu pensamento é que Goertzel precisa de 3*max taxas de amostragem por período, portanto, se você quiser pesquisar ciclos de até 200 períodos, você precisa de pelo menos 600 amostras... Certo.
2-Consequentemente, os ciclos de baixa periodicidade (alta freq) podem não ser representativos do que realmente está acontecendo no momento...exemplo, um ciclo de 13 barras encontrado em um intervalo das últimas 600 barras pode não estar lá agora, e, sim, você está absolutamente certo.
3-Conceptualmente, porém, pode haver uma solução mais simples, que é apenas varrer separadamente várias faixas de freqüência... assim, se você quiser confirmar o ciclo de 13 períodos que encontrou, você tem que refazer uma varredura nas últimas 39 barras... ou, melhor ainda, fazer uma varredura nas últimas 60 barras para ciclos com freqs de 1/10 a 1/5.
Conclusão... você precisa fazer varreduras diferentes... isto foi sugerido por JM Hurst em seu curso de 1600 páginas, e explicado por Brian Millard em detalhes.... ou, você pode construir um scanner multifreq, multispan que escaneia em "blocos" de "período máximo vs duração da varredura" relacionados... que será realmente original e inovador![](https://c.mql5.com/forextsd/smiles/wink.png)
Cumprimentos
S
MadCow,
Como eu vejo em seu .doc
1-A base de todo o seu pensamento é que Goertzel precisa de 3*max taxas de amostragem por período, portanto, se você quiser pesquisar ciclos de até 200 períodos, você precisa de pelo menos 600 amostras... Certo.
2-Consequentemente, os ciclos de baixa periodicidade (alta freq) podem não ser representativos do que realmente está acontecendo no momento...exemplo, um ciclo de 13 barras encontrado em um intervalo das últimas 600 barras pode não estar lá agora, e, sim, você está absolutamente certo.
3-Conceptualmente, porém, pode haver uma solução mais simples, que é apenas varrer separadamente várias faixas de freqüência... assim, se você quiser confirmar o ciclo de 13 períodos que encontrou, você tem que refazer uma varredura nas últimas 39 barras... ou, melhor ainda, fazer uma varredura nas últimas 60 barras para ciclos com freqs de 1/10 a 1/5.
Conclusão... você precisa fazer varreduras diferentes... isto foi sugerido por JM Hurst em seu curso de 1600 páginas, e explicado por Brian Millard em detalhes.... ou, você pode construir um scanner multifreq, multispan que escaneia em "blocos" de "período máximo vs duração da varredura" relacionados... que será realmente original e inovador![](https://c.mql5.com/forextsd/smiles/wink.png)
Cumprimentos
SClaramente, você está muito à minha frente nisto. É bom ter a confirmação de que ainda consigo pensar de forma lógica.
Eu olhei para o uso de varreduras diferentes, e decidi que tentar encontrar ciclos curtos em blocos longos poderia perdê-los, então eu poderia nunca mais voltar para confirmar que eles estavam lá. Também seria necessário muito cálculo extra para olhar muitos blocos. Então olhei para o código e decidi que poderia modificar o código Goertzel_v1 para fazer o scanner multifreq, multispan diretamente. O código na verdade é mais simples e leva menos ciclos de computação do que o original _v1. Inovação, ou apenas sorte? O Goertzel_v1 modificado (agora _v2) foi usado no meu post anterior.
Em anexo estão duas modificações, _v2 faz o trabalho sem aplanar o ponto final, embora possa ser adicionado removendo alguns comentários no código. O _v3 faz todo o trabalho incluindo o achatamento do ponto final para cada bloco/período. Você pode variar o número mínimo de ciclos a serem procurados utilizando a variável numérica. Isto muda a resolução dos filtros, com mais ciclos dando melhor resolução, mas exigindo mais amostras, permitindo assim que os sinais passados interfiram com os sinais atuais. Você também pode usar o preço mediano ao invés do fechamento, definindo a perda de uso como falsa. Não faz nenhuma diferença que eu possa ver.
Minhas habilidades de codificação estão bastante enferrujadas, então pode haver um problema de codificação com o ponto final achatado, mas acho que não. Se não houver problema de codificação, então a EPF não ajuda na digitalização multi-freq.
Os próximos passos que vou tomar são decidir como selecionar os componentes a serem usados para a previsão, e como estimar a longevidade da previsão. Estou inclinado a usar uma medida do SNR em cada filtro com um pico para selecionar picos, em vez de apenas a amplitude, mas ainda não tenho nenhuma pista sobre a longevidade da previsão... talvez a experimentação ajude. Alguma sugestão?
Cumprimentos ... MadCow...
goertzel_v3.mq4[/ATTACH]
Sugestões
Claramente, você está muito à minha frente nisto. É bom ter a confirmação de que ainda consigo pensar de forma lógica.
Olhei para o uso de varreduras diferentes e decidi que tentar encontrar ciclos curtos em longos blocos poderia perdê-los, então eu poderia nunca mais voltar para confirmar que eles estavam lá. Também seria necessário um grande número de cálculos extras para olhar muitos quarteirões. Então olhei para o código e decidi que poderia modificar o código Goertzel_v1 para fazer o scanner multifreq, multispan diretamente. O código na verdade é mais simples e leva menos ciclos de computação do que o original _v1. Inovação, ou apenas sorte? O Goertzel_v1 modificado (agora _v2) foi usado no meu post anterior.
Em anexo estão duas modificações, _v2 faz o trabalho sem aplanar o ponto final, embora possa ser adicionado removendo alguns comentários no código. O _v3 faz todo o trabalho incluindo o achatamento do ponto final para cada bloco/período. Você pode variar o número mínimo de ciclos a serem procurados utilizando a variável numérica. Isto muda a resolução dos filtros, com mais ciclos dando melhor resolução, mas exigindo mais amostras, permitindo assim que os sinais passados interfiram com os sinais atuais. Você também pode usar o preço mediano ao invés do fechamento, definindo a perda de uso como falsa. Não faz nenhuma diferença que eu possa ver.
Minhas habilidades de codificação estão bastante enferrujadas, então pode haver um problema de codificação com o ponto final achatado, mas acho que não. Se não houver problema de codificação, então a EPF não ajuda na digitalização multi-freq.
Os próximos passos que vou tomar são decidir como selecionar os componentes a serem usados para a previsão, e como estimar a longevidade da previsão. Estou inclinado a usar uma medida do SNR em cada filtro com um pico para selecionar picos, em vez de apenas a amplitude, mas ainda não tenho nenhuma pista sobre a longevidade da previsão... talvez a experimentação ajude. Alguma sugestão?
Cumprimentos ... MadCow...
goertzel_v3.mq4[/ATTACH]MadCow,
1-Como decidir que componentes tomar para previsão:Use 3 de sua v3, defina cada um deles para (MaxPer-MinPeriod):50-10,100-50,200-100.
2- Em seguida, selecione apenas um ciclo por v3, aquele com a maior amplitude.
3- Em seguida, usando, periodicidade, amplitude e fase de cada um dos 3 ciclos, adicione-os a um composto.
4-Comprimento da previsão?...Além de computar o expoente Lyapunov
? regra geral,IMO,é usar de um terço a metade das barras do ciclo mais curto...
Agora,você pode querer acreditar em mim ou não,e,sinceramente,você não tem nenhuma razão,porque eu não vou explicar porque,além de dizer a você que eu estive lá e fiz isso...
5-SNR: Esqueça... Não funciona, você pode tentar quantas maneiras quiser... não funcionam para selecionar bons ciclos.
6-Usando TODOS os ciclos?...;)...Experimente e você começará a acreditar em mim...NÃO FUNCIONA...o comprimento da previsão será inferior a 1 barra.
7-Usando 3 ciclos, mas apenas os de maior amplitude de 10 a 200? pode funcionar, geralmente não funciona, você acabará perdendo todos os curtos ciclos de periodicidade.
8- Você quer usar muitos ciclos? não funciona, mas pode funcionar se você usar amplitudes quadradas, em qualquer caso, não use mais de 8 ciclos.
Agora... o melhor conselho que posso lhe dar... De longe, a melhor maneira de comercializar (não prever) estes ciclos é fazer como escrevi nos números 1 e 2 e depois...
9- Apenas negocie em 3 ciclos de alinhamento (esqueça os compósitos)...eu uso fases em graus e não em radianos, então quando os 3 ciclos se alinham acima de 180 graus, você pode esperar um upmove, quando se alinham entre 0 e 179 graus você pode esperar um downmove...na prática, a regra que eu uso é acima de 180 e abaixo de 270(para longas)...e acima de 0 e abaixo de 90(para curtas)...então,uma vez que você tenha o alinhamento,aguarde a confirmação do preço,especialmente as quebras de linha de tendência,antes de entrar na negociação,use um alvo relacionado ao ATR do prazo que você está negociando e use uma parada abaixo da baixa/abaixo da alta anterior...se o TP for > do que o SL então pegue a negociação,se não for,então passe....Oh,e um pequeno detalhe,sempre negocie na direção do prazo maior![](https://c.mql5.com/forextsd/smiles/wink.png)
Cumprimentos
S
Link sobre Hurst
Link interessante... http://wintrend. com/Reports/TCPToday.pdf
A propósito...16 de outubro é a data da virada para sp500,depois 2 de novembro e depois,DA TOP...Entre 13 de novembro e 9 de dezembro(desculpe,data exata jut para instituições de caridade
)...sim,sim,o cara no relatório diz o contrário,mas ou ele ou eu estamos errados...adivinhe quem?...hahahhah...verifique 16 de outubro quando chegar e decida.
S
MadCow,
1-Como decidir que componentes tomar para previsão:Use 3 de sua v3, defina cada um deles para (MaxPer-MinPeriod):50-10,100-50,200-100.
2- Em seguida, selecione apenas um ciclo por v3, aquele com a maior amplitude.
3- Em seguida, usando, periodicidade, amplitude e fase de cada um dos 3 ciclos, adicione-os a um composto.
4-Comprimento da previsão?...Além de computar o expoente Lyapunov
? regra geral,IMO,é usar de um terço a metade das barras do ciclo mais curto...
Agora,você pode querer acreditar em mim ou não,e,sinceramente,você não tem nenhuma razão,porque eu não vou explicar porque,além de dizer-lhe que eu já estive lá e fiz isso...
5-SNR: Esqueça... Não funciona, você pode tentar quantas maneiras quiser... não funcionam para selecionar bons ciclos.
6-Usando TODOS os ciclos?...;)...Experimente e você começará a acreditar em mim...NÃO FUNCIONA...o comprimento da previsão será inferior a 1 barra.
7-Usando 3 ciclos, mas apenas os de maior amplitude de 10 a 200? pode funcionar, geralmente não funciona, você acabará perdendo todos os curtos ciclos de periodicidade .
8- Você quer usar muitos ciclos? não funciona, mas pode funcionar se você usar amplitudes quadradas, em qualquer caso, não use mais de 8 ciclos.
Agora... o melhor conselho que posso lhe dar... De longe, a melhor maneira de comercializar (não prever) estes ciclos é fazer como escrevi nos números 1 e 2 e depois...
9- Apenas negocie em 3 ciclos de alinhamento (esqueça os compósitos)...eu uso fases em graus e não em radianos, então quando os 3 ciclos se alinham acima de 180 graus, você pode esperar um upmove, quando se alinham entre 0 e 179 graus você pode esperar um downmove...na prática, a regra que eu uso é acima de 180 e abaixo de 270(para longas)...e acima de 0 e abaixo de 90(para curtas)...então,uma vez que você tenha o alinhamento,aguarde a confirmação do preço,especialmente as quebras de linha de tendência,antes de entrar na negociação,use um alvo relacionado ao ATR do prazo que você está negociando e use uma parada abaixo da baixa/abaixo da alta anterior...se o TP for > do que o SL então pegue a negociação,se não for,então passe....Oh,e um pequeno detalhe,sempre negocie na direção do prazo maior![](https://c.mql5.com/forextsd/smiles/wink.png)
Cumprimentos
SSimba...
Obrigado por sua generosidade. Acho que você me poupou muitos dias de busca infrutífera. Usarei as informações da melhor forma possível.
Há algumas coisas que devo explicar ao fórum no caso de alguém desejar usar _v2 ou _v3.
Primeiro, o cálculo de fases parece estar em contradição com a definição MT4 da função MathArctan. Eu ainda não testei o cálculo de fase, portanto, tenha cuidado ao usá-lo. Simplesmente o deixei como está em _v1.
Em segundo lugar, embora você possa selecionar componentes de vários blocos como Simba sugere, não há necessidade de dividir o espectro em vários blocos ao fazer o cálculo. Na verdade, você pode perder um componente importante na borda de um bloco, se fizer isso. Toda a periodicidade pode ser computada em uma única passagem, já que o comprimento do bloco é computado independentemente para cada período. Mas, como diz Simba, uma imagem vale mais que 1000 palavras. Aqui está o espectro computado em uma passagem, comparado com porções computadas em passagens separadas com periodicidade limitada.
Cumprimentos ...MadCow...
Bem-vindo
Simba...
Obrigado por sua generosidade. Acho que você me poupou muitos dias de busca infrutífera. Usarei as informações da melhor forma possível.
Há algumas coisas que devo explicar ao fórum no caso de alguém desejar usar _v2 ou _v3.
Primeiro, o cálculo de fases parece estar em contradição com a definição MT4 da função MathArctan. Eu ainda não testei o cálculo de fase, portanto, tenha cuidado ao usá-lo. Simplesmente o deixei como está em _v1.
Em segundo lugar, embora você possa selecionar componentes de vários blocos como Simba sugere, não há necessidade de dividir o espectro em vários blocos ao fazer o cálculo. Na verdade, você pode perder um componente importante na borda de um bloco, se fizer isso. Toda a periodicidade pode ser computada em uma única passagem, já que o comprimento do bloco é computado independentemente para cada período. Mas, como diz Simba, uma imagem vale mais que 1000 palavras. Aqui está o espectro computado em uma passagem, comparado com porções computadas em passagens separadas com periodicidade limitada.
![](https://c.mql5.com/forextsd/forum/65/spectral_hunks.jpg)
Cumprimentos ...MadCow...Bem-vindo,
Eu acho que se você não dividir o espectro em blocos, então você está morto... mas,ok,np...vamos ver daqui a alguns meses o que você pensa.
Eu vou de férias por 3 semanas, vou tentar manter contato uma vez por semana.
Cumprimentos
S