在我读过了这篇代码后决定把它发布. 主题看起来挺有趣. 我的方法也没有解决所有的问题. 所以, 建议继续提高.
本类使用的实例和这篇代码类似. 这样可以更容易看到它的优点和缺点.
优点:

设置时间的选项
1. 每日时段. 例如, 它允许每天在特定的时间间隔内交易. 条件:
2. 夜间时段. 例如, 在夜间交易是允许的: 今天开始, 明天结束. 每天如此. 条件:
3. 在一段日期之间. 例如, 允许在某日开始到某日结束的期间内交易. 条件:
4. 在日期范围之外. 时段起始日期大于时段结束日期. 这样, 在新的时段开始日期之后直到时段结束日期之间是允许交易的. 条件:
5. 在一个星期的某一天禁止/允许交易 如果你想交易, 就把星期中的这一天在参数中设为"true". 要禁止交易就设为"false".
6. 修改全部设置 - 在程序的任何部分使用 Init() 方法.
备注这个类是在MetaTrader 5中创建的, 但是在 MetaTrader 4中也可以使用. 唯一的差别是 MetaTrader 4策略测试器不支持以日期时间(datetime)格式的时间间隔的优化. 但是它可以通过把EA输入参数类型从datetime变成long类型来解决.
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/14305
PA_Oscillator
一款简单的振荡器, 显示 MACD 指标的变化速度, 以彩色直方图的形式实现。
fractal_dimension_HTF
指标 fractal_dimension 在输入参数中有时间帧选项。
情绪EA交易
利用市场开启时情绪变化进行交易的机器人.
TradeState - 依赖于时间的EA交易模式切换器
本类根据时间限制EA的交易. 它具有灵活的配置选项, 允许设置自定义时区, 也允许只在一个星期中的某些天进行交易.