程序库: MT4Orders - 页 94 1...878889909192939495 新评论 fxsaber 2025.12.15 13:25 #931 hini #: 我明白问题的意思,但我想弄清楚:是否可以只获得类似于 MT5 仓位历史记录的列表,而不详细说明? 交易、自动交易系统和交易策略测试论坛 库:MT4Orders fxsaber, 2025.12.15 11:48 AM https://www.mql5.com/ru/blogs/post/754817 hini 2025.12.15 14:06 #932 fxsaber #: 我试过了,结果与 MT5 中的历史仓位列表不一样。尽管两个平仓合并了,但交易量仍然少了 0.01 手。 fxsaber 2025.12.15 15:46 #933 hini #: 量仍不够 0.01 手。 提供错误的证据。我建议在 MT4 上开设一个模拟账户,并尝试进行同样的交易操作。 hini 2025.12.15 16:16 #934 fxsaber # : 提供错误证据。我建议在 MT4 上开设一个模拟账户,并尝试进行相同的交易操作。 明白了,确实与 MT4 相同。 fxsaber 2025.12.16 13:12 #935 hini #:是否有可能获得类似 MT5 仓位历史记录的列表? 通过快照。 #define MT4ORDERS_BYPASS_MAXTIME 1000000 // 等待交易环境同步的最长时间(以微秒为单位 #include <MT4Orders.mqh> //https://www.mql5.com/zh/code/16006 #define VIRTUAL_SNAPSHOT_REFRESHTIME 1000 // 用于更新的快照寿命。在 MT5 中需要连接 MT4Orders.mqh #include <fxsaber\Virtual\Virtual.mqh> //https://www.mql5.com/zh/code/22577 #define Bid SymbolInfoDouble(_Symbol, SYMBOL_BID) #define Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK) void PrintHistory() { for (uint i = OrdersHistoryTotal(); (bool)i--;) if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) OrderPrint(); } void OnStart() { if (AccountInfoInteger(ACCOUNT_TRADE_MODE) == ACCOUNT_TRADE_MODE_DEMO) { const TICKET_TYPE Ticket1 = OrderSend(_Symbol, OP_BUY, 1, Ask, 0, 0, 0); const TICKET_TYPE Ticket2 = OrderSend(_Symbol, OP_SELL, 1, Bid, 0, 0, 0); if (OrderCloseBy(Ticket1, Ticket2)) // OrderCloseBy(Ticket2, Ticket1) 是另一个序列。 { Print("\nWith CloseBy."); PrintHistory(); // 结果取决于输入参数的顺序 OrderCloseBy. Print("\nWithout CloseBy."); VIRTUAL::Snapshot(VIRTUAL_SNAPSHOT_REFRESHTIME, -1, false, "", false); PrintHistory(); // 结果不是 зависит от последовательности входных параметров OrderCloseBy. } } }结果。With CloseBy. #151231378604 2025.12.16 14:59:36.869 sell 0.00 GBPJPY 207.722 0.000 0.000 2025.12.16 14:59:36.904 207.722 0.00 0.00 0.00 #151304734151 by #151304734153 0 #151231378603 2025.12.16 14:59:36.834 buy 1.00 GBPJPY 207.734 0.000 0.000 2025.12.16 14:59:36.904 207.722 0.00 0.00 -6.59 #151304734151 by #151304734153 0 #151231377009 2025.12.16 14:59:15.351 balance 0.00 0.000 0.000 0.000 2025.12.16 14:59:15.351 0.000 0.00 0.00 100000.00 0 Without CloseBy. #151231378603 2025.12.16 14:59:36.834 buy 1.00 GBPJPY 207.734 0.000 0.000 2025.12.16 14:59:36.869 207.722 0.00 0.00 -6.59 #151304734151 by #151304734153 0: -12 (-12) - 00:00:00 #151231377009 2025.12.16 14:59:15.351 balance 0.00 0 0 0 2025.12.16 14:59:15.351 0 0.00 0.00 100000.00 0 - 00:00:00 hini 2025.12.16 15:45 #936 fxsaber # : 通过快照。 好的,非常感谢! hini 2025.12.17 02:14 #937 这似乎不正确;方向不对,订单号似乎也不匹配。 With CloseBy. #721743851 2025.12.16 06:12:03.182 buy 0.02 XAUUSDm 4285.524 0.000 0.000 2025.12.16 06:50:55.122 4289.859 0.00 0.00 8.67 0 #721743849 2025.12.16 06:10:25.029 buy 0.03 XAUUSDm 4286.454 0.000 0.000 2025.12.16 06:50:54.942 4289.859 0.00 0.00 10.22 0 #721743835 2025.12.16 06:14:10.761 sell 0.03 BTCUSDm 86202.58 0.00 0.00 2025.12.16 06:50:54.142 86461.98 0.00 0.00 -7.78 0 #721743834 2025.12.16 06:10:41.259 sell 0.03 BTCUSDm 86199.15 0.00 0.00 2025.12.16 06:50:54.123 86461.98 0.00 0.00 -7.89 0 #721743827 2025.12.16 06:11:07.913 buy 0.02 GBPUSDm 1.33627 0.00000 0.00000 2025.12.16 06:50:54.069 1.33626 0.00 0.00 -0.02 0 #721743824 2025.12.16 06:10:55.744 buy 0.04 EURUSDm 1.17503 0.00000 0.00000 2025.12.16 06:50:54.032 1.17511 0.00 0.00 0.32 0 #721743822 2025.12.16 06:13:38.019 sell 0.00 XAUUSDm 4286.352 0.000 0.000 2025.12.16 06:50:53.875 4286.352 0.00 0.00 0.00 #999167005 by #999174176 0 #721743821 2025.12.16 06:10:25.029 buy 0.01 XAUUSDm 4286.454 0.000 0.000 2025.12.16 06:50:53.875 4286.352 0.00 0.00 -0.10 #999167005 by #999174176 0 Without CloseBy. #721743851 2025.12.16 06:12:03.182 buy 0.02 XAUUSDm 4285.524 0.000 0.000 2025.12.16 06:50:55.122 4289.859 0.00 0.00 8.67 0: +4335 (+4335) - 00:38:52 #721743849 2025.12.16 06:10:25.029 buy 0.03 XAUUSDm 4286.454 0.000 0.000 2025.12.16 06:50:54.942 4289.859 0.00 0.00 10.22 0: +3405 (+3405) - 00:40:29 #721743835 2025.12.16 06:14:10.761 sell 0.03 BTCUSDm 86202.58 0.00 0.00 2025.12.16 06:50:54.142 86461.98 0.00 0.00 -7.78 0: -25940 (-25940) - 00:36:44 #721743834 2025.12.16 06:10:41.259 sell 0.03 BTCUSDm 86199.15 0.00 0.00 2025.12.16 06:50:54.123 86461.98 0.00 0.00 -7.89 0: -26283 (-26283) - 00:40:13 #721743827 2025.12.16 06:11:07.913 buy 0.02 GBPUSDm 1.33627 0.00000 0.00000 2025.12.16 06:50:54.069 1.33626 0.00 0.00 -0.02 0: -1 (-1) - 00:39:47 #721743824 2025.12.16 06:10:55.744 buy 0.04 EURUSDm 1.17503 0.00000 0.00000 2025.12.16 06:50:54.032 1.17511 0.00 0.00 0.32 0: +8 (+8) - 00:39:59 #721743821 2025.12.16 06:10:25.029 buy 0.01 XAUUSDm 4286.454 0.000 0.000 2025.12.16 06:13:38.019 4286.352 0.00 0.00 -0.10 #999167005 by #999174176 0: -102 (-102) - 00:03:13 fxsaber 2025.12.17 08:22 #938 关于交易、自动交易系统和测试交易策略的论坛 图书馆:MT4Orders hini, 2025.12.17 02:14 pm. 这似乎不正确;方向不正确,订单号似乎也不匹配。 With CloseBy. #721743849 2025.12.16 06:10:25.029 buy 0.03 XAUUSDm 4286.454 0.000 0.000 2025.12.16 06:50:54.942 4289.859 0.00 0.00 10.22 0 #721743822 2025.12.16 06:13:38.019 sell 0.00 XAUUSDm 4286.352 0.000 0.000 2025.12.16 06:50:53.875 4286.352 0.00 0.00 0.00 #999167005 by #999174176 0 #721743821 2025.12.16 06:10:25.029 buy 0.01 XAUUSDm 4286.454 0.000 0.000 2025.12.16 06:50:53.875 4286.352 0.00 0.00 -0.10 #999167005 by #999174176 0 Without CloseBy. #721743849 2025.12.16 06:10:25.029 buy 0.03 XAUUSDm 4286.454 0.000 0.000 2025.12.16 06:50:54.942 4289.859 0.00 0.00 10.22 0: +3405 (+3405) - 00:40:29 #721743821 2025.12.16 06:10:25.029 buy 0.01 XAUUSDm 4286.454 0.000 0.000 2025.12.16 06:13:38.019 4286.352 0.00 0.00 -0.10 #999167005 by #999174176 0: -102 (-102) - 00:03:13 在 MT5 中,交易历史中只有两个实体:交易和订单。交易历史中没有头寸,而且多年来 MT5 都不显示平仓头寸。 MQ 通过从交易/订单历史生成头寸历史,创建了这种历史显示模式。这就是生成。不幸的是,在某些情况下它是错误的。尤其是上述情况。 让我们考虑一下这种情况下的交易操作时间顺序。 执行交易 2025.12.16 06:10:25.029 721657655 BUY 0.04 - 开仓 999167005 BUY 0.04。 交易执行 2025.12.16 06:13:38.019 721662376 SELL 0.01 - 开仓 999174176 SELL 0.01。 交易执行 2025.12.16 06:50:54.942 721743849 SELL 0.03 - 关闭仓位 999167005 BUY 0.03。 总共进行了三笔交易。这与上面报价中脚本显示的完全一致。 在交易历史中,OrderTicket 是关闭仓位的交易票据。每个仓位都有自己的订单票据。MT4Orders 生成的仓位历史清晰明了。 相同的 POSITION_ID(OrderTicketID)值可用于不同的仓位,这些仓位在存在期间甚至没有重叠。MT5 可自由生成仓位历史记录。 请看 MT5 仓位历史生成的这几行字(红色不是我写的)。 这里有很多问题。特别是,是否有 0.05 手的交易周转率(满圈)? 博客上详细介绍了许多不同的交易情况。 反向交易: 减少最大回撤以及在其它市场上测试 hini 2025.12.17 08:45 #939 我重复了实验,看来 MT5 生成的历史仓位是正确的: 在这里,我手动建仓:买入-0.04、卖出-0.01、买入-0.04,然后一键平仓。 而通过 CloseBy 生成的历史仓位与我手动创建的仓位不同。 With CloseBy. #726199620 2025.12.17 08:31:37.613 buy 0.04 XAUUSDm 4315.506 0.000 0.000 2025.12.17 08:31:54.047 4315.881 0.00 0.00 1.50 0 #726199619 2025.12.17 08:31:00.023 buy 0.03 XAUUSDm 4315.885 0.000 0.000 2025.12.17 08:31:54.038 4315.881 0.00 0.00 -0.02 0 #726199617 2025.12.17 08:31:04.356 sell 0.00 XAUUSDm 4315.630 0.000 0.000 2025.12.17 08:31:53.880 4315.630 0.00 0.00 0.00 #1004816081 by #1004816270 0 #726199616 2025.12.17 08:31:00.023 buy 0.01 XAUUSDm 4315.885 0.000 0.000 2025.12.17 08:31:53.880 4315.630 0.00 0.00 -0.26 #1004816081 by #1004816270 0 Without CloseBy. #726199620 2025.12.17 08:31:37.613 buy 0.04 XAUUSDm 4315.506 0.000 0.000 2025.12.17 08:31:54.047 4315.881 0.00 0.00 1.50 0: +375 (+375) - 00:00:17 #726199619 2025.12.17 08:31:00.023 buy 0.03 XAUUSDm 4315.885 0.000 0.000 2025.12.17 08:31:54.038 4315.881 0.00 0.00 -0.02 0: -4 (-4) - 00:00:54 #726199616 2025.12.17 08:31:00.023 buy 0.01 XAUUSDm 4315.885 0.000 0.000 2025.12.17 08:31:04.356 4315.630 0.00 0.00 -0.26 #1004816081 by #1004816270 0: -255 (-255) - 00:00:04 以下是 MT5: 历史仓位 fxsaber 2025.12.17 09:21 #940 hini #:而且通过 CloseBy 生成的仓位历史记录与我手动创建的仓位历史记录不同。 它与时间线完全吻合。再次说明。MT5 生成的交易历史记录。这是对已关闭头寸的歪曲表示。 您不应以 MT5 显示的内容为指导,而应以常识为指导。 1...878889909192939495 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我明白问题的意思,但我想弄清楚:是否可以只获得类似于 MT5 仓位历史记录的列表,而不详细说明?
交易、自动交易系统和交易策略测试论坛
库:MT4Orders
fxsaber, 2025.12.15 11:48 AM
https://www.mql5.com/ru/blogs/post/754817
量仍不够 0.01 手。
提供错误证据。我建议在 MT4 上开设一个模拟账户,并尝试进行相同的交易操作。
是否有可能获得类似 MT5 仓位历史记录的列表?
结果。
通过快照。
这似乎不正确;方向不对,订单号似乎也不匹配。
关于交易、自动交易系统和测试交易策略的论坛
图书馆:MT4Orders
hini, 2025.12.17 02:14 pm.
这似乎不正确;方向不正确,订单号似乎也不匹配。
在 MT5 中,交易历史中只有两个实体:交易和订单。交易历史中没有头寸,而且多年来 MT5 都不显示平仓头寸。
MQ 通过从交易/订单历史生成头寸历史,创建了这种历史显示模式。这就是生成。不幸的是,在某些情况下它是错误的。尤其是上述情况。
让我们考虑一下这种情况下的交易操作时间顺序。
总共进行了三笔交易。这与上面报价中脚本显示的完全一致。
在交易历史中,OrderTicket 是关闭仓位的交易票据。每个仓位都有自己的订单票据。MT4Orders 生成的仓位历史清晰明了。
相同的 POSITION_ID(OrderTicketID)值可用于不同的仓位,这些仓位在存在期间甚至没有重叠。MT5 可自由生成仓位历史记录。
请看 MT5 仓位历史生成的这几行字(红色不是我写的)。
这里有很多问题。特别是,是否有 0.05 手的交易周转率(满圈)?
博客上详细介绍了许多不同的交易情况。
我重复了实验,看来 MT5 生成的历史仓位是正确的:
在这里,我手动建仓:买入-0.04、卖出-0.01、买入-0.04,然后一键平仓。
而通过 CloseBy 生成的历史仓位与我手动创建的仓位不同。
以下是 MT5: 历史仓位
而且通过 CloseBy 生成的仓位历史记录与我手动创建的仓位历史记录不同。
它与时间线完全吻合。再次说明。MT5 生成的交易历史记录。这是对已关闭头寸的歪曲表示。
您不应以 MT5 显示的内容为指导,而应以常识为指导。