OrderSendAsync()函数 - 页 2 123456789 新评论 Yedelkin 2012.04.26 11:51 #11 hrenfx: 应该澄清一下。 OrderSend的TRADE_RETCODE_PLACED是服务器响应。 OrderSendAsync的TRADE_RETCODE_PLACED是终端响应。 虽然这些代码是相同的,但它们有相当不同的含义。开发人员很可能会修复这个模糊不清的问题。 这就是为什么你应该理解它。 必须在适当的背景下理解。 那么请解释在什么条件下,当使用OrderSend函数发送交易请求 时,服务器必须返回TRADE_RETCODE_PLACED代码?因为根据OrderSendAsync函数的注释和Roche的回答,这个非常TRADE_RETCODE_PLACED代码只表示从终端向服务器成功发送了一个请求。因此,事实证明,一旦请求到达服务器并开始处理/验证,服务器将被迫 "根据处理结果 "生成其他 "真正 "的服务器代码。所以我不太明白为什么服务器(即服务器)必须返回TRADE_RETCODE_PLACED代码,如果这个代码是指请求的生命阶段,在请求出现在服务器上之前?还是TRADE_RETCODE_PLACED代码与OrderSend功能有关,具有其他意义? hrenfx 2012.04.26 11:59 #12 OrderSend可以同时收到来自服务器和终端的响应(以防终端过滤失败)。OrderSendAsync 总是只从终端接收响应。为了从服务器接收响应,你需要在onTrade中捕捉适当的事件。 Yedelkin 2012.04.26 12:05 #13 hrenfx: OrderSend可以同时收到来自服务器和终端的响应(以防终端过滤失败)。 我是否正确理解了以下想法。 终端已经检查了来自OrderSend的请求,并成功地将其发送到服务器,retcode收到的中间值为TRADE_RETCODE_PLACED。在这一点上,连接被中断,OrderSend 所能返回的是TRADE_RETCODE_PLACED代码卡在retcode字段中?这是否就是OrderSend返回TRADE_RETCODE_PLACED的例子? hrenfx 2012.04.26 12:24 #14 Yedelkin: 我对以下的想法是否正确。 终端已经检查了来自OrderSend的请求,并成功将其发送到服务器,retcode收到中间值TRADE_RETCODE_PLACED。在这一点上,连接被中断,OrderSend 所能返回的是TRADE_RETCODE_PLACED代码卡在retcode字段中?当OrderSend返回TRADE_RETCODE_PLACED时,这是否就是那个例子? 也许是这样,但我怀疑。最有可能的是通过TimeOut-time对这种通信中断进行TRADE_RETCODE_TIMEOUT。老实说,我不明白,就 "命令发送 "而言,这种削弱是为了什么。也许开发者会在帮助中作出更多解释。P.S. 我没有在MQL5中写过一行字。因此,我对这个问题的所有想法都可以忽略不计。 Yedelkin 2012.04.26 12:25 #15 ......不过,这也是无稽之谈。客户端用户指南(2012年1月)说,其中一个订单阶段是 "设置(放置)--经销商接受订单 "阶段。 也就是说,根据手册,订单在交易请求的生命阶段发出信号,此时它已经成功到达服务器。而OrderSendAsync()函数 的描述正好相反:TRADE_RETCODE_PLACED代码不依赖于对服务器的到达。 Yedelkin 2012.04.26 12:33 #16 hrenfx:说实话,我不明白为什么在OrderSend的情况下需要这种书呆子气。 就个人而言,我喜欢需要 "返回代码处理 "的想法。但为了正确地写出这种处理,必须知道它是怎么回事。我一直试图了解TRADE_RETCODE_PLACED 代码到底与什么有关。 hrenfx 2012.04.26 12:33 #17 一般来说,任何人都可以通过OrderSendAsync编写一个串行的MyOrderSend。调用了OrderSendAsync。在onTrade中等待服务器的适当回应。退出MyOrderSend,有此回应。有了这个实现,MyOrderSend将与常规的OrderSend完全相同(通过常规库中的OrderSendAsync实现,可以简单地从API中删除)。 Yedelkin 2012.04.26 12:43 #18 hrenfx: 有了这个实现,MyOrderSend将与常规的OrderSend完全相同(通过在常规库中实现OrderSendAsync,可以简单地从API中消除它)。 一个有趣的自我发展的想法。但是,只要onTrade没有被参数化,在员工库中使用onTrade的任何检查可能会比OrderSend函数 本身慢很多。我可能是错的。 Документация по MQL5: Торговые функции / OrderSend www.mql5.com Торговые функции / OrderSend - Документация по MQL5 hrenfx 2012.04.26 12:49 #19 一般来说,OrderSendAsync 输入是Metatrader的一个历史事件。在交易API存在的所有时间里(从Metatrader3开始(我没有看到更早的))。Metatrader,尽管通过自己的语言实现,但它在本质上几乎没有变化。OrderSendAsync是Metaquotes对交易API的第一个实质性改变。我真诚地祝贺开发者的这一事件,并希望将异步模式带到足够的功能中去!"。 Yedelkin 2012.04.26 18:59 #20 技术信息。将有趣的言论收集到一个主题中。Renat:请注意,现在和将来都会对一个账户在 执行队列中的同时订单 数量进行限制。如果我没有弄错的话,现在是16个申请。 异步操作将小心翼翼地与 "可接受订单数量的窗口 "一起工作,在发送下一个批次之前,等待前一个批次的一部分被执行。此外,还将有针对愚蠢/测试洪水的保护措施。到目前为止,当允许的应用程序数量溢出时,会收到一个错误。通过OrderSendAsync进行异步操作的新方法解决了主要问题--它允许即时执行一打操作。这是一个非常强大的工具,应该谨慎使用,并始终关注被服务器和经纪人禁止的可能性。 123456789 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
应该澄清一下。
OrderSend的TRADE_RETCODE_PLACED是服务器响应。
OrderSendAsync的TRADE_RETCODE_PLACED是终端响应。
虽然这些代码是相同的,但它们有相当不同的含义。开发人员很可能会修复这个模糊不清的问题。
这就是为什么你应该理解它。
必须在适当的背景下理解。
OrderSend可以同时收到来自服务器和终端的响应(以防终端过滤失败)。
OrderSendAsync 总是只从终端接收响应。为了从服务器接收响应,你需要在onTrade中捕捉适当的事件。
OrderSend可以同时收到来自服务器和终端的响应(以防终端过滤失败)。
我是否正确理解了以下想法。
终端已经检查了来自OrderSend的请求,并成功地将其发送到服务器,retcode收到的中间值为TRADE_RETCODE_PLACED。在这一点上,连接被中断,OrderSend 所能返回的是TRADE_RETCODE_PLACED代码卡在retcode字段中?这是否就是OrderSend返回TRADE_RETCODE_PLACED的例子?
我对以下的想法是否正确。
终端已经检查了来自OrderSend的请求,并成功将其发送到服务器,retcode收到中间值TRADE_RETCODE_PLACED。在这一点上,连接被中断,OrderSend 所能返回的是TRADE_RETCODE_PLACED代码卡在retcode字段中?当OrderSend返回TRADE_RETCODE_PLACED时,这是否就是那个例子?
也许是这样,但我怀疑。最有可能的是通过TimeOut-time对这种通信中断进行TRADE_RETCODE_TIMEOUT。
老实说,我不明白,就 "命令发送 "而言,这种削弱是为了什么。也许开发者会在帮助中作出更多解释。
P.S. 我没有在MQL5中写过一行字。因此,我对这个问题的所有想法都可以忽略不计。
......不过,这也是无稽之谈。客户端用户指南(2012年1月)说,其中一个订单阶段是 "设置(放置)--经销商接受订单 "阶段。
也就是说,根据手册,订单在交易请求的生命阶段发出信号,此时它已经成功到达服务器。而OrderSendAsync()函数 的描述正好相反:TRADE_RETCODE_PLACED代码不依赖于对服务器的到达。
说实话,我不明白为什么在OrderSend的情况下需要这种书呆子气。
一般来说,任何人都可以通过OrderSendAsync编写一个串行的MyOrderSend。
有了这个实现,MyOrderSend将与常规的OrderSend完全相同(通过常规库中的OrderSendAsync实现,可以简单地从API中删除)。
有了这个实现,MyOrderSend将与常规的OrderSend完全相同(通过在常规库中实现OrderSendAsync,可以简单地从API中消除它)。
一般来说,OrderSendAsync 输入是Metatrader的一个历史事件。在交易API存在的所有时间里(从Metatrader3开始(我没有看到更早的))。Metatrader,尽管通过自己的语言实现,但它在本质上几乎没有变化。OrderSendAsync是Metaquotes对交易API的第一个实质性改变。
我真诚地祝贺开发者的这一事件,并希望将异步模式带到足够的功能中去!"。
技术信息。将有趣的言论收集到一个主题中。
请注意,现在和将来都会对一个账户在 执行队列中的同时订单 数量进行限制。如果我没有弄错的话,现在是16个申请。
异步操作将小心翼翼地与 "可接受订单数量的窗口 "一起工作,在发送下一个批次之前,等待前一个批次的一部分被执行。此外,还将有针对愚蠢/测试洪水的保护措施。到目前为止,当允许的应用程序数量溢出时,会收到一个错误。
通过OrderSendAsync进行异步操作的新方法解决了主要问题--它允许即时执行一打操作。这是一个非常强大的工具,应该谨慎使用,并始终关注被服务器和经纪人禁止的可能性。