文章 "MQL5 酷客宝典: 读取持有锁仓仓位的属性" - 页 2 12 新评论 francisalmeida 2019.08.19 13:23 #11 你好,丹尼斯、 首先我要感谢你提供了这个神奇的程序库,它让像我这样的新手用户的生活变得非常轻松。我不是专业程序员,但也能理解、调整和调试一些代码。 我在一个正在测试的 EA 中使用了 "Test_Hedge_Properties "中的示例代码作为函数,结果发现在关闭所有(2 个)仓位后,当我调用函数 "Update_Hedge_Info" 时,在第一张单子关闭后,计算仓位数量 的变量 "hdg_number_of_pos_total "会从 (2) 更新为 (1)。 但是,在第二张票据关闭后,变量仍然显示(1),没有更新为(0)。 我不确定我的编码是否正确,但如果您能提供宝贵意见和专业知识,我将不胜感激。 现附上 EA 和截图。 谢谢并致以问候。 附加的文件: closed_hedge_position.PNG 56 kb EA_103337_1.01f.mq5 36 kb Marco Klaus Gerhard Niese 2025.09.06 17:19 #12 我在 EA 中使用hedge_info.Margin() 计算当前保证金。 我想知道CHedgePositionInfo::AveragePrice"switch(curr_quote_type) ... case QUOTE_TYPE_CROSS: "中的以下 (*) 行。 我使用的是 EURCHF,major_symbol 是USDEUR。由于 99.9% 的外汇经纪商 都不支持 USDEUR,而最多只 支持用户定义的交叉盘,因此在进行回溯测试时,以下 SymbolSelect 命令会导致错误信息。可能是经纪商的问题,但在我的情况下,这会导致策略测试器 突然中止,因为现在的有效符号是美元兑欧元,而不是我最初启动策略测试器的货币对(欧元兑瑞士法郎)。 if(SymbolSelect(major_symbol,true)) // (*) 因此,对我有帮助的方法是在CHedgePositionInfo::AveragePrice 的 末尾将 USDEUR 从市场观察中移除: SymbolSelect(major_symbol,false); Discussion of article "MQL5 12 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你好,丹尼斯、
首先我要感谢你提供了这个神奇的程序库,它让像我这样的新手用户的生活变得非常轻松。我不是专业程序员,但也能理解、调整和调试一些代码。
我在一个正在测试的 EA 中使用了 "Test_Hedge_Properties "中的示例代码作为函数,结果发现在关闭所有(2 个)仓位后,当我调用函数
"Update_Hedge_Info" 时,在第一张单子关闭后,计算仓位数量 的变量 "hdg_number_of_pos_total "会从 (2) 更新为 (1)。
但是,在第二张票据关闭后,变量仍然显示(1),没有更新为(0)。
我不确定我的编码是否正确,但如果您能提供宝贵意见和专业知识,我将不胜感激。
现附上 EA 和截图。
谢谢并致以问候。
我在 EA 中使用hedge_info.Margin() 计算当前保证金。
我想知道CHedgePositionInfo::AveragePrice"switch(curr_quote_type) ... case QUOTE_TYPE_CROSS: "中的以下 (*) 行。
我使用的是 EURCHF,major_symbol 是USDEUR。由于 99.9% 的外汇经纪商 都不支持 USDEUR,而最多只 支持用户定义的交叉盘,因此在进行回溯测试时,以下 SymbolSelect 命令会导致错误信息。可能是经纪商的问题,但在我的情况下,这会导致策略测试器 突然中止,因为现在的有效符号是美元兑欧元,而不是我最初启动策略测试器的货币对(欧元兑瑞士法郎)。
因此,对我有帮助的方法是在CHedgePositionInfo::AveragePrice 的 末尾将 USDEUR 从市场观察中移除: