MetaTrader5
UltraCCI: O Indicador que Revoluciona sua Análise no MetaTrader 5
Autor original: dm34@mail.ru O UltraCCI é um indicador que se baseia no CCI (Índice de Canal de Commodities) e na análise da direção da tendência a partir de suas múltiplas linhas de sinal. O algoritmo de cálculo das linhas de sinal funciona da seguinte maneira, utilizando os parâmetros de entrada do indicador como dados de origem: 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 diversas linhas de sinal é calculado utilizando uma progressão aritmética: SignalPeriod(Number) = StartLength + Number * Step onde a variável Number varia de zero até StepsTotal. Os valores obtidos dos períodos são adicionados a um array de variáveis e utilizados a cada tick do indicador para gerar um array de valores suavizados do indicador RSI. As direções da tendência atual para cada uma das suavizações são calculadas, e também o número de tendências positivas e negativas para todo o array de valores suavizados do CCI. O número final de tendências positivas e negativas é, por sua vez, suavizado e utilizado como as linhas do indicador que formam uma nuvem colorida, exibida através da classe de estilo DRAW_FILLING. A direção da tendência neste indicador é determinada pela cor da nuvem, enquanto sua força é determinada pela largura da nuvem. Você pode usar os níveis de sobrecompra (UpLevel) e sobrevenda (DnLevel) que são definidos em percentual em relação à amplitude máxima do indicador. Além disso, o indicador oferece a possibilidade de determinar a velocidade de mudança da força da tendência, exibida como pontos coloridos. Caso a força da tendência aumente, a cor desses pontos corresponderá à cor da nuvem; caso contrário, os pontos serão coloridos de forma oposta. Os algoritmos de suavização podem ser escolhidos entre dez versões possíveis: SMA - média móvel simples; EMA - média móvel exponencial; SMMA - média móvel suavizada; LWMA - média móvel ponderada linear; JJMA - média adaptativa JMA; JurX - suavização ultralinear; ParMA - suavização parabólica; T3 - suavização exponencial múltipla de Tillson; VIDYA - suavização através do algoritmo de Tushar Chande; AMA - suavização usando o algoritmo de Perry Kaufman. É importante ressaltar que os parâmetros de fase para diferentes algoritmos de suavização têm significados completamente diferentes. Para JMA, é uma variável externa de fase que varia de -100 a +100. Para T3, é uma razão de suavização multiplicada por 100 para melhor visualização; para VIDYA, é o período do oscilador CMO e, para AMA, é um período de EMA lenta. Em outros algoritmos, esses parâmetros não influenciam a suavização. Para AMA, o período de EMA rápida é um valor fixo, igual a 2 por padrão. A razão de aumento da potência também é igual a 2 para AMA. O indicador utiliza classes da biblioteca SmoothAlgorithms.mqh (que devem ser copiadas para o diretório terminal_data_folder\MQL5\Include). O uso dessas classes foi detalhadamente descrito 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: //+----------------------------------------------+
//| Parâmetros de entrada do indicador |
//+----------------------------------------------+
input int CCI_Period=13; // Período do indicador CCI
input ENUM_APPLIED_PRICE Applied_price=PRICE_CLOSE; // Preço aplicado
//----
input Smooth_Method W_Method=MODE_JJMA; // Método de suavização
input int StartLength=3; // Período inicial de suavização
input int WPhase=100; // Parâmetro de suavização
//----
input uint Step=5; // Passo de alteração do período
input uint StepsTotal=10; // Número 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
//----
input uint UpLevel=80 // Nível de sobrecompra, %%
input uint DnLevel=20 // Nível de sobrevenda, %%
input color UpLevelsColor=DarkViolet; // Cor do nível de sobrecompra
input color DnLevelsColor=DarkViolet; // Cor do nível de sobrevenda
input STYLE Levelstyle=DASHDOTDOT_; // Estilo dos níveis
input WIDTH LevelsWidth=Width_1; // Largura dos níveis
//+----------------------------------------------+
2012.02.02