
Análise comparativa de 30 indicadores e osciladores
Introdução
A abundância de indicadores e osciladores desenvolvidos hoje em dia inevitavelmente leva a um problema para escolher o mais eficiente deles. Muitas vezes um investidor iniciante ao ver primeiramente a grande variedade de análises disponíveis e ferramentas de previsão começa a testá-las em dados históricos e contas de demonstração. Depois disso, várias decisões são feitas sobre a eficácia e utilidade deste ou daquele indicador em determinadas situações.
Entretanto, tal estimativa não é sempre objetiva devido ao grande número de parâmetros (símbolos, período da tabela, volatilidade, etc.) e, portanto, o grande número de informações analisadas. Conclusões mais confiáveis sobre certos indicadores e osciladores podem ser feitas após conduzir sua análise comparativa.
Na verdade a análise comparativa dos indicadores e osciladores é impossível sem sua consideração simultânea ligando-os a uma tabela de valores. Entretanto, ligar mesmo que dez indicadores diferentes a uma tabela a deixa consideravelmente sobrecarregada. A imagem obtida se torna muito embolada e inadequada para análise. Um Expert Advisor descrito nesse artigo pode resolver esse problema e tornar a condução da análise comparativa mais conveniente.
Expert Advisor
Tenha muita atenção, este EA não tem o propósito de executar negociações ao vivo e portanto não contém o bloco de gerenciamento financeiro. O bloco de execução de negociação é implementado de maneira bem simples. A tarefa principal do Expert Advisor é fornecer informação sobre a presença ou ausência de sinais de diferentes indicadores em conexão com uma tabela de valores.
O programa analisa os seguintes indicadores e osciladores:
- Aceleração/Desaceleração - AC
- Acúmulo/Distribuição - A/D
- Jacaré e Fractais
- Oscilador Jacaré
- Índice de Movimento Direcional Médio - ADX
- Escala Média Verdadeira - ATR
- Oscilador Maravilhoso
- Poder dos Ursos
- Bandas de Bollinger
- Poder dos Touros
- Índice de Canal de Commodities
- DeMarker
- Envelopes
- Índice de Força
- Ichimoku Kinko Hyo (1)
- Ichimoku Kinko Hyo (2)
- Ichimoku Kinko Hyo (3)
- Índice de Fluxo de Dinheiro – MFI
- Média móvel
- MACD (1)
- MACD (2)
- Média Móvel do Oscilador (Гистограмма MACD) (1)
- Média Móvel do Oscilador (Гистограмма MACD) (2)
- SAR Parabólico
- RSI
- RVI
- Desvio Padrão
- Oscilador Estocástico (1)
- Oscilador Estocástico (2)
- Faixa Percentual Williams
Para a implementação dessa tarefa uma matriz digital consistindo de "-1", "0" e "1" é desenhada em uma tabela. Cada linha de matriz pertence a um determinado indicador ou oscilador. As colunas de matriz são formadas em cada momento de tempo (de acordo com o período de tabela selecionado). O aparecimento de "-1" em uma determinada linha de matriz indica a presença de um sinal para vender produzido por um determinado indicador (oscilador); o aparecimento de "1" - presença de um sinal de compra, "0" indica a ausência de sinais. A fig. 1 mostra os resultados da operação do programa.
A fig. 2 mostra a análise da operação RVI com base na matriz. Na linha 26 (ela contém dados sobre esse indicador) "1" está gravado quando a linha principal se move acima da linha de sinal (o indicador recomenda comprar), "-1" - quando a linha de sinal está acima da principal (sinal de venda). Devido às características do indicador essa linha não contém "0".

Devido às características dos indicadores e osciladores, podemos detectar dois tipos de índices na matriz: constantemente significativos, onde os sinalizadores correspondentes (valores na matriz) dos quais nunca são iguais a zero, e pontos significativos, nos quais os sinalizadores podem aceitar zero e fazer sinais somente em certos momentos de tempo (por exemplo, SAR Parabólico). É mostrado na figura 3.

