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:
- 1068
- Ranking:
- Publicado:
- 2016.10.18 15:21
- Actualizado:
- 2017.07.17 17:18
-
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
Esta biblioteca multiplataforma permite realizar cómodamente operaciones byte a byte con estructuras y tipos estándar de datos.
Posibilidades:
- Comparación byte a byte (== y !=) entre sí de estructuras y tipos estándar de datos (en MQL por defecto no hay operadores de comparación de estructuras).
- Definición del desplazamiento byte a byte del campo de la estructura por su nombre.
- Lectura del valor de cualquier tipo estándar según el desplazamiento byte a byte en los datos fuente.
- Escritura de estructuras y tipos estándar (a través del operador =) por desplazamiento byte a byte (a través del operador []) en los datos fuente.
- Asignación byte a byte (a través del operador =).
- Transformación de estructuras y tipos estándar de datos en una matriz de datos.
// MQL4&5-code #property strict #include <TypeToBytes.mqh> #define PRINT(A) ::Print(#A + " = " + (string)A); void OnStart( void ) { MqlTick Tick; ::SymbolInfoTick(::Symbol(), Tick); MqlTick CloneTick = Tick; // Operación con estructuras if (_R(Tick) == CloneTick) // Ahora las estructuras se pueden comparar ::Print("Equal"); // Obtener el valor del tipo requerido por desplazamiento PRINT(_R(Tick)[(datetime)0]) // Vemos el valor datetime por el desplazamiento cero en el objeto de estructura MqlTick - Tick.time // Obtener el desplazamiento del campo de la estructura const int Offset = _OFFSET(Tick, bid); // Hemos localizado el desplazamiento en bytes del campo bid en el objeto de estructura MqlTick PRINT(Tick.bid) // Hemos comprobado el valor de Tick.bid _W(Tick)[Offset] = 1.23456; // Escrito el valor (double)1.23456según el desplazamiento encontrado PRINT(Tick.bid) // Hemos comprobado que Tick.bid ahora es igual a 1.23456 PRINT(_R(Tick)[(double)Offset]) // Imprimido el valor double, que se encuentra en el desplazamiento Offset, es la base de Tick.bid PRINT(_R(Tick).Bytes[8]) // Comprobado el valor del byte con el desplazamiento 8 en el objeto de la estructura MqlTick PRINT(_R(Tick)[(uchar)8]) // Lo mismo, pero con otro método PRINT(CloneTick.bid) // Comprobado el valor CloneTick.bid _W(CloneTick)[0] = Tick; // Escrito en CloneTick el valor del objeto de estructura Tick según el desplazamiento cero PRINT(CloneTick.bid) // Comprobamos que CloneTick.bid == Tick.bid // Operación con tipos estándar color Color = C'241,248,255'; PRINT(_R(Color)[(uchar)1]) // Componente Green del color 248 _W(Color)[2] = (uchar)230; // Escribimos el valor (uchar)230 según el 2 desplazamiento. PRINT(Color) // Comprobamos que Color ahora es C'241,248,230' // Operación simultánea con tipos mixtos if (_R(Tick) != Color) // Se pueden incluso comparar las estructuras con los tipos estándar ::Print("Not equal"); // Operador de asignación de byte a byte int i = 0; _W(i) = (float)12.34; // Escribimos en la viariable int- la presentación byte a byte del número (float)12.34 PRINT(i) // Comprobamos que es 1095069860 float f = 0; _W(f) = i; // Escribimos en la viariable float- la presentación byte a byte del número obtenido anteriormente (int)1095069860 PRINT(f) // Comprobamos que ahora el valor es igual al original - (float)12.34 return; }
Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/16280

Indicador vaMA con posibilidad de sustituir la promediación, también representa el último valor en forma de etiqueta de precio y tiene la posibilidad de redondear los niveles del indicador en la cantidad indicada de grados. Asimismo, dispone de una indicación adicional de la fuerza de la tendencia con puntos de colores basada en el algoritmo de desviación estándar.

Indicador i4_DRF_v3 con posibilidad de cambiar el marco temporal del indicador en los parámetros de entrada.

El script representa en el gráfico los niveles mensuales y semanales.

El indicador Fibo ZigaZag permite calcular los niveles supuestos de apoyo y resistencia, usando los coeficientes de Fibonacci.