MT4正版下载 - MQL4获取MT4订单开仓时间OrderOpenTime函数用法详解_OrderOpenTime函数的基础语法与返回值_1

OrderOpenTime函数的基础语法与返回值
OrderOpenTime函数的调用方式非常直接,不需要传入任何参数,它的完整语法就是OrderOpenTime()。这个函数会返回一个datetime类型的值,代表当前被选中订单的开仓时间。需要注意的是,在使用这个函数之前,必须先通过OrderSelect函数选中一笔订单,否则函数会返回0,而且这个0并不代表时间起点,只是一个错误标记。我刚开始学的时候就在这吃过亏,没选订单就直接调用,结果怎么查都是0,还以为是系统出问题了。
datetime类型在MQL4中实际上是一个整数,它存储的是从1970年1月1日0时开始到开仓时刻所经过的秒数。这个设计其实挺巧妙的,因为秒数可以直接用于时间比较和运算。比如你想判断订单是否在今天开仓,就可以用当前时间减去开仓时间,如果差值小于86400秒,那就是今天开的仓。不过说实话,直接看秒数并不直观,通常需要配合TimeToString函数来转换成可读的日期格式,比如"2024.01.15 14:30:00"这样的字符串。
在实际编码中,我建议你在调用OrderOpenTime之后,立刻用Print函数输出一下结果,看看是不是你期望的时间值。因为不同经纪商对服务器时间的设置可能不一样,有的用GMT,有的用GMT+2,如果你不先检查一下,后续的时间比较逻辑可能会全盘出错。我遇到过好几次,明明订单是下午三点开的,但函数返回的时间却是中午一点,就是因为时区偏移没处理好。
属性页面里的选项分布与勾选逻辑
进入EA属性页面后,你会看到几个标签页,比如“通用”、“输入参数”这些。那个关键的“允许实时交易”选项,就藏在“通用”标签页里。说实话,我第一次找的时候,还在“输入参数”里翻了个遍,结果发现根本不在那儿。所以大家一定要记住,直接点“通用”这个标签。
在“通用”页面里,选项其实不多,大概就四五项。“允许实时交易”通常排在前几个位置,旁边是一个小方框。默认情况下,这个方框是空白的,也就是没勾选。你需要手动点击一下,让方框里出现一个对勾,这才算激活了实时交易功能。如果不勾选,EA虽然能运行,但不会执行任何订单操作,说白了就是“光看不动”。
另外,这个页面里还有几个其他选项,比如“允许DLL导入”和“允许导入外部专家顾问”。这些选项跟实时交易没有直接关系,但如果你想用更复杂的EA功能,可能需要一并勾选。不过今天咱们只聚焦在实时交易上,其他的以后再说。
第三步:验证交易品种与杠杆倍数
这一步很多人会直接跳过,觉得“我买的就是欧元,还能有错?”但你有没有想过,MT4里同一个品种可能有好几个代码?比如黄金,有的是XAUUSD,有的是GOLD,还有的是XAU/SPOT。如果你选错了,比如把XAUUSD当成GOLD来交易,虽然价格可能很接近,但合约规格和保证金要求可能完全不同。
我就碰到过有人买了“US30”和“DJ30”,以为是一样的指数,结果发现一个点差是2,另一个是5,白白多付了手续费。
杠杆倍数也是个大坑。MT4默认的杠杆通常是1:100或1:500,但不同的经纪商设置不一样。你可以在“账户历史”或“终端”窗口的“交易”选项卡里,右键点击账户名,选择“属性”来查看当前杠杆。如果你用的是1:500的杠杆,那么一手欧元只需要200多美元保证金;但如果是1:100,就需要1000美元左右。MT4如果你没检查,直接按习惯下单,很可能因为保证金不足而被强制平仓。我有个朋友就是这么爆仓的,他以为自己的杠杆是1:100,结果平台偷偷改成了1:50,他下了一手,直接爆掉了。
最后,别忘了看看“市场报价”里该品种的“最小交易量”。有些品种只允许0.01手(微型手),有些则要求0.1手起步。如果你习惯了0.01手交易,突然遇到一个要求0.1手的品种,点开“新订单”后会发现“手数”栏里只能选0.1、0.2等,根本没法选0.01。这时候如果你强行输入0.01,平台会直接弹窗提示“无效手数”。所以,下单前最好先点开该品种的“规格”窗口,看看合约大小、最小变动价位和最小手数限制,做到心中有数。
在市场深度不可用时如何判断流动性
如果你的经纪商没有提供市场深度功能,也完全不用慌,还有很多其他方法可以判断流动性。最常用的就是看点差,尤其是ECN账户的点差。点差越小,说明流动性越好,因为买卖价差被压得很低。比如,欧美在正常交易时段点差只有0.1到0.3个点,那流动性就很好。如果点差突然拉大到1个点以上,那可能就是流动性不足了,比如在非农数据发布前后或者节假日期间。
另一个判断流动性的方法是看成交速度。你在MT4下单的时候,如果订单瞬间就成交了,没有延迟或者重新报价,那就说明流动性充足。如果订单提交后要等几秒甚至十几秒才成交,或者经常出现“重新报价”的提示,那流动性就堪忧。尤其是做超短线的时候,这种延迟会直接影响你的盈亏。我有个朋友就遇到过,在流动性差的时候挂了个止损单,结果因为滑点,止损价比预期差了十几个点,直接爆仓。
还有一个实用的技巧,就是观察K线图的影线长度。流动性不足的时候,价格容易产生大影线,因为少量的订单就能把价格推得很远。比如,在重大新闻发布后,如果你看到K线图上出现一根很长的上影线或下影线,但实体部分很小,这就说明当时流动性很差,价格被瞬间拉高或拉低后又快速回落。通过这种方式,你也能大致判断出市场的流动性状况,虽然不如市场深度那么直观,但同样有效。