上面这张图是上证指数最近一年的K线图,我们就通过这张图,来看一下基金定投是如何给我们带来的收益。
基金和股票不一样,股票随时买,随时赔,再随时卖。不过基金不一样,因为基金可以慢慢赔。
基金的每一天是从下午3点开始算的,也是在下午3点结束的。只要是在这一天内买入了,价格都是算的当天3点的收盘价。佛系一点说,就是大盘这一天不管折腾成什么样子,我们只看最后那1分钟,是加仓还是减仓,就可以定了。
虽然基金种类很多,而且不同的指数波动也是不一样的,但是总的说来有相关性。大盘涨,我也涨,大盘跌,我也跌,只是幅度不一样,而这个幅度就导致了一些基金能够跑赢大盘,成为强势基金,有的基金就不行。不过总的说来,基金的波动是可以参考大盘的,所以,那用上面这张图开始来解释定投没什么问题。
这里我们解释一种最简单最傻瓜的操作模式:
开盘的每一天都定投,不论涨跌; 每次定投金额一样,不加不减。就这样,之后就开始简单算一下就行了。
计算时也提出一些前提条件:
大盘的收盘价就是买入基金单价好像没啥了,然后就用下面的函数简单跑一下就可以了:
def accumulate(np_arr):
arr = []
arr.append(np_arr[0])
index = 1
while index < len(np_arr):
arr.append(np_arr[index] + arr[index - 1])
index += 1
return np.array(arr)
# 定投状态的平均成本
# np_arr为每天的收盘价, aver_money为定投金额
def average(np_arr, aver_money):
print("截至今天,收盘价为:", np_arr[-1])
days = len(np_arr)
# 成本
money_everyday = np.full(days, aver_money)
money_accumulate = np.arange(aver_money, (days + 1) * aver_money, aver_money)
# 持有份额
num_everyday = money_everyday / np_arr
num_accumulate = accumulate(num_everyday)
# 平均成本
money_average = money_accumulate / num_accumulate
print("截至今天,成本价为:", money_average[-1])
print("持有份额: ", num_accumulate[-1])
print("当前价值: ", num_accumulate[-1] * np_arr[-1])
return money_average
将成本线和大盘的收盘曲线做一个对比就是下面这张图。
蓝色曲线是大盘收盘价,红色的曲线是定投过程的成本线。
通过对比可以知道,虽然这一年有涨有跌,但是我们大部分的时间还是赚钱的。
而且定投的成本线随着金额的不断增加,逐渐也看淡了大涨大跌。
成果如下:
定投时间为:299
当前成本: 29900
截至今天,收盘价为:3039.669
截至今天,成本价为:2888.6618804884138
持有份额: 10.35081336516426
当前价值:31463.04651087548
经过一年多的定投,最终的收益为——1563,收益率——5.2%。
不过,这是最简单最无脑式的做法,真正实盘起来,肯定不会是这样的。动动脑子,收益率提上去几个点,应该不是什么问题。