投资理财红宝书——完整实施规范

基于龙红亮,《投资理财红宝书》(2021)


目录

  1. 概述
  2. 个人财务规划框架
  3. 中国投资者的资产配置
  4. 股票投资基础
  5. 基金投资
  6. 债券投资
  7. 风险管理与保险
  8. 退休规划
  9. 中国的税务规划
  10. 行为准则
  11. 常见错误
  12. 完整财务规划生命周期示例
  13. 实施伪代码
  14. 核心原则

1. 概述

龙红亮的核心前提是,中国家庭对房地产作为主要财富工具的结构性转变准备严重不足。几十年来,隐性契约很简单:买房、等待、致富。那个时代正在结束。利率下降,房产收益压缩,人口老龄化,金融市场成熟。普通中国家庭现在必须学会管理股票、债券、基金、黄金、保险和现金的多元化投资组合——否则将遭受购买力缓慢侵蚀的痛苦。

本书明确面向没有任何金融背景的中国散户投资者。涵盖:

  1. 为什么你需要计划。 通货膨胀、人口老龄化、养老金缺口以及房地产超级周期的结束意味着,无所作为是所有选择中最危险的。

  2. 金钱实际上如何运作。 复利、机会成本、货币时间价值,以及资产(产生现金流的资产)与负债(消耗现金流的资产)之间的关键区别。

  3. 完整的资产类别菜单。 股票、债券、基金(指数型、主动型、ETF)、房地产、黄金、保险、银行存款和货币市场产品——每个类别都从零开始解释,并结合中国市场 specifics。

  4. 生命周期框架。 不同的人生阶段(职业早期、家庭形成、高收入期、退休前、退休期)需要不同的配置、风险承受能力和保险覆盖。

  5. 行为护栏。 最大的敌人不是市场,而是投资者自己的心理。龙提供了具体规则来防止最常见的自我伤害。

龙的哲学可以总结为一句话:建立一个与您人生阶段相匹配的简单、多元化、低成本的投资组合,自动缴纳,持续复利,每年重新平衡,忽略噪音。


2. 个人财务规划框架

2.1 四笔钱系统

龙将家庭财务组织成四个不同的桶,每个桶都有其自身的用途、时间跨度和允许的工具:

用途 时间跨度 允许的工具 目标规模
应急金 失业、医疗紧急情况、紧急维修 即时 银行活期存款、货币市场基金(余额宝等) 3-6个月支出
保障金 灾难性风险转移 终身 定期寿险、重大疾病、医疗、意外保险 先保障充足
目标金 购房首付、教育、购车 1-5年 银行定期存款、短期债券基金、结构性存款 因目标而异
增值金 退休、财富积累 5-30+年 股票基金、指数基金、股票、混合资产基金 剩余全部

关键规则: 按顺序为桶注资。在桶1-3完全注资之前,永远不要投资桶4。违反此顺序会在最糟糕的时机被迫清算长期头寸。

2.2 财务健康检查

在任何投资之前,进行个人资产负债表审计:

资产                               负债
------                              -----------
现金和存款                         按揭剩余
投资账户                           车贷
房地产(市值)                     信用卡债务
养老金账户余额                     个人贷款
其他(黄金、收藏品)               其他义务

净资产 = 总资产 - 总负债

要计算的关键比率:

储蓄率             =(月收入 - 月支出)/ 月收入
  目标:财富积累 >= 30%,最低 >= 20%

负债收入比     = 月度债务还款 / 月度总收入
  目标:<= 40%,最好 <= 30%

应急基金比率     = 流动资产 / 月支出
  目标:>= 3个月,最好6个月

投资资产比率   = 投资资产 / 总资产
  目标:随年龄从约20%增长到约60%

保险覆盖比率 = 总寿险 / 年收入
  目标:养家者10倍年收入

2.3 生命周期阶段和财务优先级

人生阶段 年龄(约) 首要任务 风险承受能力 股票配置
起步期 22-30 建立应急基金,开始投资 70-90%
成家期 30-40 保险、子女教育金 中高 60-80%
成熟期 40-50 最大化缴费,还清债务 50-70%
准退期 50-60 去风险,锁定收益 中低 30-50%
退休期 60+ 保全资本,产生收入 20-40%

粗略的股票配置指南:股票 % = 110 - 年龄(改编自经典的西方规则,中国投资者倾向于过于保守,股票配置不足,因此上调10个百分点)。


3. 中国投资者的资产配置

3.1 核心资产类别

龙描绘了普通中国投资者可用的投资宇宙:

