python实现小项目:直观感受傻瓜式基金定投的赚钱原理

Vicki ·
更新时间:2024-09-21
· 890 次阅读

在这里插入图片描述
上面这张图是上证指数最近一年的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%。

不过,这是最简单最无脑式的做法,真正实盘起来,肯定不会是这样的。动动脑子,收益率提上去几个点,应该不是什么问题。


作者:iiChor Jum



基金定投 基金 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号