无效的请求--刚刚开始,想不明白...... - 页 8 12345678 新评论 --- 2012.11.19 15:52 #71 papaklass:我以同样的方式实现了它,只是通过函数。我明白了,你的代码与MK的类似--在OrderCheck 和OrderSend 之间,有一层用户的错误处理。 Renat Fatkhullin 2012.11.19 16:32 #72 papaklass:我是这样实现的,只是通过函数。OrderCheck 是隐含的,必然在OrderSend中检查。因此,如果订单填写不正确,就会立即返回响应,而不把它送回服务器。 Renat Fatkhullin 2012.11.19 19:15 #73 papaklass:请看手册对此是怎么说的。第一个选择:我们看到该功能是用于贸易交易,没有提到支票。好吧,如果我说有检查,那就是真的。没有经过严格检查的订单不会离开终端。第二个亮点:我们看到检查是在服务器上进行的,开发人员建议使用OrderCheck()来检查请求,然后再将其发送到服务器。同样,也没有提到OrderSend()会进行任何验证。 我们特别建议交易者有机会提前发现订单是否被正确执行,并采取适当的行动。 无论谁想--都可以预先检查。谁不愿意--反正我们会为他们检查并返回类似的答案。唯一提到在发送请求前进行检查的地方是 "在结构的基本检查(指针检查)成功的情况下...."。但是,检查指针和检查请求结构字段的值是否有错误并不是一回事。而开发者建议使用OrderCheck()函数,则间接证明了OrderSend()在向服务器发送请求之前没有进行真正的错误检查。否则我们为什么要做 "黄油":OrderSend()先检查,然后必须由OrderCheck()再次进行同样的检查?因此,从参考文献中可以毫不含糊地看出,该检查只在服务器上进行。没有人会错过错误的或过多的流向服务器的请求。基本逻辑足以理解这一点。而且我们将扩大文件的内容。 [删除] 2012.11.24 10:13 #74 sergeev:你没有,所有的错误都由业务逻辑处理。我有一个。业务逻辑处理与业务逻辑有关的事件(例如,下单失败),但所有其他的(例如,服务器响应延迟)--一个通用模板,在此基础上绝对可以实现任何专家。但MT5在处理返回代码+异步方面要复杂很多倍。这就是我们正在讨论的问题,我以前也同样写过,关于这个问题的信息是零。而多年来,民主党人正试图以各种方式使自己与它的规定脱离关系。这就是我写的--经销商从一个有导致泄漏的点的产品中受益,即对MQ来说,它是增加销售的一个因素。唉,我们所处的市场是竞争对手(我们和MQ),而不是战友。你在向一个包装者提出不可能完成的任务。标准库不是商业逻辑。它是一个 "覆盖 "终端功能的封装器。糖果的馅料上有一个包装纸。 那么这样的结构设计就没有什么意义了。但包装商不能保证任何东西,因为是你在充当担保人。你的商业逻辑。:)就像打印功能不能保证磁盘上的自由空间一样。 和记录错误。你必须使用其他函数来处理错误,而且这些函数是针对特定情况的。即使是正确的包装器也不能保证所有的事情,但它可以许多与相关功能有关的事情。-亚历山大-,让我们来谈谈具体的缺陷,你说出你想解决的具体 缺陷。已经不止一次地写过具体的内容了。如果MQ无法提供一个现成的解决方案,至少让他们做一个关于错误处理和返回代码的手册。以 各种方式解锁。在4号文件中,这部分是存在的(例如在这种情况下等待30秒),部分是用户从经验中发现了对无记录情况的处理。对于5岁的孩子来说,根本就没有什么。既然有,就没有人会使用它。如果这就是MQ的反应,因为简单创建的交易基础设施原则上不允许这样做,那么我还能说什么呢 - 这是整个MT5项目的彻底失败,因为还有大量的其他障碍。如果你愿意,你可以浏览每个返回代码,看看主要的可能情况。我很乐意和您这样有经验的MQL5专家顾问一起做。 我们将等待时间和必要性。感谢上帝,我仍然有4个,这在很多方面都更舒适。 --- 2012.11.24 10:53 #75 -Alexey-:一个现成的解决方案,至少是一个错误处理和返回代码的指南哪些代码会导致处理问题? 编码 识别器 描述 10004 贸易_retcode_requote 征求意见稿 10006 交易代码_拒绝 要求被拒绝 10007 贸易_retcode_cancel 贸易商取消的请求 10008 贸易_retcode_placed 下订单 10009 交易_retcode_done 已执行的订单 10010 交易_retcode_done_partial 部分执行的请购单 10011 贸易_retcode_error 请求处理错误 10012 交易_retcode_timeout 由于时间过期,请求被取消 10013 交易代码无效 不正确的请求 10014 交易代码_无效的数量 请求中的数量不正确 10015 交易_retcode_invalid_price 请求中的价格不正确 10016 交易_retcode_invalid_stops 请求中的不正确站点 10017 交易_retcode_trade_disabled 禁止贸易 10018 交易_retcode_market_closed 市场已关闭 10019 交易_retcode_no_money 没有足够的资金来执行请求 10020 交易_retcode_price_changed 价格变化 10021 交易_retcode_price_off 没有报价来处理请求 10022 交易代码_无效的有效期 请求中的失效日期无效 10023 交易_retcode_order_changed 订单状态改变 10024 交易代码太多请求 要求过于频繁 10025 交易代码_无变化 要求没有变化 10026 交易_retcode_server_disables_at 自动交易被服务器拒绝 10027 贸易_retcode_client_disables_at 客户端禁止自动交易 10028 贸易_retcode_locked 请求被阻止处理 10029 贸易_retcode_frozen 冻结的订单或位置 10030 交易_retcode_invalid_fill 表示不支持的平衡订单类型 10031 贸易_retcode_connection 没有连接到贸易服务器 10032 贸易_retcode_only_real 只允许对真实账户进行操作 10033 交易_retcode_limit_orders 达到挂单数量的限制 10034 已达到交易代码限制的数量 该符号的订单和头寸数量已达到上限 更新时间:2012.11.14 Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте www.mql5.com Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5 Invalid request - just MQL5 Cookbook: 自定义信息面板上的仓位属性 为莫斯科交易所开发一个交易机器人从哪里开始呢? [删除] 2012.11.24 11:08 #76 例如,10004。哪里写着该怎么做?而四合院的文件中至少有一些东西。Можно без задержки обновить данные при помощи функции RefreshRates и повторить попытку. Если ошибка не исчезает, необходимо прекратить все попытки торговых операций и изменить логику программы. A100 2012.11.24 11:28 #77 sergeev: 哪些代码会引起处理问题? 10006(拒绝的原因是什么,还可能有什么原因没有在其他代码中列出?) 10011, 10013, 10028 [删除] 2012.12.25 07:14 #78 A100: 10006(拒绝的原因是什么,还可能有什么其他代码中没有说明的原因?) 10011, 10013, 10028 我支持这个问题。MQ,向你提出一个强烈的请求。请尽可能详细地对这4个代码进行评论。 combat.trader 2016.02.17 21:59 #79 同事们,已经厌倦了寻找真相。这个话题与我的需求相似,所以我在这里写信请求帮助!我下了立即执行 的订单,当它被挂起时,我检查每一个刻度的价格,如果可能的话,我跟踪它。 但由于某些原因,我总是得到错误10013。我翻遍了所有可能的论坛,几乎添加了初始命令的所有行数(尽管描述中说只有符号、行动和sl及tp足以满足这种类型的行动。没有什么是有效的!下面是代码。// проверяем условие на открытую сделку if (f_IsDealOpened()>0) { // здесь надо написать условия для коррекции ордеров MqlTradeRequest chrequest={0}; if (1)//(is_Str2) { PositionSelect(NULL); if(PositionGetInteger(POSITION_TYPE)==0) { chrequest.symbol=PositionGetSymbol(0); chrequest.order=PositionGetInteger(POSITION_IDENTIFIER); chrequest.volume=PositionGetDouble(POSITION_VOLUME); chrequest.action=TRADE_ACTION_SLTP; chrequest.sl = latest_price.bid - TrailingStop; chrequest.tp = PositionGetDouble(POSITION_TP); } else { chrequest.symbol=PositionGetSymbol(0); chrequest.order=PositionGetInteger(POSITION_IDENTIFIER); chrequest.volume=PositionGetDouble(POSITION_VOLUME); chrequest.action=TRADE_ACTION_SLTP; chrequest.sl = latest_price.ask + TrailingStop; chrequest.tp = PositionGetDouble(POSITION_TP); Alert(PositionSelect(NULL)); } } MqlTradeResult chresult; if (OrderSend(chrequest,chresult)==0) { Alert("Ошибка расчета функции OrderSend!"); return; } // анализируем код возврата торгового сервера if(mresult.retcode==10009 || mresult.retcode==10008) //запрос выполнен или ордер успешно помещен { Alert("Ордер по изменению SL успешно помещен, тикет ордера #: ",mresult.order,"!!"); open_order_ticket = mresult.order; open_order_price = mresult.price; return; } else { Alert("Запрос на измнение ордера не выполнен - код ошибки: ",GetLastError()); return; } return; } 12345678 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我以同样的方式实现了它,只是通过函数。
我明白了,你的代码与MK的类似--在OrderCheck 和OrderSend 之间,有一层用户的错误处理。
我是这样实现的,只是通过函数。
OrderCheck 是隐含的,必然在OrderSend中检查。
因此,如果订单填写不正确,就会立即返回响应,而不把它送回服务器。
请看手册对此是怎么说的。
第一个选择:我们看到该功能是用于贸易交易,没有提到支票。
好吧,如果我说有检查,那就是真的。
没有经过严格检查的订单不会离开终端。
第二个亮点:我们看到检查是在服务器上进行的,开发人员建议使用OrderCheck()来检查请求,然后再将其发送到服务器。同样,也没有提到OrderSend()会进行任何验证。
我们特别建议交易者有机会提前发现订单是否被正确执行,并采取适当的行动。
无论谁想--都可以预先检查。谁不愿意--反正我们会为他们检查并返回类似的答案。
唯一提到在发送请求前进行检查的地方是 "在结构的基本检查(指针检查)成功的情况下...."。但是,检查指针和检查请求结构字段的值是否有错误并不是一回事。而开发者建议使用OrderCheck()函数,则间接证明了OrderSend()在向服务器发送请求之前没有进行真正的错误检查。否则我们为什么要做 "黄油":OrderSend()先检查,然后必须由OrderCheck()再次进行同样的检查?
因此,从参考文献中可以毫不含糊地看出,该检查只在服务器上进行。
没有人会错过错误的或过多的流向服务器的请求。
基本逻辑足以理解这一点。而且我们将扩大文件的内容。
你没有,所有的错误都由业务逻辑处理。
我有一个。业务逻辑处理与业务逻辑有关的事件(例如,下单失败),但所有其他的(例如,服务器响应延迟)--一个通用模板,在此基础上绝对可以实现任何专家。
但MT5在处理返回代码+异步方面要复杂很多倍。
这就是我们正在讨论的问题,我以前也同样写过,关于这个问题的信息是零。而多年来,民主党人正试图以各种方式使自己与它的规定脱离关系。这就是我写的--经销商从一个有导致泄漏的点的产品中受益,即对MQ来说,它是增加销售的一个因素。唉,我们所处的市场是竞争对手(我们和MQ),而不是战友。
你在向一个包装者提出不可能完成的任务。标准库不是商业逻辑。它是一个 "覆盖 "终端功能的封装器。糖果的馅料上有一个包装纸。
那么这样的结构设计就没有什么意义了。
就像打印功能不能保证磁盘上的自由空间一样。 和记录错误。你必须使用其他函数来处理错误,而且这些函数是针对特定情况的。
即使是正确的包装器也不能保证所有的事情,但它可以许多与相关功能有关的事情。
已经不止一次地写过具体的内容了。如果MQ无法提供一个现成的解决方案,至少让他们做一个关于错误处理和返回代码的手册。以 各种方式解锁。在4号文件中,这部分是存在的(例如在这种情况下等待30秒),部分是用户从经验中发现了对无记录情况的处理。对于5岁的孩子来说,根本就没有什么。既然有,就没有人会使用它。
如果这就是MQ的反应,因为简单创建的交易基础设施原则上不允许这样做,那么我还能说什么呢 - 这是整个MT5项目的彻底失败,因为还有大量的其他障碍。
如果你愿意,你可以浏览每个返回代码,看看主要的可能情况。
我很乐意和您这样有经验的MQL5专家顾问一起做。 我们将等待时间和必要性。感谢上帝,我仍然有4个,这在很多方面都更舒适。
-Alexey-:
一个现成的解决方案,至少是一个错误处理和返回代码的指南
哪些代码会导致处理问题?
编码
识别器
描述
10004
贸易_retcode_requote
征求意见稿
10006
交易代码_拒绝
要求被拒绝
10007
贸易_retcode_cancel
贸易商取消的请求
10008
贸易_retcode_placed
下订单
10009
交易_retcode_done
已执行的订单
10010
交易_retcode_done_partial
部分执行的请购单
10011
贸易_retcode_error
请求处理错误
10012
交易_retcode_timeout
由于时间过期,请求被取消
10013
交易代码无效
不正确的请求
10014
交易代码_无效的数量
请求中的数量不正确
10015
交易_retcode_invalid_price
请求中的价格不正确
10016
交易_retcode_invalid_stops
请求中的不正确站点
10017
交易_retcode_trade_disabled
禁止贸易
10018
交易_retcode_market_closed
市场已关闭
10019
交易_retcode_no_money
没有足够的资金来执行请求
10020
交易_retcode_price_changed
价格变化
10021
交易_retcode_price_off
没有报价来处理请求
10022
交易代码_无效的有效期
请求中的失效日期无效
10023
交易_retcode_order_changed
订单状态改变
10024
交易代码太多请求
要求过于频繁
10025
交易代码_无变化
要求没有变化
10026
交易_retcode_server_disables_at
自动交易被服务器拒绝
10027
贸易_retcode_client_disables_at
客户端禁止自动交易
10028
贸易_retcode_locked
请求被阻止处理
10029
贸易_retcode_frozen
冻结的订单或位置
10030
交易_retcode_invalid_fill
表示不支持的平衡订单类型
10031
贸易_retcode_connection
没有连接到贸易服务器
10032
贸易_retcode_only_real
只允许对真实账户进行操作
10033
交易_retcode_limit_orders
达到挂单数量的限制
10034
已达到交易代码限制的数量
该符号的订单和头寸数量已达到上限
例如,10004。哪里写着该怎么做?而四合院的文件中至少有一些东西。
Можно без задержки обновить данные при помощи функции RefreshRates и повторить попытку. Если ошибка не исчезает, необходимо прекратить все попытки торговых операций и изменить логику программы.
哪些代码会引起处理问题?
10006(拒绝的原因是什么,还可能有什么原因没有在其他代码中列出?)
10011, 10013, 10028
10006(拒绝的原因是什么,还可能有什么其他代码中没有说明的原因?)
10011, 10013, 10028
同事们,已经厌倦了寻找真相。这个话题与我的需求相似,所以我在这里写信请求帮助!
我下了立即执行 的订单,当它被挂起时,我检查每一个刻度的价格,如果可能的话,我跟踪它。 但由于某些原因,我总是得到错误10013。我翻遍了所有可能的论坛,几乎添加了初始命令的所有行数(尽管描述中说只有符号、行动和sl及tp足以满足这种类型的行动。没有什么是有效的!下面是代码。