RE:CZ

资本持久战实验设计

资本持久战

👤 量化交易研究者、算法交易开发者、金融工程专业人士,以及对资金管理和风险控制策略感兴趣的交易员。
本文详细阐述了一个名为“资本持久战”的量化交易实验设计,核心是通过基准账户(始终以1单位仓位交易)指导投注账户的资金管理。投注账户采用Anti-Martingale策略,动态调整仓位,关键要素包括时间刻度t、未实现/已实现盈亏、风险控制线(RiskLine)、风险资金(VC)、基准止损额(StopLoss)和仓位大小计算。文档还定义了止盈和止损事件的触发条件及处理流程,强调在风控条件下最大化风险资金利用效率,并设置了观察期机制。整体旨在构建一个系统化的交易框架,以优化资金管理和风险控制。
  • ✨ 基于基准账户和Anti-Martingale策略的动态资金管理设计
  • ✨ 通过风险控制线和风险资金(VC)实现严格风控
  • ✨ 根据基准止损额(StopLoss)计算激进仓位以最大化资金效率
  • ✨ 定义止盈和止损事件的触发条件及状态重置规则
  • ✨ 设置观察期机制,在参数为零时暂停交易
📅 2026-02-02 · 1,345 字 · 约 5 分钟阅读
  • 量化交易
  • 资金管理
  • Anti-Martingale
  • 风险控制
  • 实验设计
  • 仓位管理

资本持久战 实验设计

2026-02-02

重新梳理一下底层的实验设计的概念,因为 AI 编写的代码的细节仍有待完善。

时间刻度 t

时间刻度 t 是离散的,表示市场的每一个时刻。可以是分钟、小时、天等。通常是指每个 K 线。接下来会讨论很多时间序列,这些时间序列的自变量都是 t。

基准账户

基准账户是一个不使用任何资金管理策略的账户。它始终以初始仓位 1 单位进行交易。基准账户的表现用于指导投注账户的资金管理。

  • 基准账户的累计盈亏 BasePnL(t),时间序列,初始值为 0。始终以初始仓位 1 单位进行交易。以此得到的累计盈亏曲线。

投注账户

投注账户使用 Anti-Martingale 资金管理策略,根据基准账户的表现动态调整仓位大小。

重要参数:

  • 目标止盈金额 M_T,由投注策略参数决定。

考察对象:

  • 未实现盈亏 UnrealizedPnL(t),时间序列,表示基准账户当前持仓的未实现盈亏。初始值为 0。

  • 已实现盈亏 RealizedPnL(t),时间序列,表示基准账户已经实现的盈亏。初始值为 0。

  • 累计盈亏 PnL(t),时间序列,表示系统产生的损益。恒等于 PnL(t) = UnrealizedPnL(t) + RealizedPnL(t)。这个 PnL 就是净值曲线。可以线性缩放到任意初始资金规模。投注模型的表现可以通过 PnL(t) 来观察。

风险控制

确定输入现金流

输入现金流 C(t),时间序列,表示输入现金流的速度(注意不是总量)。

根据基准账户的历史表现得出,并动态更新。

推荐的计算方法是:计算基准账户的每笔交易中,最大的 亏损/时间长度 作为 C(t) 的值。

构建硬性风控线

风控线 RiskLine,初始值为 0。

自然按照 RiskLine(t+1) = RiskLine(t) - C(t) 迭代,在止盈时,RiskLine 会被重置为 0。

风控线跟随时间增长向下移动。任何时刻,都会保证 UnrealizedPnL(t) >= RiskLine(t)。

风险资金(Venture Capital, VC)

恒等于 VC(t) = UnrealizedPnL(t) - RiskLine(t),表示当前可用于投注的资金,承担完全亏损风险的资金。风险资金始终非负。

确定仓位大小

原则上,在风控条件下,尽可能地激进下注,以最大化风险资金的利用效率。任何浪费风险资金的行为都是无意义的。每次仓位大小都是奔着最大亏损直接将 VC(t) 亏完的决心去的,不浪费任何一份风险资金。

基准止损额,StopLoss(t)

表示当前每单位头寸设立的最大浮动亏损额,即持仓过程中的止损额,持仓过程中,如果触碰这个止损线就会造成盘中退出。基准止损额通过基准账户的历史表现得出,并动态更新。

推荐计算方法是:计算基准账户的每笔交易中,最大的盘中浮亏 作为 StopLoss(t) 的值。注意,要计算盘中浮亏,而不是最终的盈亏。多头仓位使用最低价,空头仓位使用最高价计算。

仓位大小,是一个非负整数,代表投注帐户相对于基准账户的头寸的倍数。

if StopLoss(t) > 0 then
    Position(t) = min(1, floor(VC(t) / StopLoss(t)))
else
    Position(t) = 0
end if

注意,如果 StopLoss(t) = 0.01,VC(t) = 1,这意味着我们会开仓 100 倍的基准头寸。这看起来是非常激进的仓位。例如,BTC 合约的最低交易额是 0.0001 BTC,那么下 100 倍的仓位也只是 0.01 BTC 的头寸,这看起来就不吓人了。不过,后续仍然需要观察这个倍数会不会过大,导致实际操作中无法实现。

观察期

当 C(t) 为 0 或者 StopLoss(t) 为 0 时,表示观察期,不进行交易,仅更新 C(t) 和 StopLoss(t)。Position(t) 始终为 0。

止盈事件

当 UnrealizedPnL(t) >= M_T 时,触发止盈事件,进行止盈处理。由于止盈是盘中触发的,因此 UnrealizedPnL(t) 只能达到 M_T,而不能超过。检查止盈事件的时候,需要使用持仓的最高浮盈,做多使用最高价,做空使用最低价计算。

记录止盈事件,重置 RiskLine(t) = UnrealizedPnL(t) = 0,使得 VC(t) = 0。

RealizedPnL(t) += M_T
UnrealizedPnL(t) = 0
RiskLine(t) = 0

已经观测到的信息 C(t) 和 StopLoss(t) 保持不变。

止损事件

当持仓期间的最大浮亏 >= StopLoss(t) 时,触发止损事件,进行止损处理。

记录止损事件,UnrealizedPnL(t) 最多只能回撤到 RiskLine(t),即 VC(t) = 0。

止损也是盘中止损的,发生止损后,本次交易中止,即使后面反弹了,也已经锁定亏损了。风控资金会归零,但是实际上不需要重置什么状态,止损,但是继续运行。

基准账户,已经观测到的信息 C(t) 和 StopLoss(t) 保持不变。

See Also

Referenced By