Bastix
Insights

为什么我们用「份额制」而不是「真实资产额度」做持仓管理

给 AI 投研智能体的持仓记账,我们选择虚拟份额 + 无量纲净值(nav_0=1),而不是给每个策略设一笔真实初始资金、再折算出真实股数与现金。这不是"还没做真的",而是一个有意的抽象边界:真实成交价在原理上不可精确知,折真股数就得先编一个成交假设;份额制把这个编造环节整个绕开,同时天然给出一条可比的、隔离了外部资金进出的策略净值曲线,且不需要一次跨全体用户沙箱的资金迁移。这套记账法正是公募基金几十年来的单位净值记账法。

核心判断

给一个 AI 投研智能体(自动做研究、出调仓判断的 Agent)记录持仓,摆在面前有两条路:

  • 份额制(share-based,现方案):每次调仓把目标净权重按当时组合总市值折算成虚拟份额,之后按 Σ 份额 × 收盘价 逐日盯市(mark-to-market,按市价重估持仓);初始净值 nav_0 = 1(净值起点,无量纲,只用于折份额)。
  • 真实额度制(real-capital):给每个策略先设一笔真实初始资金(如 100 万元),每次调仓折算成真实股数,维护真实现金余额与成本价。

我们选份额制。这不是"真的还没做",而是一个有意画的抽象边界。 理由可以浓缩成一句话:

真实成交价在原理上不可精确知,折真股数就得先编一个成交假设;那个"精确"是假的,却要付出真实的迁移代价。份额制把这个编造环节整个绕开,同时天然给出一条隔离了外部资金进出的、可比的策略净值曲线。

而且这套记账法并不是我们发明的怪招——它正是公募基金几十年来的单位净值记账法。 下面把这个决定拆开讲,每一步都挂上业界与监管的权威出处。


一、份额制不是"简化版",而是资产管理行业的标准记账法

先破除一个直觉误区:份额制听起来像是"真实额度制的偷懒近似"。恰恰相反,用份额 + 单位净值来记一只组合的价值,是全球公募基金的标准做法,写进了监管规则。

美国证券交易委员会(U.S. SEC,美国证券交易委员会)对净资产值(Net Asset Value,NAV,基金净资产值)的官方定义是:NAV = 总资产 − 总负债,而每一份的净值 = NAV ÷ 在外发行份额数;投资者申购、赎回的价格就是这个每份净值。SEC 同时要求共同基金每个交易日至少计算一次 NAV,因为基金资产每天都在变(依据《1940 年投资公司法》第 2(a)(41) 条及 Rule 2a-4、22c-1)。(SEC Investor.gov)

把这套逻辑和我们的 reconstructLedger(份额账本重建,纯计算派生净值的核心)对照:

公募基金(单位净值记账)Bastix 持仓账本(份额制)
每份净值 = (总资产 − 总负债)÷ 在外份额数nav = cash + Σ 份额ᵢ × 收盘价ᵢ,起点 nav_0 = 1
申购赎回按当日每份净值成交调仓按当日收盘价折/赎份额
每交易日至少估一次值(盯市)逐交易日按收盘价盯市,派生净值曲线
份额是真实的、净值有货币单位份额是虚拟的、净值无量纲(只表达涨跌倍数)

唯一的实质差别:基金的份额和净值对应真金白银,我们的是无量纲的研究口径。但记账的数学骨架——"持有固定份额、按市价逐日重估、净值反映每份价值的涨跌"——完全一致。 换句话说,份额制不是我们绕开真实记账的捷径,而是我们采用了资产管理行业最成熟、最经得起审计的那套记账法,只是把货币单位这一层拿掉。

⚠️ 术语澄清(本仓库"账本"是过载词):本文说的是 portfolio-ledger(持仓账本,记录策略持仓演变),不是 market_data_source_coverage(行情数据源覆盖账本,记录某数据集某交易日是否完整)。


二、为什么不折真股数:决策价、纸面组合与"实施缺口"

真实额度制的死结,藏在"把目标权重折成真股数"这一步里。要算出"买 700 股",你必须先钉一个真实成交价:哪个时点成交、成交在什么价位、拆单造成多少滑点。而这恰恰是决策者事前不可精确知的东西。

