mql4语言的特点、微妙之处以及技巧 - 页 35 1...282930313233343536 新评论 Andrei Trukhanovich 2021.12.28 17:52 #341 fxsaber #:所以我现在想知道如何在一个时间内完成所有的订单。 我不知道该怎么做,但我正试图以这样的方式来写,使这种滑坡不会导致关键的后果。 概率会降低,但要减去账户管理的多样化和复杂化。 fxsaber 2021.12.28 19:40 #342 Andrei Trukhanovich #:或者,将机器人分散在不同的账户中。 然后禁止,比如说,禁止放货单的过期。一般来说,是一个拐杖。 一个基本的必需品有这样一个不幸的特殊性。显然,要通过快照的方式来进行。 Igor Makanu 2021.12.29 00:59 #343 fxsaber #:谢谢你的详细答复!现在我想知道如何在一个时间内完成所有订单。 记住第一个和最后一个订单(门票)如何? 并在循环完成后,检查第一个和最后一个订单的票数是否与计数前相同。 int n = OrdersTotal(); if(n == 0) return(0.0); else if(n == 1 && OrderSelect(0, SELECT_BY_POS)) return(OrderLots()); int t_last = OrderSelect(n - 1, SELECT_BY_POS) ? OrderTicket() : -1; int t_first = OrderSelect(0, SELECT_BY_POS) ? OrderTicket() : -1; SZY: 从逻辑上讲,OrderSelect()应该负责这种碰撞--在订单表发生变化的情况下,它应该返回错误,但我不记得在论坛的任何地方看到过OrderSelect()返回错误,我也没有遇到过OrderSelect()的错误处理程序。 fxsaber 2021.12.29 01:20 #344 Igor Makanu #:能否记住第一个和最后一个订单(票)? 如果没有对票据序列的完整记忆,这样的解决方案将是失败的。 Igor Makanu 2021.12.29 01:29 #345 fxsaber #:如果你没有完全记住门票的顺序,这个方案就会失败。 而完全保存票据也会导致失败,因为当我们在循环运行时,已经处理过的订单的状态可能会改变 当然,我不确定,但是如果当我们在循环中时,一个订单被关闭,OrderTotal()将改变。 如果订单被关闭,一个新的订单打开,那么票据和/或OrderSelect(0)或OrderSelect(OrderTotal()-1)将被改变。 在你看来,什么样的情况会发生,使之前的 "极端订单 "和OrderTotal()本身保持不变? fxsaber 2021.12.29 03:02 #346 Igor Makanu #:在你看来,什么情况下会发生保持相同的 "极端订单 "和OrderTotal()本身? 最有可能的是,当订单表被摇动时,OrdersTotal会发生变化。 然后就有可能重新填充限位器,形成一个额外的位置。 Andrei Trukhanovich 2021.12.29 10:15 #347 Igor Makanu #:我们能记住第一个和最后一个订单(票)吗? 记忆中的第一个人什么都不做 Taras Slobodyanik 2021.12.29 10:41 #348 fxsaber 调用函数 之前和之后存在的顺序?还是会算两次。 也就是说,当一个订单被删除或在枚举期间出现时,索引会发生什么? 我收集了一系列的票据,并与之合作。 如果OrdersTotal或Balance或Margin发生了变化--那么必须重新创建列表。 因此,EA总是只对它自己选定的票进行工作。 Igor Makanu 2021.12.29 11:20 #349 Andrei Trukhanovich #:记忆中的第一个人并没有做什么 这些都是架构实施的特殊性,没有记录在案,将来也没有人可以保证......。 注意OrderTotal()和OrdersHistoryTotal(),以及最后一个订单的门票 如果这些值在循环计算后发生变化,则处理 但不可能有通用和可靠的解决方案--这里的任务是猜测服务器上会发生什么,数据如何通过网络传递,以及在终端的邻近图表中发生了什么))))。 唯一值得期待的是OrderSelect() 的速度--如果我没记错的话,它每秒的调用量超过一百万 次 Valeriy Yastremskiy 2021.12.29 12:00 #350 fxsaber #:如果没有一个完整的票务序列记忆,这样的解决方案就会失败。记忆可能并不昂贵,但追踪全部状态可能很昂贵。我同意前面的观点,通过合理性和优先级的逻辑来减少负荷。 我们所处的异步世界并不保证响应请求的顺序,也根本不保证顺序。 1...282930313233343536 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
所以我现在想知道如何在一个时间内完成所有的订单。
我不知道该怎么做,但我正试图以这样的方式来写,使这种滑坡不会导致关键的后果。
概率会降低,但要减去账户管理的多样化和复杂化。
或者,将机器人分散在不同的账户中。
然后禁止,比如说,禁止放货单的过期。一般来说,是一个拐杖。
一个基本的必需品有这样一个不幸的特殊性。显然,要通过快照的方式来进行。
谢谢你的详细答复!现在我想知道如何在一个时间内完成所有订单。
记住第一个和最后一个订单(门票)如何?
并在循环完成后,检查第一个和最后一个订单的票数是否与计数前相同。
SZY: 从逻辑上讲,OrderSelect()应该负责这种碰撞--在订单表发生变化的情况下,它应该返回错误,但我不记得在论坛的任何地方看到过OrderSelect()返回错误,我也没有遇到过OrderSelect()的错误处理程序。
能否记住第一个和最后一个订单(票)?
如果没有对票据序列的完整记忆,这样的解决方案将是失败的。
如果你没有完全记住门票的顺序,这个方案就会失败。
而完全保存票据也会导致失败,因为当我们在循环运行时,已经处理过的订单的状态可能会改变
当然,我不确定,但是如果当我们在循环中时,一个订单被关闭,OrderTotal()将改变。
如果订单被关闭,一个新的订单打开,那么票据和/或OrderSelect(0)或OrderSelect(OrderTotal()-1)将被改变。
在你看来,什么样的情况会发生,使之前的 "极端订单 "和OrderTotal()本身保持不变?
在你看来,什么情况下会发生保持相同的 "极端订单 "和OrderTotal()本身?
最有可能的是,当订单表被摇动时,OrdersTotal会发生变化。
然后就有可能重新填充限位器,形成一个额外的位置。
我们能记住第一个和最后一个订单(票)吗?
记忆中的第一个人什么都不做
也就是说,当一个订单被删除或在枚举期间出现时,索引会发生什么?
我收集了一系列的票据,并与之合作。
如果OrdersTotal或Balance或Margin发生了变化--那么必须重新创建列表。
因此,EA总是只对它自己选定的票进行工作。
记忆中的第一个人并没有做什么
这些都是架构实施的特殊性,没有记录在案,将来也没有人可以保证......。
注意OrderTotal()和OrdersHistoryTotal(),以及最后一个订单的门票
如果这些值在循环计算后发生变化,则处理
但不可能有通用和可靠的解决方案--这里的任务是猜测服务器上会发生什么,数据如何通过网络传递,以及在终端的邻近图表中发生了什么))))。
唯一值得期待的是OrderSelect() 的速度--如果我没记错的话,它每秒的调用量超过一百万 次
如果没有一个完整的票务序列记忆,这样的解决方案就会失败。
记忆可能并不昂贵,但追踪全部状态可能很昂贵。我同意前面的观点,通过合理性和优先级的逻辑来减少负荷。
我们所处的异步世界并不保证响应请求的顺序,也根本不保证顺序。