程序库: MT4Orders - 页 60 1...535455565758596061626364656667...95 新评论 fxsaber 2021.05.04 11:20 #591 // 更改列表: // 04.05.2021 // 修复:未能消失的 MT5 订单开仓不再作为 MT4 订单列出。 // 修复:MT5 CloseBy 类型订单不再作为 MT4 订单列出。 MT5 的另一项功能(完全执行的订单和订单生成的头寸可以同时存在)被库规避。 我不得不再次潜入 MT5 的荒野中寻找解决方案。这次更新确实很重要。尽管它并不明显。 ZЫ 我正试图为MT5 的 另一个令人不快的功能 找到第三方解决方案。 fxsaber 2021.05.04 11:21 #592 Vitaly Muzichenko:为何如此悲伤? 如果从知识库下载文件,应该没问题。 traveller00 2021.05.04 14:01 #593 Vitaly Muzichenko:为何如此悲伤? 已向 https://www.mql5.com/ru/forum/1111/page3003#comment_21981258 报告,但看起来它仍然存在。但它只影响显示。如果点击文件并下载,一切正常。 Vitaly Muzichenko 2021.05.04 14:07 #594 traveller00:已向 https://www.mql5.com/ru/forum/1111/page3003#comment_21981258 报告,但看起来它仍然存在。但它只影响显示。如果点击文件并下载,一切正常。 谢谢!是的,这样显示正常。 fxsaber 2021.05.12 18:24 #595 这是 MT4 风格的一个有趣特点,这也是我在这里而不是在配置文件主题中 写作的原因。 乍一看,这两个代码应该产生相同的结果。 while (OrdersTotal() <= 1) if (OrderSelect(0, SELECT_BY_POS)) OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 0); else OrderSend(_Symbol, OP_BUY, 1, Ask, 0, 0, 0); while (OrdersTotal() <= 1) if (!OrdersTotal()) OrderSend(_Symbol, OP_BUY, 1, Ask, 0, 0, 0); else if (OrderSelect(0, SELECT_BY_POS)) OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 0); 事实上并非如此。试着了解一下原因。 Особенности языка mql4, тонкости и приёмы работы 2017.02.24www.mql5.com В данной теме будут обсуждаться недокументированные приёмы работы с языком mql4, примеры решения тех, или иных задач... fxsaber 2021.05.12 21:58 #596 // 更改列表: // 12.05.2021 // 添加:MT4ORDERS_BYPASS_MAXTIME 宏可解决 MT5 始终存在的交易环境不同步问题。具有里程碑意义的库更新!世界上唯一能够补偿 MT5 交易环境持续不同步的库。微不足道,但却是事实。您只需编写一个相应的宏。下面是一个例子。// 演示在 MT5 中打开双重仓位的决策。 //https://www.mql5.com/ru/forum/368178/page13#comment_22171524 #define MT4ORDERS_BYPASS_MAXTIME 1000000 // 等待交易环境同步的最长时间(微秒 #include <MT4Orders.mqh> //https://www.mql5.com/zh/code/16006 #define Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK) #define MinLot SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN) void OnStart() { MT4ORDERS::OrderSend_MaxPause = 0; // 拒绝内置的 MT5-OrderSend 结果修正。 while (!IsStopped() && OrdersTotal() <= 1) if (!OrdersTotal()) OrderSend(_Symbol, OP_BUY, MinLot, Ask, 0, 0, 0); else if (OrderSelect(0, SELECT_BY_POS)) OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 0); Print(MT4ORDERS::ByPass.ToString()); // 打印同步统计数据。 }该脚本只是交替打开和关闭仓位。只有在仓位反转(MT5 的常见问题)--库失效的情况下,它才会停止。如果有人遇到这种问题,请告诉我。对我来说,库更新是必须的。推荐使用。ZY 同步机制非常快。Amount = 126/247 = 51.01%, Time(mcs) = 983/9915 = 9.91%, TimeAvg = 40 mcs, MaxInterval = 2483 mcs. 该机制被调用 247 次(9915 微秒),其中 126 次(983 微秒)未同步。该机制的平均时间为 40 µs。最大值为 2483 µs。 fxsaber 2021.05.12 23:08 #597 图书馆重大更新。 Библиотеки: MT4Orders 2021.02.09www.mql5.com MT4Orders: Автор: fxsaber... amrali 2021.05.13 13:14 #598 发现错误: 函数 OrderOpenReason() 返回 (ENUM_DEAL_REASON)DEAL_REASON_TP 给止盈平仓的订单。 Andrey Khatimlianskii 2021.05.13 22:15 #599 fxsaber: #define MT4ORDERS_BYPASS_MAXTIME 1000000 // 等待交易环境同步的最长时间(微秒 感谢您的更新! 这一秒过后会发生什么?在没有同步的情况下还能继续工作吗? fxsaber: MT4ORDERS::OrderSend_MaxPause = 0; // 拒绝内置的 MT5-OrderSend 结果修正。 这需要 在战斗机器人中规定吗? Andrey Khatimlianskii 2021.05.13 22:40 #600 Andrey Khatimlianskii:这一秒过后会发生什么?在没有同步的情况下,操作会继续吗? 还是在交易操作前 检查 MT4ORDERS::ByPass.Is()(以确保没有不同步)就足够了? 1...535455565758596061626364656667...95 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
MT5 的另一项功能(完全执行的订单和订单生成的头寸可以同时存在)被库规避。
我不得不再次潜入 MT5 的荒野中寻找解决方案。这次更新确实很重要。尽管它并不明显。
ZЫ 我正试图为MT5 的 另一个令人不快的功能 找到第三方解决方案。
为何如此悲伤?
如果从知识库下载文件,应该没问题。
为何如此悲伤?
已向 https://www.mql5.com/ru/forum/1111/page3003#comment_21981258 报告,但看起来它仍然存在。但它只影响显示。如果点击文件并下载,一切正常。
已向 https://www.mql5.com/ru/forum/1111/page3003#comment_21981258 报告,但看起来它仍然存在。但它只影响显示。如果点击文件并下载,一切正常。
谢谢!是的,这样显示正常。
这是 MT4 风格的一个有趣特点,这也是我在这里而不是在配置文件主题中 写作的原因。
乍一看,这两个代码应该产生相同的结果。
事实上并非如此。试着了解一下原因。
具有里程碑意义的库更新!世界上唯一能够补偿 MT5 交易环境持续不同步的库。微不足道,但却是事实。
您只需编写一个相应的宏。下面是一个例子。
该脚本只是交替打开和关闭仓位。只有在仓位反转(MT5 的常见问题)--库失效的情况下,它才会停止。如果有人遇到这种问题,请告诉我。
对我来说,库更新是必须的。推荐使用。
ZY 同步机制非常快。
该机制被调用 247 次(9915 微秒),其中 126 次(983 微秒)未同步。该机制的平均时间为 40 µs。最大值为 2483 µs。发现错误:
函数 OrderOpenReason() 返回 (ENUM_DEAL_REASON)DEAL_REASON_TP 给止盈平仓的订单。
感谢您的更新!
这一秒过后会发生什么?在没有同步的情况下还能继续工作吗?
这需要 在战斗机器人中规定吗?
这一秒过后会发生什么?在没有同步的情况下,操作会继续吗?
还是在交易操作前 检查 MT4ORDERS::ByPass.Is()(以确保没有不同步)就足够了?