你可能听说过复利的奇迹,某个正复利增长的资产,长期下来会得出惊人的结果。通过计算器简单计算,假设年增长15%,30年后资产将会是初始资产的66倍以上。大部分人一次投资,然后可以一直留着30年都不动用的钱通常不会很多。所以在复利的基础上,普通人一般通过定投完成投资。
现实世界里定投基金常常是要收取管理费的,主动型基金管理费经常在2%左右,被动型指数基金在0.85%左右。定投,增长,管理费,叠加在一起,如何来确认长期的收益,常常让人不知道该如何下手进行计算。本文尝试用java语言编程+Fine BI分析工具,完成对这个过程的分析。
1数据分析
给定每年15%的均匀增长,每周定投2000元,定投30年,总投入:312万,不同管理费率下的差异如下:
黑色:投资总额
给出总结表格如下:
2分析推论
1、给定15%的增长在长期是很厉害的,定投策略在30年的成长后总量是投入的12倍~19.5倍(因管理费率不同而不同);
2、在有管理费的情况下,30年后,2%的管理费,造成的增长损失不是45%(即1 - 98%的30次方),而是37%;管理费0.85%的情况,增长损失约18%,;
3、有管理费的两种场景,管理费只占增长损失的1/4左右,换句话说,所谓损失的增长,并不全是直接由管理费扣除的,3/4左右是因为时时扣除了管理费,而损失了后续的增长造成的;
4、熊市管理费收取的少,如果真实世界发展是牛短熊长,管理费会比表格中收取的更少一些;
5、真实世界简单映射,无管理费对应自己选择股票做持仓;2%管理费对应选择主动型基金;0.85%管理费对应选择被动型指数基金。实际交易的时候都会有少量的交易摩擦,如股票交易时候的印花税,股息税等;基金交易的申购费,赎回费等。交易摩擦产生费用由于是1次性的,并且通常费率很低,并不会因为复利效应而显著的降低投资收益;
6、真实世界的个人投资,由于受到资金和时间两项约束,很难避免管理费的约束。首先看资金约束,一次交易很难控制在2000元,比如贵州茅台,当前价格最小交易需要15万左右;其次是个人时间约束,个人研究个股的时间有限,持股数量过少无法有效分散个股风险(各类黑天鹅,如:缅因州制冰业,安然事件,中石油)。推论是;
7、在长期来看很少有人能战胜市场(证据是巴菲特的10年赌约及基金市场综合统计)。所以。
3思考总结
如果管理成本无可避免,被动型基金由于费率更低,会是更优的选择。综合国内较容易实现的投资渠道,以下两项指数ETF是不错的标的选择:
附1:组合数量和组合风险水平量表
附2:计算用的java代码
public class Investment {
public static void main(String[] args) {
double rate = 1 + 15d * 7 / 365 / 100;
double feerate = 0d * 7 / 365 / 100;
double initprice = 1;
double totalshares = 0;
double periodinput = 2000;
double totalinput = 0;
double totalvalue = 0;
double totalfee = 0;
BufferedWriter writer = null;
try {
writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File("D:\\result.csv")), "UTF-8"));
writer.write("weeknum,totalinput,totalshares,totalvalue,totalfee");
writer.newLine();
for (int i = 0; i < 1560; i++) {
totalvalue = totalshares * initprice;
double fee = totalvalue * feerate;
totalvalue = totalvalue - fee;
totalshares = totalshares + (periodinput / initprice) - (fee / initprice);
totalinput = totalinput + periodinput;
initprice = initprice * rate;
totalfee = totalfee + fee;
totalvalue = totalshares * initprice;
writer.write((i+1) + "," + totalinput + "," + totalshares + "," + totalvalue + "," + totalfee);
writer.newLine();
}
writer.flush();
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("totalinput:" + totalinput);
System.out.println("totalshares:" + totalshares);
totalvalue = totalshares * initprice;
System.out.println("totalvalue:" + totalvalue);
System.out.println("totalfee:" + totalfee);
}
}
参考文献
1.李笑来,定投公开课关于零管理费零开润的分析。——在李笑来分析的基础上通过编程实现自己的分析,提出了不同的见解
2.《香帅的北大金融学课》,61| “不要把鸡蛋放在一个篮子里”有理论依据吗?——引用了香帅的组合风险量表