这不是我们的一家之言,而是市场微观结构领域四十年前就定型的经典框架。哈佛商学院的 André Perold 在 1988 年提出实施缺口(implementation shortfall,实施缺口 / 执行成本):把一个"纸面组合(paper portfolio,假想组合)"——在决策价(decision price,亦称到达价 arrival price,即决定交易那一刻的市场价)瞬间成交、无摩擦——和真实成交的组合作差,这个差额就是把一个投资决策落地为真实成交所付出的全部代价,涵盖佣金、市场冲击、延迟成本,以及那些根本没能成交的部分的机会成本。(Quantitative BrokersCFA Institute)

Perold 框架里有一个对我们这个决定至关重要的细节:从执行方的角度,真正的"决策时点"往往是不可观测的——所以实务上只能退而用"到达价"来近似,因为没人能精确知道投资决策究竟是在哪一毫秒做出的。(Quantitative Brokers)

把这条道理映射到 AI 投研智能体身上:

  • 策略 Agent 属于决策层(相当于投资经理 PM 那一层),它的产出是母单(parent order,目标净权重指令,如"把某标的建到 8% 仓位"),不是成交。
  • 真实成交属于执行层——一台在市场微观结构里择时、拆量、追踪基准的高速机器。
  • 一个日线节奏的大语言模型既不在执行层、也模拟不准执行层

于是,让 Agent 吐一个"买 700 股 @12.31",这个数字看着很具体,但底下的成交假设(成交时机、成交价、拆单滑点)是虚构的。你把超额收益(alpha)算到了小数点后两位,地基却是编的——这种伪精确,比诚实地承认"我只到母单粒度"误差更大、更误导。

份额制怎么处理这一步?调仓日用当日收盘价折份额,但它只把这个价当作"折算基准",从不声称这是真成交价。 净值只表达"相对起点涨跌了多少倍",不假装知道任何一笔真金白银的成交。承认这条边界是诚实;跨过去装精确,是自欺。


三、真实成交为什么"不可精确知":市场冲击与执行基准

有人会问:就算 Agent 不出成交价,我给它配一个简单的成交假设(比如"按当日收盘价成交")不就行了,为什么非说"不可精确知"?

因为大额订单的成交价,本质上取决于你怎么把它打进市场,而这件事有它自己的物理规律。

机构真实下单从不是"一把成交"。可用流动性远小于机构想交易的规模,所以交易员把大额母单拆成一连串小的子单顺序执行,这一串子单叫元订单(meta-order,母单拆分后的成交序列)。执行算法用 VWAP(Volume-Weighted Average Price,成交量加权平均价)TWAP(Time-Weighted Average Price,时间加权平均价) 这类日内执行基准去调度:VWAP 按历史成交量分布铺单,TWAP 按时间均匀铺单。(CFA Institute)

而这个过程会移动价格本身。市场微观结构里最稳健的实证规律之一是市场冲击的平方根律(square-root law of market impact):一个规模为 Q 的元订单,其平均价格冲击近似正比于 √(Q / V)(V 为日成交量)。东京证券交易所全样本(2012–2019 年全部股票的完整订单生命周期)的研究以极高精度支持了这条律的"严格普适性",并指出它可以稳健地用于估计机构投资者的交易成本。(arXiv, Sato & Kanazawa)

平方根律有两个推论直接击穿"简单成交假设":

  1. 成交价随下单量非线性变化:买入相当于日成交量 1% 的股票,价格典型移动约为当日价格波幅的 10%。你想建的仓位越大,你自己把价格推得越高——真实成交均价系统性地劣于你看到的那个"当前价"。线性模型会显著低估大额元订单的成本。(arXiv)
  2. 冲击几乎与执行节奏无关、却与总量强相关:也就是说真实成交成本主要由"你要交易多少"决定,而这恰恰是事前建模也建不准的那部分——它依赖真实的盘口深度、当日流动性、其他参与者的行为。

