MT4-在特定时间设置买卖限制

时间:2019-09-15 04:28:53

标签: mql4 algorithmic-trading metatrader4 forex

我想使用Meta Trader 4专家顾问来编写交易策略。

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

Python中类似的功能是datetime.datetime(年,月,日,时,分,秒)。

基本上我想执行以下操作:

  

市场开盘时设置买卖限制,例如UTC +8。

如果有人可以帮助我,那会很好。

2 个答案:

答案 0 :(得分:1)

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()来实现;和     您的本地PC时间可以通过TimeLocal()函数来实现。 使用哪一个-由您决定。

按时间放置订单条件类似于使用其他条件放置订单。

if(condition)OrderSend(..);

答案 1 :(得分:1)

除了丹尼尔(Daniel)的答案,我使用时间的方式只是使用Hour()Minute()Seconds()

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

所以用例:

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