智能交易网,程序化交易,自动交易,量化交易

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

参加MT4智能交易编程培训,7课免费在线试听MT4指标,EA代写,或EA指标加密账户远程验证服务 最完善商业MT4跟单系统(0.1秒极速响应不漏单)
为论坛做贡献有奖学金,奖学金可直接换真钱 扫本站微信公 众号部分视频课程指标EA免费得智能交易网MT4操盘神器,扫公众号免费得
查看: 493|回复: 2

MT5中OrderSend函数和OrderSendAsync函数区别

[复制链接]
发表于 2018-5-15 11:02:43 | 显示全部楼层 |阅读模式
OrderSendAsync这个函数很多人不理解,他的学名叫:异步下单函数。相对的OrderSend这个就叫同步下单函数了。
那么到底同步和异步有什么区别呢?
我举例通俗的来讲:
我们写ea,监控下单 都是在OnTick()函数中的,
这个函数就是当价格波动一次,他就执行一次。
如果你在这个函数中调用OrderSend函数开一个多单,那么调用后,程序就一直在等待下单结果,是下单成功呢,还是下单失败。
等到结果后,就返回给你。

如果你在这个函数中调用OrderSendAsync函数开一个多单,那么调用后,程序是不会等待这张订单的执行结果的。
换句话说,这个函数调用后,不会给你返回结果,告诉你这张多单是执行成功了,还是执行失败了。
那么我们怎么样才能知道他是否执行成功了:必须用OnTradeTransaction这个函数实时监控才能得到你要的下单执行答案。
OnTradeTransaction这个函数的复杂程度,我视频中就说过。
所以我是建议尽量不要用OrderSendAsync这个函数来下单。
回复

使用道具 举报

发表于 2018-9-7 10:56:31 | 显示全部楼层
OrderSendAsync函数似乎是EA编程向下一阶段前进的必备掌握技能。发送异步订单,快速同时下单,在高频交易和对冲套利中具有重要作用。

mql5文章1316写到:
至少有三种情况, 您需要发送多个请求:

两次连续请求之间的间隔时间要求很短, 以至于在发送后一个之前不可能检查请求结果。当后一个请求被时, 希望前一个已经执行。类似的手法用于高频交易;
您需要在同一时刻打开多个品种的多个仓位。例如, 套利策略以及要求不同金融工具以现价打开复合仓位。如此这般手法, 不希望仓位渐次形成;
它要求线程尽可能地迅速完成, 并等待后进事件和用户命令。此需求对于多线程和基础结构解决方案十分重要。这就是为何 HedgeTerminal 使用异步请求的原因。如果 HT 使用同步发送请求, 它将会在每次用户平仓或修改仓位之后持续停顿 1-2 秒钟, 而这是难以接受的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|sitemap|智能交易网,程序化交易,自动交易,量化交易 ( 苏ICP备08108698号

GMT+8, 2018-10-23 07:57 , Processed in 0.054894 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表