Sistemi Esperti: MQL5 Programming for Traders – Source Codes from the Book. Parte 4

 

MQL5 Programming for Traders – Source Codes from the Book. Parte 4:

Nella quarta parte del libro, ci concentreremo sulla padronanza delle funzioni integrate (API MQL5) e ci addentreremo gradualmente nei sottosistemi specializzati. Qualsiasi programma MQL5 può utilizzare una pletora di tecnologie e funzionalità. Pertanto, ha senso iniziare con le funzioni più semplici e utili che possono essere utilizzate nella maggior parte dei programmi.

MQL5 Programming for Traders – Source Codes from the Book. Parte 4

Autore: MetaQuotes

 

Salve,

L'algoritmo utilizzato per calcolare l'offset GMT e l'ora legale del broker nello script "TimeSummer.mq5" è completamente sbagliato.

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

L'algoritmo corretto può essere trovato qui: 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
 

È possibile ordinare le strutture per più di un campo, se si crea una versione leggermente modificata della macro SORT_STRUCT. Ad esempio, per l'ordinamento per 2 campi può essere:

//+------------------------------------------------------------------+
//| Comoda macro per ordinare 'A'rray di 'T'ype per due 'F'ields |
//+------------------------------------------------------------------+
#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 #:

L'algoritmo utilizzato per calcolare l'offset GMT e l'ora legale del broker nello script "TimeSummer.mq5" è completamente sbagliato.

Sentitevi liberi di scrivermi i dettagli via PM. Il vostro script esegue azioni simili in modo più complicato ed è legato a una tabella di regole preesistente, che non ho deliberatamente utilizzato, perché l'idea era quella di rilevare l'ora legale a partire dalle statistiche delle quotazioni. La configurazione del server può essere in pratica imprecisa e non conforme agli standard. Questo è il motivo per cui i vostri script a volte non riuscivano a rilevare il fuso orario effettivo dei server degli utenti, secondo il loro feedback.

Recentemente è stata pubblicata una versione aggiornata del rilevatore dell'ora legale del mio server.

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