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
- Visualizações:
- 1095
- Avaliação:
- Publicado:
- 2016.05.24 10:51
- Atualizado:
- 2016.11.22 07:33
-
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance
Nos dias dos pensamentos pesados sobre a eficácia do uso de osciladores, muitas vezes eu precisava da normalização de seus valores, ou seja, a adução das oscilações do indicador para o intervalo [-1;1]. Isso muitas vezes abre novas possibilidades, a mais simples delas é o controle dos valores do indicador pelos níveis concretos (0.5, 0.8 ou outros), e não por alguns valores estimados e aproximadamente casuais, dependendo do mercado. Claro que, se o indicador já está normalizado, não há necessidade de considerar este produto, e se não está...use-o, por favor, não me julgue estritamente pelo código cru.
Parâmetros:
string Indicator - O próprio indicador que é passado para a função icustom(). Infelizmente, as ferramentas de automatização MQL4 não são suficientes para a adição dos indicadores padrão aqui. Por outro lado, quem pode impedir que um programador curioso altere uma entrada do programa?
int mode - o número da linha necessária do indicador inicial...
int param1
int param2 - ... e seus parâmetros. Infelizmente mais uma vez, a imaginação dos desenvolvedores MQL é suficiente apenas para se permitirem a escrever funções com o número variável de parâmetros (como Print), e para apoiar os endereços aritméticos (na minha opinião, a última é feita exclusivamente para fazer os usuários comuns sentirem-se inferiores em comparação com os deuses :)))). Então, vamos trabalhar manualmente.
Comentários:
Os cálculos são realizados em duas etapas:
1. Na fase de inicialização (a função init(), se alguém não sabe :) todo o conjunto de dados do indicador é analisado tendo em vista o cálculo do período distinto, ou seja, o período em que o valor médio quadrático do indicador possa proporcionar um discernimento para este valor médio quadrático (MSV) em toda o histórico.
Deixe-me explicar. Suponha que temos um oscilador e nós calculamos sua média quadrada para vários períodos de oscilação consecutivos. Então, vamos fazer um acordo que deve ser, por exemplo, 3 períodos (como eu tenho - #define PERIODS_CHARACTERISTIC 3, eu recomendo não usar mais, caso contrário, o processador será sobrecarregado). A essência do cálculo é trazida para a determinação do número de barras na média longa de um período (ou seja, 2*intervalo médio entre dois zeros do indicador), e para a multiplicação do valor obtido por 3.
2. Ele é deixado para calcular o MSV para cada barra (como a raiz quadrada da dispersão) sobre os três períodos obtidos, para normalizar o valor de nosso indicador sobre ele, e, no final, apresentar tudo para o diapasão dinâmica [-1;1] por meio da passagem através da função compressor f(x)=tanh(x) (tangente hiperbólica, eu tive que escrever a função por sozinho :))
Um exemplo puramente técnico. A linha verde na imagem é meu oscilador mais antigo que caracteriza a atividade do mercado (de fato, ele é o mesmo que o MACD mas pelos volumes). O azul - é um oscilador também, mas ele já foi passado pela -=Normalizator=-. Os níveis +-0.75, +-0.5, +-0.25 são claramente vistos, e você também pode ver que todos os máximos e mínimos, as regiões de aumento e diminuição, e os pontos de cruzamento do nível zero, mantém suas posições.
Então, aqui você está... Eu não tenho culpa se alguém não gostar dele.
Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/8572
![Murrey Math Lines (Suporte e Resistência)](https://c.mql5.com/i/code/indicator.png)
As Linhas MM são desenhadas onde se encontra o suporte e resistência.
![LotsRisk](https://c.mql5.com/i/code/library.png)
O cálculo da quantidade de lotes, considerando uma possível perda. O volume da perda máxima é especificada como uma percentagem do saldo inicial.
![Estratégia de Regularidades das Taxas de Câmbio](https://c.mql5.com/i/code/expert.png)
Duas ordens são colocados no tempo específico.
![DFC Next](https://c.mql5.com/i/code/indicator.png)
Indicador DFC Next.