中产家庭的“可投资金额”计算器:一个分层资金池架构的设计与实现

0 阅读4分钟

不敢投资,不是胆量问题,是没定义好 investment_budget 这个函数

01 需求背景

我表哥,41岁,外企技术总监,嫂子中学老师。家庭年税后收入≈80w,房贷余额60w,孩子初一。多年积累,账面闲钱100w。

他想将部分资金从活期(年化0.3%)迁移到权益类资产(预期8%-10%),但每次打开理财App,看到风险提示就return None

“万一亏了,孩子大学学费就没了。到底该拿多少钱去投资?”

这个问题本质是:给定总闲钱 CC,如何计算风险预算 RR 下的可投资额度 II?

02 第一步:全量资产盘点(数据采集)

python

# 资产端 (单位: 万元)
assets = {
    "current": 20,      # 活期
    "time_deposit": 80, # 定期
    "house": 550,       # 自住房
    "car": 20,
    "provident_fund": 25
}

# 负债端
liabilities = {
    "mortgage": 60,
    "credit_card": 2
}

net_worth = sum(assets.values()) - sum(liabilities.values())
print(f"净资产: {net_worth}")  # 633

表哥惊讶:“我有633万家底?”
“但其中大部分是自住房(非流动)和公积金(锁定),真正可支配的只有那100万闲钱。”

03 第二步:分层资金池架构(Three-Tier Liquidity Model)

借鉴存储系统的热/温/冷分层思想,我们将100万闲钱划分为三个池子:

层级名称用途流动性风险容忍金额(万)
L1保命钱6个月生活费0%12
L2保底钱3年内大额支出<2%20
L3生钱的钱长期投资中低≤20%68

python

class CapitalPool:
    def __init__(self, name, amount, liquidity, max_drawdown):
        self.name = name
        self.amount = amount
        self.liquidity = liquidity   # 0-1, 1=随时
        self.max_drawdown = max_drawdown  # 允许最大回撤

idle_capital = 100
pool_safety = CapitalPool("保命钱", 12, 1.0, 0.00)
pool_stable = CapitalPool("保底钱", 20, 0.8, 0.02)
pool_growth = CapitalPool("生钱的钱", idle_capital - 12 - 20, 0.6, 0.20)

investable = pool_growth.amount
print(f"可投资金额: {investable} 万")  # 68

关键洞察:主观风险承受力不是百分比,而是绝对亏损额度
表哥能接受的绝对亏损上限 = ?
若他害怕亏损超过15万,则可用公式:
max_loss = 15 → I = max_loss / max_drawdown = 15 / 0.2 = 75万,但受限于闲钱结构,实际68万。

04 第三步:可投资金的二次风险预算(Risk Pyramid)

对68万L3资金,进一步采用风险金字塔分配:

python

# 风险预算分配(权重和=1)
allocation = {
    "core_index": 0.40,    # 宽基指数基金(沪深300/标普500)
    "bond_income": 0.30,   # 债券/高分红类
    "satellite": 0.30      # 行业基金/主动管理/股票学习
}

amount_core = investable * allocation["core_index"]   # 27.2万
amount_bond = investable * allocation["bond_income"]  # 20.4万
amount_satellite = investable * allocation["satellite"] # 20.4万

这套配置的历史最大回撤约15%-18%,仍在风险预算内。

05 第四步:运行时监控(每月snapshot

建立月度快照表,跟踪净值变化和配置偏离:

sql

CREATE TABLE monthly_snapshot (
    date DATE PRIMARY KEY,
    l1_amount DECIMAL,
    l2_amount DECIMAL,
    l3_amount DECIMAL,
    l3_allocation JSON,   -- 实际权重
    net_worth DECIMAL
);

-- 查看偏离告警
SELECT date, 
       l3_allocation->>'core_index' AS actual_core,
       0.40 AS target_core
FROM monthly_snapshot
WHERE ABS(actual_core - 0.40) > 0.05;

06 三个月后的运行结果

表哥执行了DCA(定期定额)买入,每月定投指数基金。后来市场下跌8%,他未恐慌,因为:

  • 亏损来自L3层,L1、L2完好
  • 绝对亏损额 = 68 * 0.08 = 5.44万,远低于他的心理阈值

他说:“以前看总资产波动,现在分层后,每一层的风险都可视化了。”

07 工具推荐:ReFi理财小程序

不想手写代码?微信搜索「ReFi理财」小程序,其“家庭资产负债表”底层就是分层资金池模型:

  • 自动计算净资产、L1/L2/L3分层
  • 支持自定义保命钱、保底钱金额
  • 直接输出可投资金额,并给出参考配置

👉 微信搜索「ReFi理财」→ 家庭资产负债表 → 获取你的投资额度

08 总结

  • 记账 = transaction log
  • 资产负债表 = snapshot
  • 分层资金池 = storage tiering
  • 可投资金额 = risk_budget(total_idle, max_loss, max_drawdown)

用工程师的方式理财:先定义模型,再分配资源,最后持续监控


本文为真实经历改编,不构成投资建议。欢迎评论区讨论你的资金分层策略。