Participe de nossa página de fãs
Coloque um link para ele, e permita que outras pessoas também o avaliem
Avalie seu funcionamento no terminal MetaTrader 5
- Publicado por:
- Nikolay Kositsin
- Visualizações:
- 2372
- Avaliação:
- Publicado:
- 2014.01.14 13:55
- Atualizado:
- 2018.05.31 11:48
-
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance
Autor real:
Witold Wozniak
Este indicador é projetado para mensurar um ativo financeiro quando muda a periodicidade de preço.
O indicador em seu buffer varia de acordo com os valores do ciclo de mercado em vigor que nunca é estável por razões óbvias. Este indicador é escrito para ser usado com osciladores para permitir adaptações das constantes mudanças do ciclo do mercado e suas transformações.
O indicador foi inspirado no artigo de John Ehlers "Using The Fisher Transform" publicado em Novembro 2002, na revista "Technical Analysis Of Stock & Commodities".
A variável de manipulação (handle) do indicador CyclePeriod deve ser declarada a nível global para permitir que o indicador seja usado em código de outro indicador (por exemplo, no oscilador RVI):
//---- declaração de variáveis inteiras para os manipuladores de indicadores int CP_Handle;
Então, o manipulador (handle) do indicador CyclePeriod deve ser recebido no bloco de inicialização do indicador RVI :
//---- obter o manipulador (handle) do indicador CyclePeriod CP_Handle=iCustom(NULL,0,"CyclePeriod",Alpha); if(CP_Handle==INVALID_HANDLE) { Print(" Falha para obter o manipulador (handle) do indicador CyclePeriod"); return(1); }
Agora temos uma nova variável Alpha que é o parâmetro de entrada usada pelo indicador e a proporção do período médio. Esta variável deve ser transformada para a variável de entrada do indicador desenvolvido.
//+----------------------------------------------+ //| Parâmetros de Entrada do Indicador | //+----------------------------------------------+ input double Alpha=0.07; // Proporção suavizada do Indicador
A variável de entrada Length anterior deve ser removida da lista de parâmetros de entrada, transformando-a numa variável local dentro da função OnCalculate().
O tamanho das arrays usadas para suavizar o indicador são fixadas pelo valor do parâmetro Length :
//---- Distribuição da memória para as variáveis arrays ArrayResize(Count,Length); ArrayResize(Value1,Length); ArrayResize(Value2,Length);
O valor deste parâmetro está alterado agora. Portanto, é melhor definir os tamanhos dessas arrays para que não sejam menor que o maior valor assumido desta variável.
Ao analisar os gráficos de indicadores podemos ver que esse valor não excede a 100. Portanto, os tamanhos das arrays terão o mesmo valor:
//---- Distribuição da memória para as variáveis arrays ArrayResize(Count,MAXPERIOD); ArrayResize(Value1,MAXPERIOD); ArrayResize(Value2,MAXPERIOD);
E mais adiante, os valores do período para a barra atual no bloco OnCalculate() devem ser retirados do buffer do indicador personalizado CyclePeriod para serem usados no lugar do parâmetro de entrada Length .
//---- loop de cálculo do indicador principal for(bar=first; bar<rates_total && !IsStopped(); bar++) { //---- cópiar dados da matriz mostrados recentemente if(CopyBuffer(CP_Handle,0,rates_total-1-bar,4,period)<=0) return(RESET); Length=int(MathFloor((4.0*period[0]+3.0*period[1]+2.0*period[2]+period[3])/20.0)); if(bar<Length) Length=bar; // cortando a suavização para baixo do número real das barras
Neste caso os quatro últimos valores são retirados do buffer do indicador CyclePeriod e o seu alisamento linear ponderado é realizado, o valor obtido após este processo é utilizado como um período de alisamento Length . E finalmente a linha na extremidade de código do indicador deve ser alterada:
if(bar<rates_total-1) Recount_ArrayZeroPos(Count,MAXPERIOD);
Como resultado, temos o oscilador Adaptive RVI :
Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/562

O Detrended Price Oscillator (DPO) mostra os estados do mercado de sobrecompra / sobrevenda possibilitando também a obtenção de sinais de compra e venda.

O indicador Adaptivo CG é um oscilador que se adapta constantemente a mudança dos ciclos de um ativo financeiro do mercado.

Oscilador estocástico Adaptado.

Previsão da próxima mudança de intervalo do candle diário em todas as barras do gráfico em vigor.