【问题标题】:MT4 - Place buy and sell limits at certain timeMT4 - 在特定时间设置买入和卖出限制
【发布时间】:2019-09-15 04:28:53
【问题描述】:

我想使用 Meta Trader 4 EA 来编写交易策略。

但是,我在 MT4 中找不到这样的功能。

Python 中的类似函数是 datetime.datetime(year,month,day,hour,minute,second)。

基本上我想做以下事情:

开市时设置买卖限价,比如 UTC +8。

如果有人可以帮助我,那就太好了。

【问题讨论】:

    标签: mql4 algorithmic-trading metatrader4 forex


    【解决方案1】:

    除了丹尼尔的回答,我使用时间的方式就是简单的使用Hour()Minute()Seconds()

    请注意,这些返回代理服务器时间。

    所以用例:

    if(Hour()==14 && Minute()==30 && Seconds()==0){
        int buy = OrderSend(...);
    }
    

    【讨论】:

    • 其实我在使用MT4编辑器时遇到了很多麻烦。如果可能,您能否提供一个示例代码,让我可以在经纪人时间上午 12 点下订单?提前致谢。我知道 MT4 的基本语法,但对下订单的部分一无所知。
    • 你可以使用上面的。将14 更改为12,将30 更改为00。这将允许在12:00 处执行。
    【解决方案2】:

    MT4 时间是 1970 年 1 月 1 日之后的秒数,使用了一个特殊的变量类型datetime,它实际上是一个简单的int。 如何构建时间?两种简单的方法:从字符串和从结构。

    datetime time=StringToTime(StringFormat("%04d.%02d.%02d %02d:%02d",year,month,day,hour,minute));
    

    或者,

    MqlDatetime dt;
    dt.year=year;
    dt.mon=month;
    dt.day=day;
    dt.hour=hour;
    dt.min=minute;
    datetime time=StructToTime(dt);
    

    MT4 的时间是几点?可以调用三种类型的时间: 经纪商的当前时间(您在图表和市场窗口中实际看到的)是默认时间,您可以通过调用TimeCurrent()iTime(_Symbol,PERIOD_M1,0) 获取; GMT+0 可以通过TimeGMT() 实现;和 您的本地电脑时间可以通过TimeLocal() 功能获得。 使用哪一个 - 由您决定。

    按时间条件下单与其他条件下单类似。

    if(condition)OrderSend(..);
    

    【讨论】:

      猜你喜欢
      • 2021-09-17
      • 2019-06-06
      • 1970-01-01
      • 2022-12-03
      • 1970-01-01
      • 2022-01-09
      • 2019-10-29
      • 1970-01-01
      • 2016-11-19
      相关资源
      最近更新 更多