资产类别 预期实际回报 波动性 流动性 中国特定工具
A股 长期6-10% 个股、股票基金、ETF
港股 6-9% 沪港通/深港通、QDII基金
债券 实际2-4% 低-中 债券基金、国债、银行理财
房地产 2020年后2-5% 很低 实物房产、REITs(C-REITs)
黄金 实际1-3% 黄金ETF(如518880)、实物黄金、Au(T+D)
现金等价物 实际0-1% 最高 货币市场基金、银行存款
保险 不适用(保障) 定期寿险、重大疾病、医疗

3.2 相关性收益

中国环境下多元化的力量:

相关性矩阵(近似,龙的框架):

                A股    港股    债券   房地产  黄金   现金
A股             1.00
港股            0.60    1.00
债券           -0.20   -0.10    1.00
房地产          0.15    0.10    0.05    1.00
黄金            0.05    0.05   -0.10    0.00   1.00
现金            0.00    0.00    0.10    0.00   0.00   1.00

关键洞察:A股和债券具有相关性。当股票崩盘时,债券通常上涨(避险)。这是中国投资者最强大的多元化配对。

3.3 模型组合

保守型——适用于退休者或非常规避风险的投资者:

债券/债券基金:           50%
现金/货币市场:           20%
股票指数基金:            20%
黄金:                   10%

平衡型——适用于中等风险承受能力的职业中期投资者:

A股指数基金:             35%
港股/国际基金:           15%
债券基金:                30%
黄金:                   10%
现金/货币市场:           10%

成长型——适用于长期时间跨度年轻的投资者:

A股指数基金:             45%
港股/国际基金:           20%
债券基金:                20%
黄金:                   10%
现金/货币市场:            5%

3.4 组合中的房地产

龙对2020年后中国房地产的看法很细致:

  1. 自住房不是投资。 它是一种提供住所的消费项目。不要将其计入您的投资组合。
  2. 房地产投机的黄金时代已经结束。 "房住不炒"现在是政策,不是口号。
  3. 作为投资的第二套房产 存在流动性风险、维护成本、政策风险(房产税 looming)和集中风险。
  4. C-REITs(2021年推出的基础设施REITs)为房地产敞口提供了一种流动、多元化的替代方案,尽管市场仍不成熟。

经验法则:总房地产敞口(包括抵押杠杆)不应超过家庭净资产的50%。 许多中国家庭达到70-90%,这是危险的集中。

3.5 黄金作为组合保险

黄金配置:占总组合的5-15%。目的不是产生回报,而是危机保险和货币贬值对冲。

按顺序的首选工具:

  1. 黄金ETF(如Huaan Gold ETF 518880)——成本最低,流动性最强
  2. 通过银行的积存金计划
  3. 来自信誉良好的经销商的实物金条(不是珠宝)
  4. 上海黄金交易所Au(T+D)——仅适用于有经验的投资者

4. 股票投资基础

4.1 为什么大多数散户投资者亏损

龙引用了有据可查的统计数据:在任何给定的5年期间,大约70%的中国散户投资者亏损。原因:

  1. 追逐热门股票和主题。 在价格已经飙升后买入。
  2. 没有估值纪律。 为"好故事"付出任何价格。
  3. 过度交易。 A股散户平均持有期约为2周。
  4. 杠杆滥用。 融资融券和结构性产品放大亏损。
  5. 从众行为。 在朋友吹嘘时买入,在坏消息时恐慌性卖出。

4.2 股票评估的基本概念

龙介绍了评估股票的最少工具包:

市盈率(PE)= 股价 / 每股收益
  - 低于15:可能低估(对于成熟公司)
  - 15-25:公允价值
  - 高于25:可能高估(除非高增长)

市净率(PB)= 股价 / 每股净资产
  - 低于1:低于资产价值交易(可能表示困境或机会)
  - 1-3:优质公司正常范围
  - 高于5:溢价估值,需要强有力的理由

净资产收益率(ROE)= 净利润 / 股东权益
  - 低于10%:平庸业务
  - 10-15%:不错的业务
  - 高于15%:良好到卓越的业务
  - 持续高于20%:卓越(贵州茅台等)

股息率 = 年股息 / 股价
  - 有用的估值锚;适合收入投资者的高股息股票

4.3 龙对大多数散户投资者的建议

不要挑选个股。 赔率对您不利。相反:


5. 基金投资

5.1 中国市场的基金类型

基金类型 描述 成本(年) 适合人群
指数基金 被动跟踪指数(沪深300、沪深500) 0.5-0.8% 大多数投资者的核心持仓
ETF 交易所交易指数基金 0.15-0.50% 成本敏感型、积极交易者
主动权益基金 基金经理挑选股票以跑赢指数 1.5-2.5% 接受更高费用的投资者
债券基金 投资政府和公司债券 0.3-0.8% 保守配置
货币市场基金 短期存款和商业票据 0.2-0.4% 应急基金、现金管理
混合/平衡基金 股票+债券在同一基金 1.0-2.0% 放手型投资者
QDII基金 投资海外市场 1.0-2.0% 国际多元化
FOF(基金中的基金) 投资其他基金的基金 0.8-1.5% 养老金式目标日期需求

