大家好,我是小一

基金定投,想必都不陌生吧,但是很多人都会遇到一个终极问题

每周一定投还是周四定投?月中定投还是月末定投?

到底哪种方式收益率更高,如何选择?今天,我们不妨以量化研究的方式来探索基金定投的真相,一起揭秘这个看起来很难的问题!

接下来,就是用数据说话的时候!!

1. 背景介绍

按照惯例,先来看一下背景介绍

基金定投是定期定额投资基金的简称,说白了就是每周/每月/每年的某个固定时间点买入固定金额的基金。

举个例子,通过支付宝可以规定每月10号,用1000元钱买入天弘沪深300etf联接基金A,这就是一个定投。

通常,我们通过定投的方式来投资波动较大的基金,比如股票指数型基金。因为对于风险大、收益高的股票而言,一般人难以准确入场,往往是抄底抄到半山腰。但是对于波动比较小的货币基金和债券基金,其实买入点的选择,对收益影响不大。

ok,那今天这节就通过历史10年的数据,来分析一下定投究竟有没有用,一起了解基金定投的真相

本文选择股市具有代表性的沪深300指数作为定投对象。观察时间是2012-01-01~2022-09-20

2、获取数据

首先是导入相关的包

因为会绘制分析图形,所以需要用到seaborn。对了,关于为什么用seaborn绘图以及怎么用,大家可以翻翻以前的文章

# 加载相关的包
from WindCharts import *
from WindPy import *
import time,datetime
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt# 声明使用 Seaborn 样式
sns.set()
# 有五种seaborn的绘图风格,它们分别是:darkgrid, whitegrid, dark, white, ticks。默认的主题是darkgrid。
sns.set_style("whitegrid")
# 有四个预置的环境,按大小从小到大排列分别为:paper, notebook, talk, poster。其中,notebook是默认的。
sns.set_context('talk')
# 中文字体设置-黑体
plt.rcParams['font.sans-serif'] = ['SimHei']
# 解决保存图像是负号'-'显示为方块的问题
plt.rcParams['axes.unicode_minus'] = False
# 解决Seaborn中文显示问题并调整字体大小
sns.set(font='SimHei')w.start()

通过数据接口获取2012年至今的沪深300的相关数据

代码如下:

# 取数据
err, data = w.wsd("000300.SH", "open,high,low,close,volume", "2012-01-01", "2022-09-20", "", usedf=True)
data = data.dropna()

绘图如下:

常见的基金定投方式有:每周定投、每月定投。今天我们不妨多对比几种定投方式,看看不同的定投方式到底能不能提高收益率。

所以,后面我们会对六种定投方式进行对比分析,他们分别是:每周定投、每两周定投、每月定投、每两月定投、每季度定投、每年定投

先对数据进行处理:

# 处理数据的时间
data = data.reset_index()
data_y = pd.DataFrame()
data_y['day'] = data['index'].apply(lambda x:str(x)[:10])
data_y['year'] = data['index'].apply(lambda x:str(x)[:4])
data_y['close'] = data['close'].values# 每 N 个交易日定投固定的m元, 以年末时的收盘价计算该年的收益率
def get_res(N):Years = data_y['year'].drop_duplicates().tolist()res = []for y in Years:  #计算每年的收益率tmp = data_y[data_y['year'] == y]tmp.index = np.arange(len(tmp))buy_index = [x for x in range(len(tmp)) if (x%N == 0) and (x!=len(tmp)-1)] #获取定投的日期buy_price = tmp.iloc[buy_index, 2].values    #定投时的价格#以年末收盘价计算该年收益率r = (np.sum([tmp['close'].values[-1]/x for x in buy_price])-len(buy_price))/len(buy_price)  res.append(r)all_res = (np.array(res)+1).cumprod()-1   # 用每年收益率得到累计收益率res.append(all_res[-1])return [round(100*x,2) for x in res]result = pd.DataFrame()
for N in [5, 10, 21, 42, 63, 300]:result['每{}个交易日定投'.format(N)] = get_res(N)
Years = data_y['year'].drop_duplicates().tolist()
result.index = ['{}'.format(y) for y in Years]+['累计收益率(%)']
result.columns = ['每周定投', '每两周定投', '每月定投', '每两月定投', '每季度定投', '每年定投']

