错误、漏洞、问题 - 页 2219 1...221222132214221522162217221822192220222122222223222422252226...3184 新评论 Alexey Navoykov 2018.06.18 22:10 #22181 fxsaber: ForexTimeFXTM-Demo01 的结果 脚本打开和关闭头寸,直到检测到一个 "幽灵订单"--既不在当前订单中,也不在历史上。我应该把它看作是一个错误还是一个平台特性? ZZY 剧本是这样写的:由于这种细微的差别,可能会有几个职位空缺。但这并不妨碍得到一个 "幻影订单"。我不想成为书呆子,但像这样的表达方式。 (ENUM_ORDER_TYPE)(1 - PositionGetInteger(POSITION_TYPE)) 你可能熟记某个枚举的所有数值以及它们的顺序,但其他人可能不知道这些内涵。 你不应该这样处理一个枚举。 简洁当然是人才的姐妹,但前提是它不会损害质量。 说到现在讨论的问题,应该检查的是order.deal,而不是result.order,因为要开仓。 因此,必须在仓位中找到,而不是订单。 不是这样吗? fxsaber 2018.06.18 22:19 #22182 Alexey Navoykov:当然,短小是人才的姐妹,但不影响质量。 这似乎是一个常见的MQL操作。 说到现在讨论的问题,应该检查的是order.deal,而不是result.order,以确定要开的仓位。 因此,应该在仓位中寻找,而不是订单。 是不是这样?在OrderSend 之后立即发送的初始订单可能在任何地方都找不到。这个位置比命令晚得多。 ZZY 在代码中,我特意留下了交易算法中最容易理解的语言--MQL4的注释。 Alexey Navoykov 2018.06.18 22:31 #22183 fxsaber: 在OrderSend之后立即发送的原始订单可能不在任何地方。这个位置比命令晚得多。这不是重点,事实上,根据文件,OrderSend没有义务接收任何门票。 当发送市场订单(MqlTradeRequest.action=TRADE_ACTION_DEAL)时,OrderSend()函数的成功结果并不意味着订单已被执行(相应的交易已被执行)。 在这种情况下,true仅意味着订单已被成功置于交易系统中进一步执行。交易服务器可以在返回的结果结构 中填写结果字段的值,如果这些数据在OrderSend()调用生成时它就知道。在一般情况下,与订单相对应的一个或多个交易事件可以在OrderSend()调用响应被发送后发生。因此,对于任何类型的交易请求,当收到OrderSend()结果时,你必须首先检查返回结果结构 中可用的交易服务器返回代码retcode和外部交易系统响应代码retcode_external(如果需要)。 所以,我们在任何情况下都不能没有OnTradeTransaction。 所以,事实证明,在MQL5中没有保证同步的交易操作。 fxsaber 2018.06.18 22:42 #22184 Alexey Navoykov:这其实并不重要,因为根据文件,OrderSend没有义务接收任何票据。 所以在任何情况下都必须检查OnTradeTransaction。你在任何情况下都不需要检查。这只是可选的。 在同步OrderSend之后,一个非零的Result.order总是告诉我们,从交易服务器上收到了一个注册有订单的响应。这张票正是来自服务器。而如果OrderSend成功,这个票据总是会被收到。 然而,令人沮丧的是,似乎不是因为OrderSend而发生的,而是在接受订单进入交易的那一刻。虽然有ORDER_STATE_REQUEST_ADD 用于这种情况。总之,等待MQ的答复。在我看来,当交易服务器上有一个订单,但在终端上同步OrderSend后,却没有任何消息,这就是一个错误。 Alexey Navoykov 2018.06.18 23:09 #22185 fxsaber:总之,等待MQ的答复。在我看来,这是一个错误,当交易服务器上有一个订单,但在终端上同步OrderSend后,却没有任何迹象。我更想说的是,我们应该要求开发者确保OrderSend的完全同步,无论是在终端还是在服务器上。 否则,如果不能保证执行的同步性,那么我们为什么需要这个函数? 为此,已经有OrderSendAsync。 Nikolai Semko 2018.06.18 23:59 #22186 Dmitriy:你好。今天我更新到1860版,在优化专家顾问时,我遇到了这个问题。 通行证之间的延迟是1分钟!能否请您指出可能是什么问题? p.s. 在更新之前,一切都像时钟一样工作。你是否在使用Bars功能? 如果是这样,请看这个。 Vladimir Pastushak 2018.06.19 17:51 #22187 只是一个问题。 也许制作通用文件是有意义的?唯一困扰我的是mq4和mq5的不断重命名。 关于项目,我在想,也许我应该做一个共同的扩展,如mq? 而且你可以直接从终端复制代码到终端,不需要在扩展中进行任何编辑... Konstantin Nikitin 2018.06.19 17:57 #22188 Vladimir Pastushak:只是一个问题。 也许制作通用文件是有意义的?唯一困扰我的是mq4和mq5的不断重命名。 关于项目,我在想,也许我应该做一个共同的扩展,如mq? 而且你可以直接从终端复制代码到终端,不需要在扩展中进行任何编辑...谁又禁止在mqh文件中写这些代码,并使用(#include) 连接它们。这就是我已经做了相当长一段时间的事情。 Vladimir Pastushak 2018.06.19 18:02 #22189 Konstantin Nikitin:谁又禁止在mqh文件中写这些代码,并以(#include) 连接它们。 这一点我已经做了很长时间了。你插上插头,我换上延长线......邻居。 fxsaber 2018.06.19 20:01 #22190 Alexey Navoykov:我想说的是,我们应该要求开发者确保OrderSend是完全同步的,无论是在终端还是在服务器上。 否则,如果不能保证同步执行,我们为什么要用这个函数呢? 已经有OrderSendAsync用于这个目的。让我把话说清楚。向平台的交易系统和终端本身同步发布ORDER。 1...221222132214221522162217221822192220222122222223222422252226...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
ForexTimeFXTM-Demo01 的结果
脚本打开和关闭头寸,直到检测到一个 "幽灵订单"--既不在当前订单中,也不在历史上。我应该把它看作是一个错误还是一个平台特性?
ZZY 剧本是这样写的:由于这种细微的差别,可能会有几个职位空缺。但这并不妨碍得到一个 "幻影订单"。
我不想成为书呆子,但像这样的表达方式。
你可能熟记某个枚举的所有数值以及它们的顺序,但其他人可能不知道这些内涵。 你不应该这样处理一个枚举。 简洁当然是人才的姐妹,但前提是它不会损害质量。
说到现在讨论的问题,应该检查的是order.deal,而不是result.order,因为要开仓。 因此,必须在仓位中找到,而不是订单。 不是这样吗?
当然,短小是人才的姐妹,但不影响质量。
这似乎是一个常见的MQL操作。
说到现在讨论的问题,应该检查的是order.deal,而不是result.order,以确定要开的仓位。 因此,应该在仓位中寻找,而不是订单。 是不是这样?
在OrderSend 之后立即发送的初始订单可能在任何地方都找不到。这个位置比命令晚得多。
ZZY 在代码中,我特意留下了交易算法中最容易理解的语言--MQL4的注释。
在OrderSend之后立即发送的原始订单可能不在任何地方。这个位置比命令晚得多。
这不是重点,事实上,根据文件,OrderSend没有义务接收任何门票。
当发送市场订单(MqlTradeRequest.action=TRADE_ACTION_DEAL)时,OrderSend()函数的成功结果并不意味着订单已被执行(相应的交易已被执行)。 在这种情况下,true仅意味着订单已被成功置于交易系统中进一步执行。交易服务器可以在返回的结果结构 中填写结果字段的值,如果这些数据在OrderSend()调用生成时它就知道。在一般情况下,与订单相对应的一个或多个交易事件可以在OrderSend()调用响应被发送后发生。因此,对于任何类型的交易请求,当收到OrderSend()结果时,你必须首先检查返回结果结构 中可用的交易服务器返回代码retcode和外部交易系统响应代码retcode_external(如果需要)。
所以,我们在任何情况下都不能没有OnTradeTransaction。
所以,事实证明,在MQL5中没有保证同步的交易操作。
这其实并不重要,因为根据文件,OrderSend没有义务接收任何票据。
你在任何情况下都不需要检查。这只是可选的。
在同步OrderSend之后,一个非零的Result.order总是告诉我们,从交易服务器上收到了一个注册有订单的响应。这张票正是来自服务器。而如果OrderSend成功,这个票据总是会被收到。
然而,令人沮丧的是,似乎不是因为OrderSend而发生的,而是在接受订单进入交易的那一刻。虽然有ORDER_STATE_REQUEST_ADD 用于这种情况。总之,等待MQ的答复。在我看来,当交易服务器上有一个订单,但在终端上同步OrderSend后,却没有任何消息,这就是一个错误。
总之,等待MQ的答复。在我看来,这是一个错误,当交易服务器上有一个订单,但在终端上同步OrderSend后,却没有任何迹象。
我更想说的是,我们应该要求开发者确保OrderSend的完全同步,无论是在终端还是在服务器上。 否则,如果不能保证执行的同步性,那么我们为什么需要这个函数? 为此,已经有OrderSendAsync。
你好。今天我更新到1860版,在优化专家顾问时,我遇到了这个问题。
通行证之间的延迟是1分钟!能否请您指出可能是什么问题?
p.s. 在更新之前,一切都像时钟一样工作。
你是否在使用Bars功能?
如果是这样,请看这个。
只是一个问题。
也许制作通用文件是有意义的?唯一困扰我的是mq4和mq5的不断重命名。 关于项目,我在想,也许我应该做一个共同的扩展,如mq?
而且你可以直接从终端复制代码到终端,不需要在扩展中进行任何编辑...
只是一个问题。
也许制作通用文件是有意义的?唯一困扰我的是mq4和mq5的不断重命名。 关于项目,我在想,也许我应该做一个共同的扩展,如mq?
而且你可以直接从终端复制代码到终端,不需要在扩展中进行任何编辑...
谁又禁止在mqh文件中写这些代码,并使用(#include) 连接它们。这就是我已经做了相当长一段时间的事情。
谁又禁止在mqh文件中写这些代码,并以(#include) 连接它们。 这一点我已经做了很长时间了。
你插上插头,我换上延长线......邻居。
我想说的是,我们应该要求开发者确保OrderSend是完全同步的,无论是在终端还是在服务器上。 否则,如果不能保证同步执行,我们为什么要用这个函数呢? 已经有OrderSendAsync用于这个目的。
让我把话说清楚。向平台的交易系统和终端本身同步发布ORDER。