5.2 指数基金投资——核心策略

龙是指数基金投资作为普通中国投资者主要工具的坚定倡导者。他推荐的指数:

宽基市场:

行业/主题:

跨境:

5.3 如何选择指数基金

当多个基金跟踪同一指数时,根据以下选择:

选择标准(按重要性排序):

1. 跟踪误差 — 越低越好。应该每年 < 0.2%。
2. 总费用率 — 越低越好。比较管理费 + 托管费。
3. 基金规模 — 越大越好(更低的清算风险)。最低2亿元人民币。
4. 基金年龄 — 越老越好。至少1年业绩记录。
5. 基金公司 — 首选顶级公司(华夏、易方达、南方、嘉实等)

5.4 主动基金选择

对于少数配置到主动基金,龙的选择框架:

必须通过的过滤器:
  基金经理在当前基金的任期 >= 3年
  基金规模 2亿-100亿元人民币(不太小,不太 大)
  年化回报 vs 基准 > 0(3年以上必须跑赢基准)
  最大回撤(过去5年)< 40%
  夏普比率(过去3年)> 0.5

首选属性:
  基金经理用自己的资金投资该基金
  低换手率(每年 < 200%)
  一致的投资风格(不走形)
  基金公司有强大的合规记录

5.5 美元成本平均法(定投)

龙最强的建议:系统性地定投指数基金。 这是本书中最重要的单一技术。

有效DCA规则:

  1. 固定金额,固定时间表。 每月同一日期相同金额。
  2. 选择波动性指数。 DCA在波动性资产上效果最好(沪深500比债券基金受益更多)。
  3. 永远不要在低迷时停止。 熊市是DCA积累最多价值的时候。停止会破坏整个目的。
  4. 设置止盈规则。 与买入并持有不同,波动性A股的DCA受益于止盈纪律(例如,当累计回报达到+30%时卖出,然后重新开始)。
  5. 最低承诺:一个完整的市场周期(中国通常3-5年)。

5.6 ETF详情

与中国传统指数基金相比,ETF的优势:

劣势:


6. 债券投资

6.1 中国散户投资者可用的债券类型

债券类型 风险水平 回报范围 渠道
国债 很低 2.5-3.5% 银行柜台、交易所
地方政府债 3.0-4.0% 交易所,部分通过银行
政策性金融债 3.0-4.0% 主要通过债券基金
企业债/公司债 3.5-6.0% 交易所(需要资格)
可转债 可变 交易所(抽签分配)
债券基金 低-中 3-6% 基金平台

6.2 债券在组合中的作用

债券有三个功能:

  1. 压舱石。 降低整体组合波动性。
  2. 再平衡燃料。 崩盘后卖出债券买入股票。
  3. 收入生成。 为退休者提供可预测的现金流。

6.3 债券基金选择

债券基金选择标准:

纯债基金——用于核心债券配置:
  无股票敞口
  期限:中短期 preferred(利率风险较低)
  基金规模:> 5亿元人民币
  费用率:< 0.6%
  业绩记录:> 2年,每年均为正

增强债基/二级债基——用于更高回报:
  股票敞口上限20%
  可接受作为中等风险混合型
  更高回报潜力,但不是纯债券替代品

6.4 可转债

龙特别关注可转债,这是中国市场的独特机会:


7. 风险管理与保险

7.1 保险作为基础

龙强调:保险必须先于投资。 单一无保险的灾难可能抹去数十年的投资收益。

7.2 四种必备保险

险种 谁需要 覆盖目标 约年费
重疾险 55岁以下所有成人 30-50万元保额 3,000-8,000元/年
定期寿险 养家者 10倍年收入 1,000-3,000元/年
百万医疗 所有家庭成员 100-600万元年度限额 200-1,500元/年
意外险 所有家庭成员 50-100万元保额 100-300元/年

7.3 保险购买规则

1. 先保障,后储蓄。
   - 购买定期保险,不要购买储蓄型终身产品。
   - 储蓄型保险回报很差(通常实际< 2%)。
   - 将保险(保障)与投资(回报)完全分开。

2. 先为养家者购买,孩子最后。
   - 最大风险是主要收入者收入的丧失。
   - 儿童保险便宜,不太紧急。

3. 金额比品牌更重要。
   - 来自网络保险公司的50万重疾险比同价格著名品牌的10万保单更好。

4. 总保险支出:家庭收入的5-10%。
   - 低于5%:可能保险不足。
   - 高于10%:保险正在消耗投资能力。

