Especialistas: Programação no MQL5 para traders: códigos-fonte retirados do livro. Parte 4

 

Programação no MQL5 para traders: códigos-fonte retirados do livro. Parte 4:

Na quarta parte do livro, vamos nos concentrar em dominar as funções integradas (API MQL5) e vamos nos aprofundar consistentemente em subsistemas especializados. A lista de tecnologias e funcionalidades disponíveis para qualquer programa no MQL5 é extensa. Daí que faz sentido começar examinando as funções mais simples e úteis que podem ser aplicadas na maioria dos programas.

Programação no MQL5 para traders: códigos-fonte retirados do livro. Parte 4

Autor: MetaQuotes

 

Olá,

O algoritmo usado para calcular o deslocamento GMT do corretor e o horário de verão no script "TimeSummer.mq5" está totalmente errado.

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

O algoritmo correto pode ser encontrado aqui: 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
 

É possível classificar structs por mais de um campo, se for criada uma versão ligeiramente modificada da macro SORT_STRUCT. Por exemplo, para classificar por 2 campos, pode ser:

//+------------------------------------------------------------------+
//| Macro conveniente para classificar "A'rray of 'T'ype by two '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 #:

O algoritmo usado para calcular o deslocamento GMT do corretor e o horário de verão no script "TimeSummer.mq5" está totalmente errado.

Sinta-se à vontade para me enviar detalhes por PM. Seu script executa ações semelhantes de forma mais complicada e está vinculado a uma tabela de regras pré-existente, que eu deliberadamente não usei, porque a ideia era detectar o horário de verão a partir de estatísticas puras de cotações. A configuração do servidor pode ser , na prática, imprecisa e não se adequar aos padrões. É por isso que seus scripts às vezes não conseguem detectar o fuso horário real dos servidores dos usuários, de acordo com o feedback deles.

Uma versão atualizada do detector de horário de verão do meu servidor foi publicada recentemente.

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