结论:"按收盘价成交"不是一个偏保守的近似,而是一个系统性偏乐观的虚构——它假装你能在不惊动市场的情况下,以看板上的价格拿到任意规模的仓位。份额制不做这个假装:它用收盘价折份额只是为了记账基准,并不把它当成"你真能成交到的价",因此也不会把这份虚构的精度带进净值曲线。


四、份额法的正面价值:一条隔离了外部资金进出的、可比的策略净值曲线

绕开真实成交是"避害",份额法还有"趋利"的一面:它天然产出一条口径干净、可比的策略净值曲线。

关键在于:我们的份额账本里没有外部资金的进进出出。 它从 nav_0 = 1 起步,是一个封闭的虚拟组合;调仓只是在已有市值内部重新分配权重(份额法语义:只对当日下单的标的按最新净值重折份额,未提及的标的份额不动、继续随涨跌漂移),不涉及"用户又投了 50 万""用户赎回了 20 万"这类外部现金流。

这正好命中投资绩效衡量里的一个核心区分。全球投资绩效标准(GIPS,Global Investment Performance Standards,CFA Institute 制定的绩效披露标准)要求用时间加权收益(time-weighted return,TWR)来评价管理人,因为 TWR 剔除了现金流的影响——而现金流的时机通常是客户驱动的,不该算到管理人头上。因此时间加权收益最能反映"管理人按既定策略管理资产的能力"。(CFA Institute) 而时间加权与资金加权收益只在存在外部现金流时才分叉;当账本内没有外部资金进出,这条净值曲线的口径是无歧义的,它干净地表达了策略本身的复利表现。(GIPS Calculation Methodology)

换句话说:

  • 份额账本内部,大仓位天然对净值影响更大——position 层面的资金加权是免费得到的,无需额外加权。
  • 份额账本整体隔离了"客户何时投入/赎回"的时机噪声——这正是 GIPS 要求 TWR 去隔离的东西,让不同策略、不同时间段的表现可比

而这些,真实额度制并不会做得更好:超额收益 alpha 是一个比率,净值的无量纲涨跌已经完整表达它;乘上一个真实本金金额只是把同一条曲线换算成货币,不增加任何信息,反而引入"那笔本金从哪来、准不准、何时进出"的新噪声。

复盘措辞因此必须带粒度声明:说"这一轮 alpha 约为 +3%(日线、母单级、执行摩擦不计)",而不是"+3.14%"。承认粒度,而不是伪造精度。


五、迁移代价:份额法零迁移,真实额度要动全体用户沙箱

最后一条是纯工程的现实账。

我们的持仓事实存在 positions_history(持仓历史表,sandbox-local 的 portfolio.db)里,只有 4 列、append-only(只追加):operated_at(调仓时点)、symbol(标的)、absolute_position(目标权重比例 ∈[-1,1],负为做空)、reason(调仓理由)。一行 = 一次"把某标的目标权重设成 X",不是余额、不是成交。份额法读的就是这张已有的表,股数 / 现金 / 净值全靠 reconstructLedger 纯计算派生,不落任何真股数、真现金、成本价

改真实额度制要给每个沙箱补:初始资金、真股数、真现金余额、成本价、逐笔配对(FIFO 批次)等一整套列,并回填全部历史——这是一次跨全体用户沙箱的数据迁移。而它换来的"精确"还是假的(成交价不可知,见第二、三节)。

为一个假精确付真实迁移代价,不值得。 份额制保留,别推倒。


六、边界:份额法不做什么,以及何时才该做真实撮合

把适用边界讲清楚,免得份额制被当成万能:

它擅长:复盘"这一轮持有跑赢大盘没有(alpha)"、给用户看净值曲线与风险指标(最大回撤、夏普、波动率等)。这些只需要相对涨跌,份额法足够且更诚实。

它不做、也不该做:真实成交回放、逐笔盈亏对账、精确的 T+1 可卖释放与涨跌停/停牌撮合。以 A 股为例,上交所实行 T+1 交收(当日买入的股票次日才能卖出)、主板 10% 日涨跌幅限制,且超出价格限制的申报会被交易所直接拒绝。(Shanghai Stock Exchange) 要精确复刻这些真实撮合约束,是执行层 / 量化 fitness(适应度打分)层的工程,不是研究口径记账该背的包袱。