5. 不要购买:
   - 万能险作为投资工具
   - 分红储蓄保险以获取回报
   - 来自银行的保险产品,除非您了解它们
   - 任何代理无法用通俗语言解释的产品

7.4 社会保险(五险一金)

龙提醒读者,雇主提供的社会保险是第一层保护,应该最大化:

关键洞察:社会保险覆盖底部。商业保险覆盖顶部。投资填补两者之间的空白。


8. 退休规划

8.1 养老金缺口

龙提出了一个清醒的计算:

假设:
  当前年龄:                   30
  退休年龄:                   60
  预期寿命:                   85
  当前月支出:                 8,000元
  通货膨胀率:                 每年3%
  社会养老金替代率:            退休前收入的40%

60岁时的月支出(经通货膨胀调整):
  8,000 * (1.03)^30 = 约19,400元

社会养老金覆盖:               约7,800元/月
月缺口:                       约11,600元/月
退休年数:                     25年

总退休缺口(名义,3%通货膨胀):
  约5,000,000 - 7,000,000元

这个缺口必须由个人储蓄和投资填补。

8.2 退休储蓄规则

1. 尽早开始。每延迟十年,由于失去复利,所需的每月储蓄大致翻倍。

   25岁开始:每月节省约2,000元即可舒适退休
   35岁开始:每月约4,500元
   45岁开始:每月约12,000元

2. 尽可能使用税收优惠账户。
   - 雇主养老金补充(企业年金)
   - 个人养老金账户(个人养老金)——每年12,000元上限
   - 税收递延商业养老保险

3. 下滑路径配置。
   - 早年股票重仓(25岁时80%股票)
   - 逐渐转向债券(55岁时40%股票)
   - 目标:50岁时60/40股债,65岁时30/70股债

4. 永远不要将退休资金用于非退休目的。
   这是最常违反且代价最高昂的规则。

8.3 个人养老金账户

2022年末推出,这是中国版IRA:

龙的建议:无论其他投资如何,每年全额缴费。 仅税收优惠就足以对任何缴纳所得税的人有价值。


9. 中国的税务规划

9.1 投资相关税收

项目 税收处理
A股股息 持有>1年免税;1个月-1年10%;不到1个月20%
A股资本利得 个人免税(无资本利得税)
基金股息 个人免税
基金资本利得 个人免税
国债利息 免税
企业债利息 20%
银行存款利息 0%(自2008年起暂停)
租金收入 根据结构10-20%
个人养老金缴费 可从应税收入中扣除

9.2 税务优化策略

1. 持有股票超过一年以获得0%股息税。
   - 股息股票的短期交易浪费税收优惠。

2. 频繁交易时使用基金而非直接持股。
   - 基金层面交易不触发个人层面资本利得。

3. 国债免税。
   - 对于高税级的高收入投资者,国债收益率在税后基础上可能超过公司债券。

4. 最大化个人养老金账户扣除。
   - 20%边际税率:每年节省2,400元。
   - 30%边际税率:每年节省3,600元。

5. 住房公积金是税前的。
   - 最大化雇主匹配的缴款(免费的钱 + 税收优惠)。

10. 行为准则

10.1 投资者最大的敌人

龙认为,行为错误比糟糕的股票选择更能摧毁财富。他提供了具体规则来抵消每种偏见:

10.2 规则集

规则1:尽可能自动化一切。
  - 设置自动月度转账到投资账户。
  - 使用指数基金自动定投扣款。
  - 从储蓄等式中移除意志力的需要。
  - 理由:人类是不可靠的。系统是可靠的。

规则2:每月检查投资组合不超过一次。
  - 每日检查会触发情绪反应和冲动交易。
  - 市场每日提供噪音,每季度提供信号,每年提供意义。
  - 设置月度审查日历提醒;从手机主屏幕删除交易应用。

规则3:在买入之前写下您的投资论点。
  - 如果您不能用三句话解释为什么要买,您就不应该买。
  - 记录:我买什么?为什么?以什么价格卖出?
  - 每季度审查论点。只有当论点被打破时才卖出,不是因为价格下跌。

规则4:使用"睡眠测试"。
  - 如果您的投资组合让您夜间睡不着,您承担的风险太大。
  - 减少股票配置,直到您能够安稳度过20%回撤。

规则5:永远不要投资您3年内需要的钱。
  - 短期资金必须保持在安全工具中。
  - 市场可能保持非理性比您的流动性需求等待的时间更长。

规则6:忽略金融新闻和市场预测。
  - 没有人能持续预测短期市场走势。
  - 新闻旨在产生点击量,而不是回报。
  - 唯一重要的预测:10+年以上,多元化股票将跑赢现金和债券。

