CDatetimeMsc - MetaTrader 5 库


最近开始集中测试CopyTicksRange()的功能时,在处理毫秒时间时遇到了一些不利的问题:
在这里,我遇到了困难,例如,毫秒数是一个非常模糊的数字,不能告诉您确切的日期。但是,如果使用CDateTime或TimeStruct,所有时间单位都很容易改变,但格式将它们分开,结果也很不清楚。这个 CDateTimeMsc 类就是为了解决这个问题而创建的。
#包括<工具\DateTime.mqh>结构体CDateTimeMSC:民众日期时间 {民众: 整数 理学硕士; // 用于 MSC 存储的附加变量 日期时间 检查日期时间; // 为了方便观察,需要一点开销。 //--- CDateTimeMsc 方法 乌龙 MSC时间(空白){返回(乌龙(双倍的(CDateTime::DateTime()) *1000) + MSC);} 空白 MSC时间(乌龙a_msc_时间); // 输入(日期时间*1000) 空白 理学硕士(整数价值); //bool IsNumInt(const int num); 空白 MSCDec(整数德尔塔 =1); 空白 MSC公司(整数德尔塔 =1); 空白 秒时间(整数a_int_time); 乌龙 秒时间(空白); 空白 更新日期时间(); // 更新观察变量 check_datetime 空白 日期时间(日期时间a_datetime) {CDateTime::DateTime(a_datetime);更新日期时间();} 日期时间 日期时间(空白){返回(CDateTime::DateTime());} };
新方法被插入到旧结构的继承之下。
现在,该类实际上是一个结构(请参阅结构/类),也可以使用毫秒,前提是有这样的精确时间。
此外,递增和递减方法已扩展到 msc 属性。
现在人们可能会争论附加变量“check_datetime”是否真的有必要,因为它会产生一定的开销(对于某些人来说这非常重要)。但是,我假设通常不会使用很多 CDateTime 对象,只是在需要更改时间单位(例如小时、分钟、秒或天)的重要地方使用少数几个。我对 UpDateTime() 方法也有一些疑问,该方法在每次递增/递减时都会被不必要地调用。
然而,总而言之,处理因素是主要关注点。
测试
如果您想知道确切的日期,您不再需要使用附加的日期时间变量来查询时间,而只需将变量“check_datetime”置于监督之下:(TestEA 参见上文)
毫秒时间自动转换为日期时间格式。
设置三个交叉并监控从给定时间(也可以设置)开始的每日百分比表现。
Andrey F. Zelinsky 的想法,基于 William Blau 的指标
流行的“一根蜡烛”每日突破策略的专业视觉指标(0.9 SL / 1.25 TP)。自动执行黄金 (XAUUSD) 的矢量分析。
该指标实现了一种非线性平滑算法
附件下载
📎 datetimemsc.mqh (5.31 KB)
📎 testeadatetimemsc.mq5 (3.19 KB)
Source: MQL5 #48156
💡 精彩内容推荐
✍️ 楼主最新发布
- •
- •
- •
- •
- •
- •
🔗 您可能感兴趣
- •
- •
- •
- •
- •
- •