唯一值得推倒重来做真实撮合的场景:当产品目标是补全整个缺失的"量化回测 / fitness 评估层"时——那是一个产品战略决定,不该由"想把复盘做好"这一个需求来触发。复盘用份额法 + 确定性费用(佣金、印花税,费率明确、不依赖成交细节)+ 诚实误差带即可。

注:需要区分两件事。我们已有的可交易性闸门(tradability gate,observe/partial/closed 三态)是在 set_target(设目标权重)写入层拦截 A 股涨跌停/停牌等不可交易的目标——它拦的是"这个目标权重在当日根本下不进去",属于决策层的合规校验不等于模拟真实成交。份额法记账 + 闸门拦不可交易目标,二者不冲突,仍在"诚实的母单粒度"之内:既不假装知道真成交,也不放行明显下不进去的目标。


常见问题

份额制和公募基金的"单位净值"是一回事吗? 记账思路一致。基金的每份净值 = (总资产 − 总负债)÷ 在外份额数,投资者按每份净值申赎,SEC 要求每交易日至少算一次。(SEC) 我们用同样的份额 + 盯市逻辑,只是初始净值取无量纲的 nav_0 = 1、份额是虚拟的,衡量"策略这份初始资金涨跌了多少倍",而非"账户里有多少钱"。

为什么不给每个策略设真实初始资金、折算真股数? 因为折真股数必须先钉一个真实成交价,而真实成交由执行算法在市场微观结构里完成、事前不可精确知(Perold 实施缺口:纸面组合按决策价、真实组合按实际成交价,差额即执行成本)。(Quantitative Brokers) 折真股数=先编一个成交假设,那个精确是假的,还要付跨全体沙箱的迁移代价。

份额法算出来的收益会不会因为没有真实成交而失真? 它诚实地只主张策略的相对涨跌(净值曲线),不假装知道任何一笔真金白银的成交。因账本内无外部资金进出,这条曲线隔离了客户投入/赎回的时机影响,正是 GIPS 要求用时间加权收益去衡量策略能力的口径。(CFA Institute) 它不失真,只是把粒度说清楚:净值反映决策质量,不反映执行摩擦。


延伸阅读

参考来源

  1. Overview of the Global Investment Performance Standards
    CFA Institute · 支撑:GIPS 要求用时间加权收益剔除客户驱动的现金流时机,以公平衡量管理人按既定策略管理资产的能力 · 访问日期:2026-08-19
  2. GIPS Guidance Statement on Calculation Methodology
    GIPS Standards / CFA Institute · 支撑:时间加权收益的分期几何链接计算方法,以及收益计算须纳入现金及等价物收益 · 访问日期:2026-08-19
  3. Net Asset Value
    U.S. Securities and Exchange Commission (Investor.gov) · 支撑:净资产值=总资产减总负债,每份净值=NAV÷在外份额数;共同基金须每交易日至少计算一次 NAV · 访问日期:2026-08-19
  4. A Brief History Of Implementation Shortfall
    Quantitative Brokers · 支撑:Perold 1988 实施缺口框架——纸面组合按决策价、真实组合按实际成交价,差额即执行成本,且决策时点常不可观测 · 访问日期:2026-08-19
  5. Trade Strategy and Execution
    CFA Institute · 支撑:VWAP/TWAP 属日内执行基准,把大额母单拆成子单分批执行;实施缺口是包含未成交机会成本的综合成本度量 · 访问日期:2026-08-19
  6. Strict universality of the square-root law in price impact across stocks: a complete survey of the Tokyo stock exchange
    arXiv (Sato & Kanazawa) · 支撑:市场冲击平方根律——大额母单的平均价格冲击近似正比于(成交量/日成交量)的平方根,跨全市场实证成立,可用于估计机构交易成本 · 访问日期:2026-08-19
  7. Trading Mechanism
    Shanghai Stock Exchange · 支撑:A 股实行 T+1 交收、主板 10% 日涨跌幅限制;超出价格限制的申报会被交易所拒绝 · 访问日期:2026-08-19