OrderSendAsync()函数 - 页 5 123456789 新评论 Denis Kirichenko 2012.05.03 16:39 #41 Urain:如果你的建议只是补充一个现有的功能,那么就没有什么,否则就不清楚一个简单的MqlPacketTradeRequest结构是如何......如果MqlPacketTradeRequest结构是MqlTradeRequest结构的 动态数组的结构,它可能会打破整个服务器淹没在简单查询结构中的逻辑。否则,在终端层面,我们将不得不把这个数据包分割成不同的请求,这将否定引入这个重载的全部意义。似乎我们因为异步结构而 "同意 "了这样一个变体。bool OrderSendAsync( MqlPacketTradeRequest& packet_request, // пакетная структура запроса );在哪里?packet_request将包括一个MqlTradeRequest 结构的数组...。那么所有这些想法都是讨论的原始材料 :-) Yedelkin 2012.05.04 07:33 #42 Urain: 我认为,一批相同的应用只需要用于示范目的,在工作中会使用不同的符号,不同的体积,当然还有不同的方向。因此,每个申请者都必须单独检查,所以批量发送没有意义。 好吧,你必须在这里做出选择。一次性启动函数OrderSendPacketAsync(MqTradeRequest& request[], MqlPacketTradeResult& packet_result),每次 发送500个元素的预填充数组request[], 并一次性检查 返回代码10008,或者OrderSendAsync()函数的 500次启动 ,并对 返回代码10008进行500次检查。 Документация по MQL5: Торговые функции / OrderSend www.mql5.com Торговые функции / OrderSend - Документация по MQL5 Yedelkin 2012.05.04 07:45 #43 Urain: ...如果MqlPacketTradeRequest结构是MqlTradeRequest结构的 动态数组的结构,就会破坏整个服务器的逻辑,而服务器是为简单查询结构设计的。 一个使用动态数组的交易请求怎么会 "破坏服务器的逻辑"?如果我有一个块,它处理某种类型的结构的变量,那么什么能阻止我将这个块应用于同一类型的数组的每个元素?同样,如果现在的服务器是 "适用于简单的查询结构",有什么能阻止我添加一个循环,当服务器接受由OrderSendPacketAsync()函数发送的动态数组时,它将允许依次对这样一个数组的每个元素应用一个 "适用于简单查询结构 "的块? Yedelkin 2012.05.04 08:07 #44 papaklass: 在我看来,OrderSendAsync()函数应该被做成参数化,而不是为发送订单创建一个循环。例如,OrderSendAsync(Symbol(), number, direction)。作为参数: - 符号, -订单 的数量, - 订单的方向(买入,卖出)。 这类似于使用动态数组和OrderSendPacketAsync() 函数发送大量交易请求的特殊情况,此时"符号 "和 "类型 " 字段对动态数组的每个元素 都是相同的。 Yedelkin 2012.06.05 14:21 #45 在进行异步交易时,我们并不确切知道任何特定请求是如何被触发的。特别是,我们不知道当其中一个异步请求被部分执行时,有多少量是未完成的。 你能告诉我,如果我理解正确的话,无论是在外汇交易还是在股票交易中,订单都来自于历史属性 订单量_当前 未填写的数量 允许我们毫不含糊地确定一个异步请求是如何完全执行的?也就是说,当一个市场订单在外汇市场上被异步发送时,当它出现在历史记录中时,我们可以确定,如果ORDER_VOLUME_CURRENT==0.0,则该订单已经被完全执行,但如果ORDER_VOLUME_CURRENT包含一个非零值,则该值应被视为该外汇市场订单的未完成量,这是否正确 ? 这个问题是由以下事实引起的:这里:https://www.mql5.com/ru/forum/3775/page28#comment_84851,强调ORDER_VOLUME_CURRENT 属性是指在股票市场上使用的订单。 Yedelkin 2012.06.19 12:14 #46 关于历史上出现的异步请求的问题。 当OrderSendAsync() 返回true,并且result.retcode字段包含10008,那么根据Reference,它 "意味着请求被发送,但并不保证它到达交易服务器"。 问题:如果一个异步请求被终端成功发送,但没有到达服务器,这样的请求会一直在历史中结束吗?换句话说,会不会出现这样的情况:一个异步请求被成功地(根据所有迹象)发送到服务器,但有关它的信息不会出现在历史中?如果这种情况是可能的,在什么条件下? Документация по MQL5: Торговые функции / OrderSend www.mql5.com Торговые функции / OrderSend - Документация по MQL5 Renat Fatkhullin 2012.06.19 15:14 #47 Yedelkin: 问题:如果一个异步请求被终端成功发送,但没有到达服务器,这样的请求信息会一直出现在历史中吗?换句话说,会不会出现这样的情况:一个异步请求被成功地发送到服务器(在所有方面),但关于它的信息却没有出现在历史中?如果这种情况是可能的,在什么条件下? 如果请求没有到达服务器,它就没有机会出现在客户终端。 Yedelkin 2012.06.20 07:12 #48 Renat: 如果请求没有到达服务器,它就没有机会出现在客户终端。 哎呀!事实证明,一个成功发送的异步请求 很容易丢失,不会出现在历史上。 Документация по MQL5: Торговые функции / OrderSendAsync www.mql5.com Торговые функции / OrderSendAsync - Документация по MQL5 --- 2012.06.20 09:16 #49 Yedelkin: 哎呀!事实证明,一个成功发送的异步请求 很容易丢失,不能进入历史。 不。 Renat Fatkhullin 2012.06.20 15:47 #50 Yedelkin: 事实证明,一个成功发送的 异步请求 很容易丢失,不能进入历史。问题是,异步请求实际上没有 "成功发送 "的状态。成功完成该功能仅意味着 "从客户的角度看订单是正确的,并被扔进了网络管道,等待OnTrade的答复"。 123456789 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
如果你的建议只是补充一个现有的功能,那么就没有什么,否则就不清楚一个简单的MqlPacketTradeRequest结构是如何...
...如果MqlPacketTradeRequest结构是MqlTradeRequest结构的 动态数组的结构,它可能会打破整个服务器淹没在简单查询结构中的逻辑。
否则,在终端层面,我们将不得不把这个数据包分割成不同的请求,这将否定引入这个重载的全部意义。
似乎我们因为异步结构而 "同意 "了这样一个变体。
在哪里?
packet_request将包括一个MqlTradeRequest 结构的数组...。
那么所有这些想法都是讨论的原始材料 :-)
我认为,一批相同的应用只需要用于示范目的,在工作中会使用不同的符号,不同的体积,当然还有不同的方向。因此,每个申请者都必须单独检查,所以批量发送没有意义。
...如果MqlPacketTradeRequest结构是MqlTradeRequest结构的 动态数组的结构,就会破坏整个服务器的逻辑,而服务器是为简单查询结构设计的。
在我看来,OrderSendAsync()函数应该被做成参数化,而不是为发送订单创建一个循环。例如,OrderSendAsync(Symbol(), number, direction)。作为参数: - 符号, -订单 的数量, - 订单的方向(买入,卖出)。
在进行异步交易时,我们并不确切知道任何特定请求是如何被触发的。特别是,我们不知道当其中一个异步请求被部分执行时,有多少量是未完成的。
你能告诉我,如果我理解正确的话,无论是在外汇交易还是在股票交易中,订单都来自于历史属性
订单量_当前
允许我们毫不含糊地确定一个异步请求是如何完全执行的?也就是说,当一个市场订单在外汇市场上被异步发送时,当它出现在历史记录中时,我们可以确定,如果ORDER_VOLUME_CURRENT==0.0,则该订单已经被完全执行,但如果ORDER_VOLUME_CURRENT包含一个非零值,则该值应被视为该外汇市场订单的未完成量,这是否正确 ?
这个问题是由以下事实引起的:这里:https://www.mql5.com/ru/forum/3775/page28#comment_84851,强调ORDER_VOLUME_CURRENT 属性是指在股票市场上使用的订单。
关于历史上出现的异步请求的问题。
当OrderSendAsync() 返回true,并且result.retcode字段包含10008,那么根据Reference,它 "意味着请求被发送,但并不保证它到达交易服务器"。
问题:如果一个异步请求被终端成功发送,但没有到达服务器,这样的请求会一直在历史中结束吗?换句话说,会不会出现这样的情况:一个异步请求被成功地(根据所有迹象)发送到服务器,但有关它的信息不会出现在历史中?如果这种情况是可能的,在什么条件下?
问题:如果一个异步请求被终端成功发送,但没有到达服务器,这样的请求信息会一直出现在历史中吗?换句话说,会不会出现这样的情况:一个异步请求被成功地发送到服务器(在所有方面),但关于它的信息却没有出现在历史中?如果这种情况是可能的,在什么条件下?
如果请求没有到达服务器,它就没有机会出现在客户终端。
哎呀!事实证明,一个成功发送的异步请求 很容易丢失,不能进入历史。
事实证明,一个成功发送的 异步请求 很容易丢失,不能进入历史。
问题是,异步请求实际上没有 "成功发送 "的状态。
成功完成该功能仅意味着 "从客户的角度看订单是正确的,并被扔进了网络管道,等待OnTrade的答复"。