规则7:永远不要试图择时市场。
  - 错过十年中最好的10天可能使回报减半。
  - 通过完整周期保持投资。
  - DCA自动确保在高和低时买入。

规则8:机械地重新平衡,而不是情绪化地。
  - 每年重新平衡,或当任何配置偏离目标> 5%时。
  - 重新平衡迫使您卖出赢家和买入输家——与您的情绪需求相反,恰恰是有效的。

规则9:保持财务日记。
  - 记录每个买入/卖出决定和原因。
  - 每年审查。识别您错误中的模式。
  - 对未来自我的问责是一个强大的纪律工具。

规则10:与您的配偶交谈。
  - 当伴侣不一致时,财务计划会失败。
  - 共同目标、共同预算、共同投资规则。
  - 与您的伴侣安排季度的"金钱会议"。

11. 常见错误

11.1 中国散户投资者的致命过失

错误1:"只买房不理财"心态
  问题: 将净资产的70-90%集中在流动性差的房地产。
  解决: 将房地产限制在净资产的50%。分散到金融资产。

错误2:追涨杀跌
  问题: 在基金/股票已经翻倍后买入,崩盘后卖出。
  解决: DCA消除择时。重新平衡迫使逆向操作。

错误3:把保险当理财
  问题: 购买昂贵储蓄型终身保单,实际回报1-2%,挤出实际投资资本。
  解决: 购买纯保障产品(定期寿险、重疾)。将保费储蓄投资于指数基金。

错误4:听消息炒股
  问题: 根据朋友、微信群或金融影响者的建议行事,无独立分析。
  解决: 如果您无法自己分析,请不要买个股。坚持指数基金。

错误5:忽视费用
  问题: 为每年跑输指数的主动管理基金支付2-3%年费。20年后,1.5%的超额费用复合损失约25%的最终财富。
  解决: 无情地比较费用率。首选费用率低于0.5%的指数基金和ETF。

错误6:没有应急资金
  问题: 投资所有闲置现金,然后因意外开支被迫以亏损价卖出。
  解决: 先为桶1注资。永远。例外。

错误7:借钱投资
  问题: 使用信用卡、融资融券或个人贷款投资。在任何低迷中必然灾难。
  解决: 非专业投资者零杠杆。句号。

错误8:锚定买入价
  问题: 拒绝卖出亏损仓位因为"会回到我的买入价"。持有输家,卖出赢家。
  解决: 根据当前基本面评估每个仓位,而非您的入场价格。您的成本基础与市场无关。

错误9:觉得钱少不值得理财
  问题: "我每月只有2,000元,不值得投资。"等到有"足够"的钱才开始。
  解决: 从任何金额开始。每月500元指数基金DCA绝对比0好。复利奖励早到者,而非富裕者。

错误10:没有理财规划
  问题: 基于今天看起来有吸引力的东西进行特别投资。
  解决: 写一页投资政策声明。遵循它。每年审查。仅因生活变化而非市场情况调整。

12. 完整财务规划生命周期示例

12.1 概况:王家

王磊,32岁,软件工程师,月收入25,000元
妻子李娜,30岁,教师,月收入12,000元
合计月收入:37,000元(税后约31,000元)
一个孩子,2岁
月支出:18,000元
月储蓄能力:13,000元
现有资产:银行储蓄200,000元
公寓:3,000,000元(抵押:剩余1,800,000元)
除社会保险外无保险
无投资账户

12.2 分步实施

第一阶段:基础(1-3个月)

行动1:建立应急基金
  目标:6个月支出 = 108,000元
  已有200,000元储蓄——分配110,000元到货币市场基金
  剩余90,000元转入投资准备

行动2:购买保险
  王磊:
    定期寿险:200万,30年期 → 约2,500元/年
    重疾:50万保额 → 约6,000元/年
    百万医疗:300万年度限额 → 约400元/年
    意外:100万 → 约200元/年

  李娜:
    定期寿险:100万 → 约1,200元/年
    重疾:30万 → 约4,000元/年
    百万医疗:300万 → 约350元/年
    意外:50万 → 约150元/年

  孩子:
    百万医疗: → 约800元/年
    意外: → 约100元/年

  年保险总额:约15,700元(约1,310元/月)
  = 税后收入的4.2% ✓(在5-10%指南内)

第二阶段:投资设置(3-6个月)

行动3:开立账户
  - 证券账户(用于ETF和港股通)
  - 基金账户(用于指数基金定投)
  - 夫妻双方的个人养老金账户

行动4:确定目标配置(平衡成长型)
  A股指数基金:          40%
  港股/国际基金:        15%
  债券基金:             30%
  黄金ETF:              10%
  现金(已在货币市场):   5%

行动5:部署初始一次性资金(90,000元)
  不要一次性全部投资。分成6个月每15,000元。
  这避免了在单一价格点买入所有。