É recomendado analisar a informação obtida e então formar um pacote de indicadores da seguinte maneira. Primeiro selecione a parte da tabela com uma tendência. Depois o período de possíveis negociações é especificado. O início de tal tendência pode ser um período plano antes da tendência selecionada ou origem da tendência; o fim do período é o último momento em que uma negociação é ainda rentável. Assim sinais de indicadores antecipatórios e tardios não são levados em consideração. Na figura 4 tal período é indicado por linhas verdes. Após isso, a informação por indicadores (osciladores) é analisada dentro deste período: todos os indicadores mostrando tendências corretamente são tomados, outros são colocados de lado. Após isso o pacote pode ser estendido ou restrito pela análise análoga em outros intervalos de tempo, e como resultado o pacote final será formado.
O programa fornece o teste de pacotes formados. Para esse propósito em uma linha correspondente do bloco de processamento de estratégia enumere as condições (exibições do indicador) baseadas nas quais a decisão final sobre vendas (ou compras) é feita.
Dessa forma a análise combinada do comportamento de preço e sinais produzidos por cada determinado indicador (oscilador) fornece a possibilidade de selecionar o mais eficiente deles para formação posterior de um pacote de indicadores.
Algoritmo
No primeiro estágio os valores dos sinalizadores ("flags") (-1, 0, 1) são definidos para cada indicador (oscilador). Presumindo que um indicador (por exemplo, MACD) produza sinais de diferentes modos (convergência/divergência, cruzamento de uma linha zero, etc.), o código do programa contém a descrição de seu princípio de definição. Por exemplo, a análise do oscilador "Faixa Percentual Williams" é implementado como:
//30. Williams Percent Range //Buy: crossing -80 upwards //Sell: crossing -20 downwards if (iWPR(NULL,piwpr,piwprbar,1)<-80&&iWPR(NULL,piwpr,piwprbar,0)>=-80) {f30=1;} if (iWPR(NULL,piwpr,piwprbar,1)>-20&&iWPR(NULL,piwpr,piwprbar,0)<=-20) {f30=-1;}
Após isso, objetos únicos do tipo 'Texto' são formados dos valores digitais obtidos dos sinalizadores (para evitar a duplicação dos nomes de objeto o valor da hora atual é usado) e então exibido:
timeident=TimeCurrent(); //Time to form the unique object name for (i=0;i<=29;i++) //Loop for displaying values //Forming unique object names {ident=DoubleToStr(30-i,0)+" "+DoubleToStr(timeident,0); //Creating objects, indicating their location ObjectCreate(ident,OBJ_TEXT,0,timeident,WindowPriceMin()+Point*5*(i+1)); info=DoubleToStr(f[30-i],0); //Forming a text line to be displayed ObjectSetText(ident,info,6,"Arial", Black);} //Describing the format of displaying and displaying
Para verificar os pacotes formados o programa inclui "O bloco de processamento de uma estratégia e colocação do sinalizador principal". Esse bloco contém condições fornecidas que o EA precisa comprar (se o sinalizador principal é igual a 1) e vender (se o sinalizador principal é igual a -1). Se as condições descritas não forem satisfeitas, o sinalizador principal permanece igual a zero e não são executadas negociações. O EA também contém um bloco de fechamento de posição
if(f8==1&&f21==1) //Set of conditions, providing which Buy is executed flag=1; if(f8==-1&&f21==-1) //Set of conditions, providing which Sell is executed flag=-1;
Parâmetros de cada indicador (oscilador) são descritos na forma de variáveis, que permitem sua otimização automática (parâmetros iniciais são os geralmente aceitos).
Conclusão
Como dito acima, o Expert Advisor oferecido não é um sistema de negociação automatizada já pronto. Sua tarefa principal é a condução de uma análise comparativa de indicadores e osciladores para formação posterior de um pacote. O EA demonstra sinais produzidos por indicadores não sobrecarregando a área de trabalho do investidor, tornando a análise muito conveniente.
A flexibilidade do EA está no seguinte: um novo conjunto de indicadores pode ser incluso na matriz e pacotes formados podem ser testados nos dados de histórico.
Traduzido do russo pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/ru/articles/1518





- 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