手里有50万闲钱,想投资却不敢?先给你的资产做一次分层架构设计

0 阅读4分钟

不是胆子小,是没写好 investment_risk_budget 这个函数

01 需求:有一笔闲钱,想配置但怕亏损

朋友老刘,38岁,互联网中层。

夫妻年税后收入 ≈ 60w,房贷余额 80w,孩子上小学。这些年 savings_rate 不低,攒下了 50w 闲钱。

他想把这笔钱从活期(年化 0.3%)迁移到权益类资产(预期年化 8-10%),但每次打开理财 App,看到“风险提示”弹窗,他就 return None

“万一亏了怎么办?孩子学费、家庭应急,都依赖这笔 liquidity_pool。”

他问我:investment_amount = ?

02 先做全量数据盘点:资产与负债

我让他别急着写投资逻辑,先执行一次 SELECT * FROM personal_finance

python

# 资产端
assets = {
    "current_deposit": 100_000,
    "time_deposit": 400_000,
    "house_self_use": 4_000_000,
    "car": 150_000
}

# 负债端
liabilities = {
    "mortgage_balance": 800_000,
    "credit_card_due": 15_000
}

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

“原来我有 383 万家底?”老刘第一次看到这个数字。

但光有 net_worth 还不够,这只是 total_assets - total_liabilities。我们需要分层架构

03 分层架构:把资金分配到不同的“容器”

参考经典的三笔钱模型,我帮他做了如下分层:

python

class CapitalTier:
    def __init__(self, name, purpose, risk_tolerance, horizon_years):
        self.name = name
        self.purpose = purpose
        self.risk_tolerance = risk_tolerance  # 0=保本, 1=可承受10%回撤...
        self.horizon_years = horizon_years

# 1. 保命钱(不可亏损)
tier_safety = CapitalTier(
    name="保命钱",
    purpose="6个月生活费 + 应急",
    risk_tolerance=0,
    horizon_years=0  # 随时可取
)
amount_safety = 150_000  # 6个月开支

# 2. 保底钱(低风险,短期要用)
tier_stable = CapitalTier(
    name="保底钱",
    purpose="3年内大额支出(学费、换车等)",
    risk_tolerance=0.1,  # 最大回撤容忍1%
    horizon_years=3
)
amount_stable = 200_000

# 3. 生钱的钱(可承担波动,长期投资)
tier_growth = CapitalTier(
    name="生钱的钱",
    purpose="长期增值",
    risk_tolerance=0.8,  # 可接受20%回撤
    horizon_years=10
)
amount_growth = total_idle - amount_safety - amount_stable  # 500k - 150k - 200k = 150k

老刘恍然大悟:“原来我能拿去投资的钱只有 15 万,不是 50 万?”

“对。如果你的投资组合最大回撤为 20%,那么 15 万的 20% 是 3 万,远小于 50 万的 20%(10 万)。风险预算是用 amount * max_drawdown 来度量的,你能承受的绝对亏损额决定了可投资金额。”

04 风险预算:用公式代替焦虑

定义风险预算函数:

python

def risk_budget(capital, max_loss_acceptable, expected_max_drawdown):
    """
    capital: 总闲钱
    max_loss_acceptable: 你能接受的绝对亏损上限(元)
    expected_max_drawdown: 投资策略的历史最大回撤(%)
    返回建议投入金额
    """
    return min(capital, max_loss_acceptable / expected_max_drawdown)

# 老刘能接受的绝对亏损上限:5万元(亏了不会失眠)
max_loss = 50_000
expected_dd = 0.20  # 宽基指数最大回撤约20%
suggested = risk_budget(500_000, max_loss, expected_dd)
print(suggested)  # 250_000,但还要扣除保命和保底钱后剩150k,所以取150k

最终他投入 15 万分批买入宽基指数基金。

05 运行时监控:每月 UPDATE snapshot

半年后市场下跌,该基金一度浮亏 8%。老刘没有恐慌 RELEASE,因为知道这是 tier_growth 层的正常波动。

他每月用类似下面的 SQL 追踪:

sql

CREATE TABLE monthly_snapshot (
    date DATE,
    tier_safety DECIMAL,
    tier_stable DECIMAL,
    tier_growth DECIMAL,
    growth_return DECIMAL
);

-- 查看分层偏离
SELECT * FROM monthly_snapshot ORDER BY date DESC LIMIT 2;

今年行情回暖,他的 tier_growth 收益 +12%。他说:“以前觉得理财是黑盒,现在分层之后,每一层的风险都可视化了。”

06 不想手写代码?用现成工具

微信搜索「ReFi理财」小程序,里面的“家庭资产负债表”其实就是一个分层资金管理工具

  • 录入资产/负债 → 自动计算净资产
  • 手动划分“保命钱”、“保底钱”、“生钱的钱” → 自动算出可投资金额
  • 每月更新 → 自动对比净值变化、配置偏离

不需要写 Python,但底层逻辑和你写的 CapitalTier 一模一样。

👉 微信搜索「ReFi理财」→ 家庭资产负债表 → 开始分层

07 总结

分层用途风险容忍推荐工具
保命钱6个月生活费0%活期/货基
保底钱3年支出1-2%定期/低风险理财
生钱的钱10年以上增值20%+指数基金/股票

不敢投资,往往不是因为你胆小,而是因为没有给资金做分层架构。
把风险预算算清楚,剩下的就是执行 DCA(定期定额)和定期 rebalance

用工程师的方式打理钱财:可分层、可量化、可复盘


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