EA: 交易者的MQL5编程(MQL5 Programming for Traders) - 书中的源代码。第四部分

 

交易者的MQL5编程(MQL5 Programming for Traders) - 书中的源代码。第四部分:

在本书的第四部分,我们将重点掌握内置函数(MQL5 API),并将逐步深入研究专门的子系统。任何MQL5程序都可以利用大量技术和功能。因此,从大多数程序都能使用的最简单且最有用的函数开始是明智的。

交易者的MQL5编程(MQL5 Programming for Traders) - 书中的源代码。第四部分

作者: MetaQuotes

 

您好、

脚本 "TimeSummer.mq5 "中 用于 计算经纪人的格林尼治标准时间偏移和夏令时的算法 是完全错误的。

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

正确的算法可在此处找到:https://www.mql5.com/zh/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
 

如果创建一个稍作修改的SORT_STRUCT 宏,就可以按多个字段对结构体进行排序。例如,按 2 个字段排序的宏可以是

//+------------------------------------------------------------------+
// | 按两个 "F "字段对 "T "类型的 "A "射线排序的方便宏
//+------------------------------------------------------------------+
#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 #:

脚本 "TimeSummer.mq5 "中用于计算经纪人格林尼治标准时间偏移和夏令时的算法是完全错误的。

请随时通过邮件向我提供详细信息。您的脚本以更复杂的方式执行类似操作,并与预先存在的规则表绑定,我故意没有使用该规则表,因为我的整个想法是从纯粹的报价统计中检测夏令时。服务器的设置实际上 可能不准确,也不符合标准。这就是为什么根据用户的反馈,您的脚本有时无法检测到用户服务器的实际时区。

我最近发布了服务器夏令时检测器的 更新版本。

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