Início Indicador técnico Postagem

UltraMFI: O Indicador Inovador para MetaTrader 5

Anexo
21750.zip (22.12 KB, Baixar 0 vezes)

Autor original: Dmitriy.

O UltraMFI é um indicador que se baseia no MFI (Índice de Fluxo de Dinheiro), utilizando uma análise de múltiplas linhas de sinal. O algoritmo de cálculo das linhas de sinal funciona da seguinte forma. Temos parâmetros de entrada do indicador que servem como dados fonte:

  • StartLength - valor inicial mínimo da primeira linha de sinal;
  • Step - passo de alteração do período;
  • StepsTotal - número total de alterações de período.

Qualquer valor de período das várias linhas de sinal é calculado usando uma progressão aritmética:

SignalPeriod(Number) = StartLength + Number * Step,

onde o valor da variável Number varia de zero a StepsTotal. Os valores obtidos dos períodos são adicionados a um array de variáveis e são utilizados em cada tick do indicador para obter um array de valores suavizados do indicador Percent Range de Larry Williams. As direções da tendência atual para cada um dos suavizados são calculadas, assim como o número de tendências positivas e negativas para todo o array de valores MFI suavizados.

O número final de tendências positivas e negativas é, por sua vez, suavizado e usado como as linhas do indicador que formam uma nuvem colorida, exibida com a ajuda da classe de estilo DRAW_FILLING.

A direção da tendência neste indicador é determinada pela cor da nuvem, enquanto sua força é avaliada pela largura da nuvem. Você pode utilizar os níveis de sobrecompra (UpLevel) e sobrevenda (DnLevel) que são definidos em porcentagem a partir da faixa máxima do indicador.

Os algoritmos de suavização podem ser escolhidos entre dez versões possíveis:

  1. SMA - média móvel simples;
  2. EMA - média móvel exponencial;
  3. SMMA - média móvel suavizada;
  4. LWMA - média móvel ponderada linear;
  5. JJMA - média adaptativa JMA;
  6. JJurX - média ultralinear;
  7. ParMA - média parabólica;
  8. T3 - suavização exponencial múltipla de Tillson;
  9. VIDYA - suavização usando o algoritmo de Tushar Chande;
  10. AMA - suavização usando o algoritmo de Perry Kaufman.

É importante notar que os parâmetros Phase1 e Phase2 têm significados completamente diferentes para diferentes algoritmos de suavização. Para o JMA, trata-se de uma variável externa de Fase que varia de -100 a +100. Para o T3, é uma razão de suavização multiplicada por 100 para melhor visualização; para o VIDYA, é o período do oscilador CMO e para o AMA, é o período da média móvel lenta. Em outros algoritmos, esses parâmetros não influenciam a média. Para o AMA, o período da média móvel rápida é fixado em 2 por padrão. A razão de potência também é igual a 2 para o AMA.

O indicador utiliza as classes da biblioteca SmoothAlgorithms.mqh (copie-as para <diretório_dados_terminal>\MQL5\Include). As classes foram descritas em detalhe no artigo Média de Séries de Preços para Cálculos Intermediários sem Usar Buffers Adicionais.

//+----------------------------------------------+
//| Parâmetros de entrada do indicador                  |
//+----------------------------------------------+
input int MFI_Period=13;                            // Período do indicador MFI
input ENUM_APPLIED_VOLUME VolumeType=VOLUME_TICK;   // Volume do indicador MFI
//----
input Smooth_Method W_Method=MODE_JJMA; // Método de suavização
input int StartLength=3;                // Período de média inicial
input int WPhase=100;                   // Parâmetro de suavização
// para JJMA varia na faixa de -100 ... +100 e influencia a qualidade do período de transição;
// Para VIDIA, é o período CMO, para AMA, é o período da média móvel lenta
//----  
input uint Step=5;        // Passo de alteração do período
input uint StepsTotal=10; // Número total de alterações de período
//----
input Smooth_Method SmoothMethod=MODE_JJMA; // Método de suavização
input int SmoothLength=3;                   // Profundidade de suavização                    
input int SmoothPhase=100;                  // Parâmetro de suavização
// para JJMA varia na faixa de -100 ... +100 e influencia a qualidade do período de transição;
//----                          
input uint UpLevel=80;            // Nível de sobrecompra em %%
input uint DnLevel=20;            // Nível de sobrevenda em %%
input color UpLevelsColor=Blue;   // A cor do nível de sobrecompra
input color DnLevelsColor=Blue;   // A cor do nível de sobrevenda
input STYLE Levelstyle=DASH_;     // Estilo dos níveis
input WIDTH LevelsWidth=Width_1; // Largura dos níveis
//+----------------------------------------------+

Fig. 1. O indicador UltraMFI

Fig. 1. O indicador UltraMFI

Publicações relacionadas

Comentário (0)