文章 "开发多币种 EA(第 28 部分):添加平仓管理器"

 

新文章 开发多币种 EA(第 28 部分):添加平仓管理器已发布:

在并行运行多个策略时,您可能希望定期关闭所有持仓,并重新启动策略。现有代码仅允许通过手动操作来实现这一行为。让我们尝试将这一部分自动化。

第 12 部分中,我们在多币种 EA 中增加了一个风险管理模块,以限制每日和总体回撤。它不会增加利润,但对于在不利条件下保护资金至关重要。它基于自营交易规则,设置灵活:资金回撤可以按账户货币金额、按余额百分比,或按日初基准来计算。

该模块以 CVirtualRiskManager 类的形式实现,具有用于跟踪余额、利润和检查限额的方法。同时,系统还提供了一种锁定利润的功能:一旦达到目标,所有持仓将被平仓,交易停止。

对于普通交易账户(相对于 prop 规则账户),最好在达到盈利目标后自动重新开始交易。目前,这需要人工干预。现在也该将这一过程自动化了。

在达到目标利润时,我考虑了两种重启交易策略的方案:

  1. 扩大现有风险管理器

  2. 创建一个单独的模块。

我选择了第二条路径,因为当前的风险管理工具独立于策略运作:它只平掉真实仓位,而不影响虚拟仓位。改变这一逻辑会使架构变得复杂,并破坏模块独立性。

风险管理器还会带来额外的测试开销,因此最好将新功能移至一个单独的模块中 — 即使风险管理器未运行,该模块也能使用。

新的目标是开发一个模块,该模块能够在满足特定条件(盈利、亏损、时间等)时重新启动所有策略,而无需依赖交易历史,也无需人工干预。我将把这个新模块称为平仓管理器,因为它是一个单独的可选模块,但引入该模块后,策略结果可能得到改善,它可以管理完全平仓所有真实和虚拟仓位的过程。


作者:Yuriy Bykov