【问题标题】:Specifying the start and the end date of the trading指定交易的开始和结束日期
【发布时间】:2016-12-18 19:30:09
【问题描述】:

我刚刚在我的 EA 中添加了指定交易开始和结束日期的功能,但是,我发现了一个奇怪的行为!

如果我将交易的开始日期指定为
2016.05.01 00:00:00
和结束日期
2016.05.10 00:00:00
EA 交易从 2015.05.02 00:002016.05.12 14:02
但如果我指定日期从
2016.06.01 00:00:002016.06.10 00:00:00
它从
2016.06.01 00:00 交易到 2016.06.10 14:53

这是我的代码:

   extern datetime StartDate = __DATETIME__;
   extern datetime EndDate   = __DATETIME__;

   int isTrading = 0;

   if (  StartDate < EndDate ) {
         if (  TimeCurrent() > StartDate
            && TimeCurrent() < EndDate
               ) isTrading = 1;
   } else {
         if (  TimeCurrent() > StartDate
            || TimeCurrent() < EndDate
               ) isTrading = 1;
   }

我不知道这里出了什么问题,任何帮助将不胜感激。

提前谢谢你。

【问题讨论】:

    标签: date datetime mql4 metatrader4 mt4


    【解决方案1】:

    最简单的部分:

    鉴于 StartDate == 2016.05.01 00:00,市场确实已关闭(并且对 TimeCurrent() 函数的调用将仅返回一些旧的 datetime 值从四月的最后一周开始打勾)。

    由于市场尚未关闭,直到 2016.05.02 触发事件(消息)将不会到达(任何交易将能够发生的越少) strong>(星期一)开始,第一个“newQUOTE 消息确实从服务器端到达,基于一些进一步的细节.

    文档警告:

    datetime TimeCurrent();
    返回在“市场观察”窗口中选择的一个交易品种的最后一个已知服务器时间,最后一个报价接收时间。在 OnTick() 处理程序中,此函数返回接收到的已处理刻度的时间。在其他情况下(例如,调用处理程序OnInit()OnDeinit()OnTimer() 等)这是“市场观察”窗口中任何可用交易品种的最后一次报价接收时间,该时间显示在这个窗口的标题。时间值是在交易服务器上形成的,与您计算机上的时间设置无关。


    几个难点:

    • 代理服务器端设置的 GMT 偏移量(在这个服务器端/服务器端 datetime 角度来看不是问题,否则是的)

    • 外汇工具 (_Symbol) 交易条件(贵金属和指数通常以额外的时间偏移开始,不遵循主要市场的 24*5 交易时间)。

    • 提前公布的特定于经纪商的交易时间/中断变更。

    • MetaTrader 终端 4 [策略测试器] 可能会在不完整的数据(历史中心的差距)上表现出令人惊讶的行为,并且文档只是“间接地”警告了这一点:

      在策略测试器中进行测试时,TimeCurrent()会根据历史数据进行模拟。

    【讨论】:

    • 感谢您的回答,为什么它会继续开放交易直到达到2016.05.12 14:02 而不是2016.05.10
    • 很难说,只显示了一个不完整的 MCVE 代码。您是否介意发布完整的代码、您测试代码的_Symbol、您的本地主机时区位置+您的代理服务器-时区、_Symbol 条款和条件(即市场(市场前/市场后)小时)由经纪人设置?
    • 当然,经纪商是XM,服务器是XM.COM-Demo,货币EURUSD,我只在“策略测试器”中运行测试,但是我的EA太大了,我想我'我会卖掉它,所以我不能发布它的代码,但我会告诉你我编程它的目的只是为了我所做的测试,它只是卖掉,并且必须只有一个位置,所以当位置得到立即关闭 EA,打开一个新的卖出头寸。
    • 如果我将交易的开始日期设置为2016.07.05 00:00:00,将结束日期设置为2016.07.10 00:00:00,它的交易时间为2016.07.05 00:00:00 到2016.07.12 10:19
    猜你喜欢
    • 1970-01-01
    • 2020-11-17
    • 1970-01-01
    • 2012-08-19
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多