MT4 - 在特定时间设置买卖限制
MT4 - Place buy and sell limits at certain time
我想使用 Meta Trader 4 EA 来编写交易策略代码。
但是,我在MT4中找不到这样的功能。
Python 中的类似函数是 datetime.datetime(年、月、日、时、分、秒)。
基本上我想做以下事情:
Place sell and buy limit when market opens, say UTC +8.
如果有人能帮助我,那就太好了。
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 什么时间可用?可以调用三种类型的时间:
经纪商的当前时间(您在图表和市场上实际看到的window)是默认时间,您可以通过调用TimeCurrent()
或iTime(_Symbol,PERIOD_M1,0)
获取;
GMT+0可以通过TimeGMT()
实现;和
您的本地 PC 时间可以通过 TimeLocal()
函数实现。
使用哪一个 - 由您决定。
按时间条件下单与按其他条件下单类似。
if(condition)OrderSend(..);
除了大牛的回答,我使用时间的方式就是简单的使用Hour(), Minute(), and Seconds()。
请注意这些 return 代理服务器时间。
所以用例:
if(Hour()==14 && Minute()==30 && Seconds()==0){
int buy = OrderSend(...);
}
我想使用 Meta Trader 4 EA 来编写交易策略代码。
但是,我在MT4中找不到这样的功能。
Python 中的类似函数是 datetime.datetime(年、月、日、时、分、秒)。
基本上我想做以下事情:
Place sell and buy limit when market opens, say UTC +8.
如果有人能帮助我,那就太好了。
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 什么时间可用?可以调用三种类型的时间:
经纪商的当前时间(您在图表和市场上实际看到的window)是默认时间,您可以通过调用TimeCurrent()
或iTime(_Symbol,PERIOD_M1,0)
获取;
GMT+0可以通过TimeGMT()
实现;和
您的本地 PC 时间可以通过 TimeLocal()
函数实现。
使用哪一个 - 由您决定。
按时间条件下单与按其他条件下单类似。
if(condition)OrderSend(..);
除了大牛的回答,我使用时间的方式就是简单的使用Hour(), Minute(), and Seconds()。
请注意这些 return 代理服务器时间。
所以用例:
if(Hour()==14 && Minute()==30 && Seconds()==0){
int buy = OrderSend(...);
}