处理之后的数据如下:

绘制图表如下:

通过上图可以看出,

其中,在收益最大的2014年

在6种定投方式中,两月定投收益>季度定投>年定投收益。

有意思的是,年定投收益>周定投>两周定投>月定投

也就是说,在2014年年初买入拿着不动的,就可以战胜60%的定投方式

此外,在收益最惨的2018年

在6种定投方式中,年定投收益亏损26.34%,其余5种定投方式亏损程度相近,平均亏损16%,远小于年定投亏损

最后,在2013年、2015年、2016年和2021年,年定投收益均小于其他5种定投方式

而其他5种定投方式中,收益率大概呈现:周>2周>月>2月>季度 的规律。换句话说,在震荡行情中,周定投相对其他定投方式的收益更高一点点,亏损也更小一点点。

再来看一下近11年的总收益情况

年定投的方式可以拿到最高收益73.86%、每月定投的方式收益最少63.18%

总结一下:

年定投的方式,我们都知道,就是年初买入,年末卖出,其实也就是一直持有的意。但是通过对比,我们发现,在不同的行情中,不同的定投方式收益不一,其中:

  • 每周定投和每月定投的效果差不多;

  • 在大牛市中,定投的收益相比指数较差一些

  • 在大跌中,定投可以减小一半的损失,但也无法避免亏损的结果;

  • 在小震荡市中,定投可以避免损失,但收益也有限

说白了,就是上涨过程中,定投收益较差;在小跌过程中,定投亏损较少。

一句话:在牛市中,定投收益减半;在熊市中,定投亏损减半;而在小震荡和大震荡中行情中,定投==瞎忙活。

而从大A近些年的走势也能看出,震荡多,大行情少。要是定投了某一指数,保本的话问题不大,但是要想翻倍,那就真的需要极大的运气了。

不过,还是可以从两个方向去提高定投收益率,后续我也会持续分享这两个方向的一些研报和复现文章。

首先是:①行业研究

针对行业进行深入研究,在行业景气度上升的时候开始入场,并在行业景气度停滞/下滑的时候切换至其他景气度上升的行业。在此过程中,一直保持同样频率的定投,提高收益率。

其次是:②做好择时

根据市场风向和行业走势,以及某些特征因子的大小,制定择时策略,在合适的时间开始定投,在不合适的时间停止定投,以此往复,提高收益率。

以上。

