Asesores Expertos: Programación en MQL5 para tráders: códigos fuente del libro: Parte 4

 

Programación en MQL5 para tráders: códigos fuente del libro: Parte 4:

En la cuarta parte del libro, nos centraremos en el dominio de las funciones integradas (API MQL5) y profundizaremos de forma secuencial en los subsistemas especializados. La lista de tecnologías y funcionalidades disponibles para cualquier programa MQL5 es enorme. Por ello, para empezar tendrá sentido considerar las funciones más simples y útiles que se pueden utilizar en la mayoría de los programas.

Programación en MQL5 para tráders: códigos fuente del libro: Parte 4

Autor: MetaQuotes

 

Hola,

El algoritmo utilizado para calcular el desfase GMT del broker y el horario de verano en el script "TimeSummer.mq5" es totalmente erróneo.

https://www.mql5.com/es/book/common/timing/timing_daylight_saving

El algoritmo correcto se puede encontrar aquí: https: //www.mql5.com/en/code/48650

Determine Broker's Daylight (DST) schedule
Determine Broker's Daylight (DST) schedule
  • www.mql5.com
Script to determine whether your Broker follows the US, UK or AU daylight (DST) schedule.
 
ok
 

Es posible ordenar structs por más de 1 campo, si se crea una versión ligeramente modificada de la macro SORT_STRUCT. Por ejemplo, para ordenar por 2 campos puede ser:

//+------------------------------------------------------------------+
//| Macro conveniente para ordenar 'A'rray de 'T'ype por dos 'F'ield |
//+------------------------------------------------------------------+
#define  SORT_STRUCT_2(T,A,F1,F2)                                     \
{                                                                    \
   class InternalSort : public QuickSortStructT<T>                   \
   {                                                                 \
      virtual bool Compare(const T &a, const T &b) override          \
      {                                                              \
         return (a.##F1 > b.##F1)                                    \
            || (a.##F1 == b.##F1 && a.##F2 > b.##F2);                \
      }                                                              \
   } sort;                                                           \
   sort.QuickSort(A);                                                \
}
MQL5 Book: Common APIs / Working with arrays / Comparing, sorting, and searching in arrays
MQL5 Book: Common APIs / Working with arrays / Comparing, sorting, and searching in arrays
  • www.mql5.com
The MQL5 API contains several functions that allow comparing and sorting arrays, as well as searching for the maximum, minimum, or any specific...
 
amrali #:

El algoritmo utilizado para calcular el desfase GMT del broker y el horario de verano en el script "TimeSummer.mq5" es totalmente erróneo.

Siéntase libre de escribir los detalles a mí a través de PM. Tu script realiza acciones similares de forma más complicada y está vinculado a una tabla de reglas preexistente, que deliberadamente no utilicé, porque la idea era detectar el horario de verano a partir de las estadísticas de las cotizaciones. La configuración del servidor puede ser en la práctica inexacta y no ajustarse a las normas. Esta es la razón por la que sus scripts a veces no detectaban la zona horaria real de los servidores de los usuarios, según sus comentarios.

Recientemente se ha publicado una versión actualizada del detector de horario de verano de mi servidor.

TimeServerDaylightSavings
TimeServerDaylightSavings
  • www.mql5.com
Time-related functions for empirical detection of server time zone and daylight savings mode (DST) from history of quotes