行动6:设置月度定投
  月度可投资:13,000 - 1,310(保险)= 11,690元
  加上个人养老金:2,000元/月(12,000 * 2 / 12)

  11,690每月的分配:
    沪深300指数基金:      3,000元
    沪深500指数基金:      1,700元
    恒生科技指数(QDII):  1,750元
    中期纯债基金:         3,500元
    黄金ETF:             1,170元
    剩余到货币市场:        570元

  个人养老金(每月2,000元/人):
    目标日期2055养老基金

第三阶段:维护(持续)

行动7:月度 routine
  - 自动定投在每月15日执行
  - 无需手动干预
  - 时间成本:0分钟/月

行动8:季度审查
  - 检查:配置是否仍在目标5%以内?
  - 检查:有任何生活变化(收入、支出、新孩子)吗?
  - 检查:保险覆盖仍然充足吗?
  - 时间成本:30分钟/季度

行动9:年度重新平衡
  - 比较当前配置 vs 目标
  - 卖出超配资产,买入低配资产
  - 审查并更新投资政策声明
  - 如果收入变化,调整定投金额
  - 时间成本:2小时/年

行动10:定投止盈规则
  - 如果沪深500定投累计回报超过+30%:全部卖出,重新开始定投
  - 如果沪深300定投累计回报超过+30%:全部卖出,重新开始定投
  - 止盈收益:按目标配置重新分配

第四阶段:预计结果(30年跨度)

假设:
  平衡组合年回报:7%名义(4%实际)
  月度缴费:11,690元(每3年随收入增长5%)
  个人养老金:2,000元/月

10年后(42岁):  约2,500,000元投资组合
20年后(52岁):  约7,200,000元投资组合
28年后(60岁):  约14,000,000元投资组合

合计社会保险养老金:舒适退休 ✓
养老金缺口:完全覆盖 ✓

13. 实施伪代码

13.1 财务计划构建器

class FinancialPlan:
    """
    实现龙红亮的四桶个人财务框架。
    为中国家庭投资者设计。
    """

    def __init__(self, household):
        self.household = household
        self.buckets = {
            "emergency":   Bucket("应急储备"),
            "protection":  Bucket("保险保障"),
            "goal_based":  Bucket("目标储蓄"),
            "growth":      Bucket("长期增值"),
        }

    def build_plan(self):
        """执行完整的规划序列。"""
        self.assess_financial_health()
        self.fund_emergency_reserve()
        self.design_insurance_coverage()
        self.set_goal_based_savings()
        self.design_growth_portfolio()
        self.create_automation_schedule()
        return self.generate_plan_document()

    def assess_financial_health(self):
        """计算家庭财务比率。"""
        h = self.household

        h.net_worth = h.total_assets - h.total_liabilities
        h.savings_rate = (h.monthly_income - h.monthly_expenses) / h.monthly_income
        h.debt_to_income = h.monthly_debt_payments / h.monthly_gross_income
        h.emergency_ratio = h.liquid_assets / h.monthly_expenses

        # 标记问题
        if h.savings_rate < 0.20:
            self.flag("警告:储蓄率低于20%。先减少支出。")
        if h.debt_to_income > 0.40:
            self.flag("警告:负债收入比超过40%。优先偿还债务。")
        if h.emergency_ratio < 3:
            self.flag("严重:应急基金不足。投资前先注资。")

    def fund_emergency_reserve(self):
        """桶1:以货币市场工具存放应急基金。"""
        target = self.household.monthly_expenses * 6  # 6个月
        current = self.household.liquid_assets

        if current >= target:
            self.buckets["emergency"].status = "已注资"
            self.buckets["emergency"].surplus = current - target
        else:
            self.buckets["emergency"].status = "未注资"
            self.buckets["emergency"].shortfall = target - current
            # 首先将所有投资缴款重定向到应急基金
            self.buckets["emergency"].monthly_contribution = (
                self.household.monthly_savings
            )

    def design_insurance_coverage(self):
        """桶2:每个家庭成员的保险需求分析。"""
        for member in self.household.members:
            needs = []

            if member.is_breadwinner:
                needs.append(InsurancePolicy(
                    type="term_life",
                    coverage=member.annual_income * 10,
                    term_years=max(25, member.retirement_age - member.age),
                ))

            if member.age < 55:
                needs.append(InsurancePolicy(
                    type="critical_illness",
                    coverage=max(300_000, member.annual_income * 3),
                    term_years="至70岁",
                ))

            needs.append(InsurancePolicy(
                type="million_medical",
                coverage=3_000_000,
                term_years=1,  # 年度续保
            ))

            needs.append(InsurancePolicy(
                type="accident",
                coverage=max(500_000, member.annual_income * 5),
                term_years=1,
            ))

            member.insurance_plan = needs

        total_premium = sum(
            p.estimated_premium
            for m in self.household.members
            for p in m.insurance_plan
        )

        # 验证保险预算(收入的5-10%)
        ratio = total_premium / self.household.annual_income
        if ratio > 0.10:
            self.flag("保险支出超过收入的10%。简化覆盖范围。")
        elif ratio < 0.05:
            self.flag("保险支出低于5%。考虑覆盖范围是否充足。")

    def determine_risk_profile(self):
        """将生命周期阶段映射到资产配置。"""
        age = self.household.primary_earner.age
        equity_pct = max(20, min(90, 110 - age))

        if self.household.risk_tolerance == "conservative":
            equity_pct = max(20, equity_pct - 15)
        elif self.household.risk_tolerance == "aggressive":
            equity_pct = min(90, equity_pct + 10)

        return {
            "equity":      equity_pct,
            "bonds":       (100 - equity_pct) * 0.65,
            "gold":        (100 - equity_pct) * 0.20,
            "cash":        (100 - equity_pct) * 0.15,
        }

