请观看如何免费下载自动交易
请在Facebook上找到我们!
加入我们粉丝页
有趣的脚本?
因此发布一个链接 -
让其他人评价
喜欢这个脚本? 在MetaTrader 5客户端尝试它
显示:
67
等级:
(3)
已发布:
\MQL5\Include\Tools\Custom\ \MQL5\Expert\Test\DateTimeMsc\
MQL5自由职业者 需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务

当我最近开始深入测试 CopyTicksRange() 的功能时,我在处理毫秒时间时遇到了一些不利的问题:

  1. 实际上,我想使用 CDateTime,因为它是从 MqlTimeStruct 派生的,而且使用其中包含的递增和递减方法可以非常方便地编辑不同的时间单位。
  2. 同时,我需要一种方法来顺利地来回转换毫秒时间(自 1970 年 1 月 1 日以来的秒数乘以 1000,格式为 ulong)。

在这里,我遇到了一个难题:例如,毫秒数是一个非常模糊的数字,并不能说明确切的日期。但是,如果使用 CDateTime 或 TimeStruct,所有的时间单位都很容易改变,但格式会将它们割裂开来,结果也非常不清楚。为了解决这个问题,我们创建了 CDateTimeMsc 类。

#include <Tools\DateTime.mqh>

struct CDateTimeMsc: public CDateTime
  {
public:
   int               msc;               // additional variable for msc storage
   datetime          check_datetime;    // 为了便于观察,需要一点开销。

   //--- CDateTimeMsc 方法

   ulong             MscTime(void) {return(ulong(double(CDateTime::DateTime()) * 1000) + msc);}
   void              MscTime(ulong a_msc_time);  // 输入(日期时间*1000)
   void              Msc(int value);
   //bool IsNumInt(const int num);
   void              MscDec(int delta = 1);
   void              MscInc(int delta = 1);
   void              SecTime(int a_int_time);
   ulong             SecTime(void);
   void              UpdateDateTime();   // 更新观测变量 check_datetime
   void              DateTime(datetime a_datetime) {CDateTime::DateTime(a_datetime); UpdateDateTime();}
   datetime          DateTime(void) {return(CDateTime::DateTime());}

  };

在旧结构的继承下插入了新方法。

现在,该类实际上是一个结构(请参阅结构/类),只要有精确的时间,它也可以使用毫秒。

此外,增量和减量方法也扩展到了 msc 属性。

现在,人们可能会争论附加变量 "check_datetime "是否真的有必要,因为它会造成一定的开销(对某些人来说,这一点非常重要)。不过,我认为通常使用的 CDateTime 对象并不多,只有在需要更改时间单位(如小时、分钟、秒或天)的重要位置才会使用几个。我对 UpDateTime() 方法也有一些疑虑,因为它在每次增减时都会被不必要地调用。

总之,处理因素是重点。


测试
如果想知道确切日期,就不必再使用额外的 datetime 变量来查询时间,而只需将变量 "check_datetime "置于监督之下即可:(TestEA 见上文)


obs2

毫秒时间已自动转换为日期时间格式。


由MetaQuotes Ltd译自德语
原代码: https://www.mql5.com/de/code/48156

日内三重性能 日内三重性能

设置三个交叉点,并从给定时间(也可以设置)开始监控每天的百分比表现。

Strong Historical Levels Strong Historical Levels

历史上强劲的 S/Rs 水平

Caculater Margin Caculater Margin

EA Tools tính toán Margino lotsize, có thể tùy chỉnh đòn bẩy

Open Range BreakOut Indicator for MetaTrader 5 Open Range BreakOut Indicator for MetaTrader 5

开盘区间突破(ORB)指标是一种强大的技术分析工具,可识别和跟踪交易时段开盘区间的价格突破。该指标基于这样一个概念,即交易时段最初几分钟内确立的最高价和最低价往往是当天剩余时间内的重要支撑位和阻力位。 该指标根据用户定义的时间段自动计算开盘区间,绘制多个价格目标,并为潜在的交易机会提供视觉和听觉警报。它旨在帮助交易者识别高概率的突破交易和回测情景。