Pon "Me gusta" y sigue las noticias
Deje un enlace a él, ¡qué los demás también lo valoren!
Evalúe su trabajo en el terminal MetaTrader 5
- Visualizaciones:
- 1128
- Ranking:
- Publicado:
- 2016.05.27 10:04
- Actualizado:
- 2016.11.22 07:33
-
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
En los días en los que reflexionaba sobre la eficacia de la utilización de osciladores de frecuencia, reparé en la necesidad de normalizar sus valores, es decir, de canalizar las oscilaciones del indicador hacia un diapasón [-1, 1]. Estas cosas a menudo abren nuevas posibilidades, las más sencilla de ellas es el control de los valores del indicador para los niveles específicos (0.5, 0.8, y también otros), y no según valores máximos tomados al azar que se deben considerar a ojo, dependiendo del mercado. Naturalmente, si el indicador ya está normalizado, el producto en cuestión ya no será necesario, pero si no...úsenlo. Les ruego que no sean demasiado duros con la crudeza del código.
Parámetros:
string Indicator - el indicador propiamente dicho, que después se transmite a la función iCustom(). Por desgracia, para pegar aquí también indicadores estándar, los recursos automáticos de mql4 no son suficientes. Por otro lado, ¿quién puede evitar que un escritor de código con curiosidad reescriba una línea en el programa?
int mode - número de la línea que necesitamos del indicador fuente ...
int param1
int param2 - ... y sus parámetros. Una vez más, por desgracia, los desarrolladores de MQL solo tienen fantasía suficiente para permitirse a sí mismos la escritura de funciones con un número variable de parámetros (como Print), y para no dar soporte a la aritmética de punteros (esto último, en mi opinión, se ha hecho exclusivamente para que los usuarios mortales sientan su inferioridad en comparación con los dioses :)))). Así que usaremos las manos.
Comentario:
Los cálculos se llevan a cabo en dos etapas.
1. En la etapa de inicialización (la función init (), por si alguien no lo sabe :) se analiza la matriz de datos al completo de los indicadores para calcular el período característico, es decir, el período para el cual el indicador puede dar una idea de la media cuadrática, pero en toda la historia.
Me explico. Supongamos que tenemos un oscilador, y hemos calculado su media cuadrática en varios periodos de oscilaciones seguidos. Bueno, pues estamos de acuerdo en que estos periodos deberán ser, por ejemplo, 3 (como hice en mi caso - #define PERIODS_CHARACTERISTIC 3, mejor no poner más, el procesador se sobrecarga). La esencia del cálculo se resume en la definición del número de barras que se prolonga de media un periodo (es decir, 2 * intervalo medio entre los dos ceros del indicador), y la multiplicación del número resultante por 3.
2. Solo queda calcular para cada barra la media cuadrática (como la raíz cuadrada de la dispersión) en los 3 periodos obtenidos, para normalizar en él el valor de nuestro indicador y, al final, canalizarlo todo en el diapasón dinámico [-1;1] pasándolo a través de la función compresora f(x)=tanh(x) (una tangente hiperbólica, tuve que escribir la función por mí mismo:))
Un ejemplo puramente técnico. En la foto arriba, la línea verde es el oscilador escrito por mí, que caracteriza la actividad del mercado (de hecho, es el mismo MACD, solo que con volúmenes). En azul (¡no en azul celeste!), el mismo, pero pasado por el -=Normalizator=-. Se ven claramente los niveles +-0.75, +-0.5, +-0.25, así como todos los intervalos de crecimiento y disminución máximos, mínimos, y también que los lugares de cruce del nivel cero conservan su posición.
Pues bueno, aquí lo tenéis... Si a alguien no le gusta, no es mi culpa.
Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/8572
![Líneas matemáticas de Murray (apoyo y resistencia)](https://c.mql5.com/i/code/indicator.png)
Las líneas matemáticas de Murray se dibujan allí donde se encuentre el apoyo y la resistencia.
![LotsRisk](https://c.mql5.com/i/code/library.png)
Cálculo de la cantidad de lotes teniendo en cuenta las posibles pérdidas. La suma máxima de las pérdidas se muestra en tanto por ciento del balance actual
![Estrategia de las leyes del curso de las divisas](https://c.mql5.com/i/code/expert.png)
dos órdenes se colocan en una hora determinada
![DFC Next](https://c.mql5.com/i/code/indicator.png)
Indicador DFC Next. Dibuja un canal clásico.