13.2 资产配置计算器

class AssetAllocationCalculator:
    """
    将风险概况转换为适合中国散户投资者的具体基金选择。
    """

    INDEX_MENU = {
        "a_share_large":   {"name": "沪深300指数基金",    "code": "510300"},
        "a_share_mid":     {"name": "中证500指数基金",    "code": "510500"},
        "hk_broad":        {"name": "恒生指数基金",  "code": "513600"},
        "hk_tech":         {"name": "恒生科技基金",   "code": "513180"},
        "us_sp500":        {"name": "标普500 QDII基金",     "code": "513500"},
        "bond_pure":       {"name": "中期纯债",  "code": "various"},
        "bond_short":      {"name": "短期债券基金",   "code": "various"},
        "gold_etf":        {"name": "黄金ETF",               "code": "518880"},
        "money_market":    {"name": "货币市场基金",      "code": "various"},
    }

    def calculate(self, risk_profile, monthly_amount):
        """
        将月度投资分解为具体工具。

        参数:
            risk_profile: 包含股票/债券/黄金/现金百分比的字典
            monthly_amount: 桶4可用的总人民币

        返回:
            (基金,月度人民币)元组列表
        """
        equity_amt = monthly_amount * risk_profile["equity"] / 100
        bond_amt   = monthly_amount * risk_profile["bonds"] / 100
        gold_amt   = monthly_amount * risk_profile["gold"] / 100
        cash_amt   = monthly_amount * risk_profile["cash"] / 100

        allocations = []

        # 按地域细分股票
        allocations.append(("a_share_large",  equity_amt * 0.40))  # 沪深300
        allocations.append(("a_share_mid",    equity_amt * 0.25))  # 中证500
        allocations.append(("hk_tech",        equity_amt * 0.20))  # 港股科技
        allocations.append(("us_sp500",       equity_amt * 0.15))  # 美国标普500

        # 细分债券
        allocations.append(("bond_pure",      bond_amt * 0.70))    # 核心债券
        allocations.append(("bond_short",     bond_amt * 0.30))    # 短期

        # 黄金和现金
        allocations.append(("gold_etf",       gold_amt))
        allocations.append(("money_market",   cash_amt))

        return [
            (self.INDEX_MENU[code]["name"], round(amt, 2))
            for code, amt in allocations
            if amt > 0
        ]

13.3 重新平衡 routine

