O grão está lá, mas é necessário um moinho adequado.
A idéia não é nova, procure na base de código e no fórum. Também nos indicadores fornecidos com o MT5.
// O nome inteligente "filtros digitais adaptáveis" significa basicamente a mesma coisa. Mais precisamente, ele generaliza um pouco a idéia.
Очень много индикаторов используют для рассчета своих значений так называемый "период". Обычно это количество баров которое учавствует в расчете очередного значения. Возьмем например RSI. Если очень грубо - этот индикатор показывает отношение длинны "пробега" цены вверх по отношению к аналогичной длине пробега цены вниз. При очень маленьких периодах получается жуткая болтанка, при очень длинных - нечто слабопульсирующее около нуля. Однако рынок не всегда равномерен. Точнее всегда не равномерен. После выхода новостей смены торговых сессий да еще на коротких таймах, чтобы поймать все движения период нужно выбирать не очень большой. С другой стороны во время длинного "затяжного" тренда (или флэта) этот период вполне разумно увеличить чтобы отслеживать тенденцию самого тренда, а не колебаний внутри его канала.
Кто нибудь пробовал строить индикаторы которые сами адаптируют длину периода под меняющиеся условия? Вот, например "здесь", когда какойто другой индикатор (или какието вычисления внутри текущего индикатора) в таком то диапазоне мы пропорционально сокращаем длинну перода для этого бара, а при таких то условиях (уже на другом баре) - наоборот увеличиваем.
Если да - то какие получались результаты? да и вообще - есть ли здравое зерно в этой идее (автоподстройки длинны периода)?
Eu tentei isto através da correlação com as harmônicas de referência,
Mas acontece que às vezes os períodos saltam acentuadamente e depois voltam ao inicial, estragando assim todo o quadro,
E além deste método é muito longo, se em tempo real ainda pode ser usado no testador, mas na otimização é um fracasso total,
Bem, em geral, é um tema promissor.
Очень много индикаторов используют для рассчета своих значений так называемый "период". Обычно это количество баров которое учавствует в расчете очередного значения. Возьмем например RSI. Если очень грубо - этот индикатор показывает отношение длинны "пробега" цены вверх по отношению к аналогичной длине пробега цены вниз. При очень маленьких периодах получается жуткая болтанка, при очень длинных - нечто слабопульсирующее около нуля. Однако рынок не всегда равномерен. Точнее всегда не равномерен. После выхода новостей смены торговых сессий да еще на коротких таймах, чтобы поймать все движения период нужно выбирать не очень большой. С другой стороны во время длинного "затяжного" тренда (или флэта) этот период вполне разумно увеличить чтобы отслеживать тенденцию самого тренда, а не колебаний внутри его канала.
Кто нибудь пробовал строить индикаторы которые сами адаптируют длину периода под меняющиеся условия? Вот, например "здесь", когда какойто другой индикатор (или какието вычисления внутри текущего индикатора) в таком то диапазоне мы пропорционально сокращаем длинну перода для этого бара, а при таких то условиях (уже на другом баре) - наоборот увеличиваем.
Если да - то какие получались результаты? да и вообще - есть ли здравое зерно в этой идее (автоподстройки длинны периода)?
Sim, eu tenho. Muitas vezes e de maneiras diferentes. O resultado certamente melhora (para aplicações padrão), mas ainda é - como já escrevi várias vezes - um ajuste de um par de frases em um polvo, uma vez que a BP, e não uma série de pulsos, é considerada. Por exemplo, um método muito simples (além do que já apresentei na base de código): se a amplitude da barra for menor que um limite especificado, então o período do indicador é aumentado em 1. Ou seja, o comprimento da amostra será igual ao comprimento do segmento, no qual barras significativas (com amplitude maior que o limite) são encontradas. As condições, é claro, podem ser inventadas (logicamente, é claro) de várias maneiras.
Por exemplo, o RSI para esta seleção elementar será assim: eles selecionam barras com um balanço maior que 2 pips (o período aumenta até atingir o mínimo necessário; o período é limitado no topo por um determinado parâmetro - aqui de 14 a 33 (azul - RSI normal, vermelho - com o limite). A janela abaixo mostra como o período mudou.
Não olhe para a 0ª janela - ela apenas não apagou o indicador. Não tem nada a ver com isso. // ))) embora a adaptação do período pelo coeficiente EMA também seja utilizada lá.
Sim. Mas - repito - é melhor do que nada, mas ...)))
A propósito, caso você não soubesse, existe o chamado DMI (Dynamic Momentum Index), que também muda o período do RSI, mas dependendo do RMS. Você pode ver a descrição em Williams e Chand.
===
E a abordagem simples que descrevi pode ser aplicada a qualquer coisa, onde haja um comprimento de amostragem. Se você precisar de algo mais complexo, há um indicador de direção especial - MsterSlave (ver na base).
===========
E aqui, onde o limite superior da duração do período é praticamente ilimitado. Isto é, o período de LER estará aumentando até atingir 14 barras com mais de 2 pontos de spread. Como você pode ver, como regra geral, 100 barras para um determinado instrumento e prazo é suficiente para isso - em outras palavras, o período não vai além de 100 barras.
Mas substituir uma incerteza por outra não parece dar um resultado qualitativo. maldição, quase uma filosofia, mãe de todas as ciências.
Graças a todos que responderam - vou tentar digerir, pensar sobre o assunto e encontrar algo.
Um indicador de período adaptativo é uma transferência de uma parte do sistema e da idéia comercial para seu código. Isto é, o tempo depende não do indicador, mas da idéia comercial, e o indicador é apenas uma transformação do preço.
TA tenta identificar os processos que ocorrem objetivamente no mercado e permitir sua utilização enquanto eles ainda existem. Isto é, o processo inicial, e os eventos no gráfico são a oportunidade de detectar em que fase ele se encontra. Desta forma, para a adaptabilidade não é necessário calcular o valor do período, mas os novos pontos de referência. Isto é, há um certo evento de AT (avanço, impulso, etc.) - há um novo ponto no tempo a partir do qual a referência é feita. Na verdade, é uma nova parada t. O indicador é contado na janela adaptativa com um período igual ao deslocamento do momento atual a partir do caso t de referência. Se um novo dado for identificado, o período é calculado a partir dele. Mas talvez a variante seja útil, quando na aparência de um novo evento TA o período de indicador se torna algum valor padrão, o que na verdade significa a captura do preço de formação deste evento. Ou para calcular o período do indicador use o tempo entre os eventos de AT mais próximos
Decidi participar da conversa entre os cientistas e contribuir com minha própria receita culinária. Nos últimos anos, tenho feito quase todos os indicadores com parâmetros que mudam de forma adaptativa. Soluções primitivas não funcionam no mercado, cheguei a esta conclusão há muito tempo, e tenho alimentado a idéia de fazer um sistema totalmente adaptativo, mas ainda não tenho tempo para fazê-lo, faço fragmentos de adaptação separados em indicadores. Aqui está um exemplo de um fragmento do último indicador. Em geral, o indicador consiste em vários blocos funcionais, cada bloco formando seus sinais alvo, ao todo são 24 sinais, citarei apenas um bloco que forma canais. Ainda não fiz o autoajuste para a mudança de prazos e símbolos, portanto, cada variante deve ser ajustada individualmente.
//===================================================================================================================================== extern int PIB= 33; extern int PIS= 37; extern double PMB= 3.98; extern double PMS= 3.98; //==================================================================================================================================== //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { PPB=NormalizeDouble(PIB*Point,Digits); PPS=NormalizeDouble(PIS*Point,Digits); PMB=NormalizeDouble(PMB*Point,Digits); PMS=NormalizeDouble(PMS*Point,Digits); }função de início especializado :
PR=NormalizeDouble((High[1]-Low[1])+(High[2]-Low[2])+(High[3]-Low[3])+(High[4]-Low[4])+(High[5]-Low[5])+(High[6]-Low[6])+(High[7]-Low[7]),Digits); PRB=NormalizeDouble(PMB/PR,Digits); PRS=NormalizeDouble(PMS/PR,Digits); BTH[0]=High[0]-PR/17-PRB/2; if ((MathAbs(BTH[0]-BTH[1])<=PPB)) BTH[0]=BTH[1]; BTC[0]=Close[0]-PR/10; if ((MathAbs(BTC[0]-BTC[1])<=PPB)) BTC[0]=BTC[1]; BTC[0]=0.4*BTC[0]+0.6*BTC[1]; BTL[0]=Low[0]-PR/17+PRB/2; if ((MathAbs(BTL[0]-BTL[1])<=PPB)) BTL[0]=BTL[1]; STH[0]=High[0]+PR/17-PRS/2; if ((MathAbs(STH[0]-STH[1])<=PPS)) STH[0]=STH[1]; STC[0]=Close[0]+PR/10; if ((MathAbs(STC[0]-STC[1])<=PPS)) STC[0]=STC[1]; STC[0]=0.4*STC[0]+0.6*STC[1]; STL[0]=Low[0]+PR/17+PRS/2; if ((MathAbs(STL[0]-STL[1])<=PPS)) STL[0]=STL[1];Como você pode ver, os parâmetros dos canais são ajustados adaptativamente dependendo dos indicadores dinâmicos médios das várias últimas barras.
O resultado é a seguinte imagem:
VTN - azul, BTL - amarelo, BTL - rosa, STH - azul, STC - vermelho, STL - roxo;
É claro que esta é uma abordagem simplificada, para uma adaptação mais precisa às fases de mudança do mercado, precisamos de uma solução mais complexa, mas mesmo assim esta variante melhora significativamente as características do indicador.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Alguém tentou construir indicadores que adaptem a duração do período às condições em mudança? Por exemplo, "aqui", quando outro indicador (ou alguns cálculos dentro do indicador atual) em tal faixa, diminuímos proporcionalmente a duração do período para esta barra, e em tais condições (em outra barra) - vice versa.
Se sim - que resultados foram obtidos? E em geral - há um senso comum nesta idéia (autoajuste da duração do período)?