用数据来分析基金定投的真相!相关推荐

  1. 大数据智能分析的优势有哪些

    大数据智能分析也就是指对大量数据进行收集整理并进行智能化数据分析,通过对数据进行详细研究和总结提取出有价值的信息.大数据一般很难在一定时间内使用常见的软件工具进行管理,而大数据智能分析就可以快速捕捉. ...

  2. 2021年大数据基础(四):​​​​​​​​​​​​​​​​​​​​​大数据业务分析基本步骤

    2021大数据领域优质创作博客,带你从入门到精通,该博客每天更新,逐渐完善大数据各个知识体系的文章,帮助大家更高效学习. 有对大数据感兴趣的可以关注微信公众号:三帮大数据 目录 大数据业务分析基本步骤 ...

  3. 第二篇:智能电网(Smart Grid)中的数据工程与大数据案例分析

    前言 上篇文章中讲到,在智能电网的控制与管理侧中,数据的分析和挖掘.可视化等工作属于核心环节.除此之外,二次侧中需要对数据进行采集,数据共享平台的搭建显然也涉及到数据的管理.那么在智能电网领域中,数据 ...

  4. DataCleaner 3.1.1 发布,数据质量分析管理

    DataCleaner 3.1.1 扩展了日期和时间相关的分析:增加周.月.年的分布分析:数值分析和日期时间分析增加了描述统计的选项:新增用于生成 UUID 和时间戳的转换器等等. DataClean ...

  5. 《Python数据分析与挖掘实战》一3.1 数据质量分析

    本节书摘来自华章出版社<Python数据分析与挖掘实战>一书中的第3章,第3.1节,作者 张良均 王路 谭立云 苏剑林,更多章节内容可以访问云栖社区"华章计算机"公众号 ...

  6. 机器学习的第一个难点,是数据探索性分析

    作者 | 陆春晖 责编 | 寇雪芹 头图 | 下载于视觉中国 当我们在进行机器学习领域的学习和研究时,遇到的第一个难点就是数据探索性分析(Exploratory Data Analysis).虽然从各 ...

  7. 某天没有数据能查出来0数量_用Excel对纽约市出租车费数据探索性分析

    一.引言 背景:在纽约,游客们往往把自由女神象.帝国大厦.中央公园等视为纽约的象征, 但穿梭在人海中的出租车也是纽约靓丽的人文景观之一, 是其流动的风景线, 在纽约公共文化中别具魅力.本篇文章利用之前 ...

  8. 2019年十大数据与分析技术趋势

    来自:GartnerInc 全球领先的信息技术研究和顾问公司Gartner指出,增强型分析(augmented analytics).持续型智能(continuous intelligence)与可解 ...

  9. 一文读懂大数据漏斗分析!

      下面我将为您介绍漏斗分析的概念,以及组织及其数据如何使用它来分析大数据集.希望能够帮到你们. 很多时候我们发现我们的业务数据看起来很不错,但最终的转换量却很低,这就说明业务转换率这里有问题.而在数 ...

最新文章

  1. vba去oracle数据后乱码,vba中读取utf-8文件乱码问题
  2. 值得学习的寓言故事和哲理
  3. 在Spring、Hibernate中使用Ehcache缓存
  4. python代码示例图形-Python使用统计函数绘制简单图形实例代码
  5. PyCharm 快捷操作
  6. jpa oracle mysql,JPA-Oracle-Mysql連接數據庫配置
  7. phpmyadmin #1045 - Access denied for user 'root'@'localhost' (using password: NO)
  8. Linux---有关dig命令的有用脚本
  9. 34 MM配置-采购-采购订单-定义凭证类型
  10. CentOS下安装jdk1.8.0_181
  11. RDD与DataFrame
  12. 14-英伟达NVIDIA显卡驱动下载与安装
  13. 苹果技术支持联系方式
  14. 群面时被问到“让你淘汰一个组员”一般如何淘汰谁?
  15. php获取图片格式(图片后缀)
  16. MSCI 明晟D.J. Orr博士:中国量化投资不缺人才缺工具
  17. 四川职业技术学院linux,2019年四川交通职业技术学院单招中职(信息技术一类)专业技能测试大纲...
  18. z390 m.2 接口插上sata 硬盘后,机械硬盘不识别;HDD 硬盘不识别;z390 m.2和 SATA 硬盘安装组合;
  19. 昂达b450s 内存超频3200,xmp设置教程
  20. 数据库常用的操作命令

热门文章

  1. 那段时光,你是否还记得
  2. Plugin ‘org.jacoco:jacoco-maven-plugin:0.7.7.201606060606‘ not found
  3. D3.js中文版api
  4. 在线diy个性IP信息签名
  5. CloudCompare进行点云标注
  6. 机器学习(三):理解逻辑回归及二分类、多分类代码实践
  7. 2k21服务器维护时间,【NBA2K21 启动脚本前一定要做的几件事情】
  8. DDS信号发生器设计matlab,基于DDS的LFM信号发生器
  9. windows 怎么提高电脑性能
  10. C++类与对象、友元