class PortfolioRebalancer:
    """
    按龙的规则进行年度或阈值触发的重新平衡。
    """

    DRIFT_THRESHOLD = 0.05  # 5%绝对漂移触发重新平衡

    def __init__(self, target_allocation, current_holdings):
        self.target = target_allocation       # 字典:资产类别 -> 目标百分比
        self.holdings = current_holdings       # 字典:资产类别 -> 当前价值

    def check_rebalance_needed(self):
        """如果任何资产类别漂移超过阈值则返回True。"""
        total = sum(self.holdings.values())
        if total == 0:
            return False

        for asset, target_pct in self.target.items():
            current_pct = self.holdings.get(asset, 0) / total
            drift = abs(current_pct - target_pct)
            if drift > self.DRIFT_THRESHOLD:
                return True
        return False

    def compute_rebalance_trades(self):
        """
        计算恢复目标配置所需的买卖数量。
        使用阈值带方法:仅重新平衡超出范围的资产。
        """
        total_value = sum(self.holdings.values())
        trades = {}

        for asset, target_pct in self.target.items():
            target_value = total_value * target_pct
            current_value = self.holdings.get(asset, 0)
            current_pct = current_value / total_value if total_value > 0 else 0
            drift = abs(current_pct - target_pct)

            if drift > self.DRIFT_THRESHOLD:
                difference = target_value - current_value
                trades[asset] = {
                    "current_pct":  round(current_pct * 100, 1),
                    "target_pct":   round(target_pct * 100, 1),
                    "drift_pct":    round(drift * 100, 1),
                    "action":       "买入" if difference > 0 else "卖出",
                    "amount":       round(abs(difference), 2),
                }

        return trades

    def execute_rebalance(self, trades):
        """
        以税收高效顺序执行重新平衡。
        优先级:(1) 重定向新缴款,(2) 卖出超配资产。
        """
        # 步骤1:检查是否可以通过缴款重定向实现重新平衡
        monthly_surplus = self.get_monthly_contribution()
        months_to_rebalance = self.estimate_rebalance_duration(trades, monthly_surplus)

        if months_to_rebalance <= 3:
            # 软重新平衡:只需重定向1-3个月的缴款
            return self.redirect_contributions(trades)
        else:
            # 硬重新平衡:执行交易
            sell_orders = [t for t in trades.values() if t["action"] == "卖出"]
            buy_orders  = [t for t in trades.values() if t["action"] == "买入"]

            # 先卖出产生现金
            for order in sell_orders:
                self.execute_sell(order)

            # 然后买入低配仓位
            for order in buy_orders:
                self.execute_buy(order)

            return {"status": "已重新平衡", "trades": trades}


class DCA_TakeProfitManager:
    """
    管理波动性指数基金仓位的DCA止盈规则。
    当DCA流累计回报超过阈值时,清算并重新开始。
    """

    TAKE_PROFIT_THRESHOLD = 0.30  # 30%累计回报

    def __init__(self):
        self.dca_streams = {}  # 基金代码 -> { 总投入, 当前价值 }

    def update(self, fund_code, invested_amount, current_value):
        """每次缴款后更新流跟踪。"""
        if fund_code not in self.dca_streams:
            self.dca_streams[fund_code] = {
                "total_invested": 0,
                "current_value": 0,
                "start_date": today(),
            }
        stream = self.dca_streams[fund_code]
        stream["total_invested"] += invested_amount
        stream["current_value"] = current_value

    def check_take_profit(self, fund_code):
        """检查累计DCA回报是否超过阈值。"""
        stream = self.dca_streams.get(fund_code)
        if not stream or stream["total_invested"] == 0:
            return False

        cumulative_return = (
            (stream["current_value"] - stream["total_invested"])
            / stream["total_invested"]
        )

        if cumulative_return >= self.TAKE_PROFIT_THRESHOLD:
            return {
                "action":       "止盈",
                "fund":         fund_code,
                "invested":     stream["total_invested"],
                "current":      stream["current_value"],
                "return_pct":   round(cumulative_return * 100, 1),
                "instruction":  "卖出全部仓位。按目标配置重新分配收益。下月开始重新定投。",
            }
        return False

14. 核心原则

  1. 财务规划就是人生规划。 金钱是好好生活的工具,不是目的本身。先定义您的人生目标,然后建立支持它们的财务计划。

  2. 四个桶必须按顺序注资。 应急、保障、目标,然后增值。跳过会导致灾难。

  3. 复利是世界第八大奇迹。 早开始小额比晚开始大额更好。市场时间比择时更重要。

  4. 多元化是唯一的免费午餐。 没有单一资产类别永远占主导地位。结合不相关资产(股票+债券+黄金)可以平滑收益并改善风险调整回报。

  5. 成本是沉默的杀手。 每1%的费用都会复合反对您。选择低成本指数基金而非昂贵主动基金,除非您有强力证据表明基金经理在费用后会跑赢。

  6. 保险不是投资。投资不是保险。 将两个功能完全分开。购买廉价定期保障。将储蓄用于投资。

  7. 市场奖励耐心而非智慧。 通过完整周期维持的简单指数基金定投策略,跑赢绝大多数专业和散户投资者。

  8. 您的家不是您的投资组合。 减少房地产集中。平衡的金融资产组合更具流动性、更多元化,对于大多数财务目标更合适。

  9. 自动化以消除情绪。 自动转账、自动定投、机械化重新平衡规则。人类判断是投资链中最薄弱的环节。

  10. 写下来。 书面投资政策声明——即使是一页文件——创造问责制并防止冲动决策。每年审查;仅因生活事件而非市场事件更改。

  11. 您最大的财务风险不是在市场中亏损。是不投资。 通货膨胀和养老金缺口保证不作为是最昂贵的选择。

  12. 金融素养是一个家庭项目。 与您的配偶公开讨论金钱。教孩子基本金融概念。一个在财务目标上一致的家庭会实现它们;冲突的家庭不会。


规范结束。