程序员福音?用Python数据分析教你做投资,巴菲特不会的你会

简介:   Pyhton可以用来做金融量化投资分析。  探讨问题与分析思路  本文以Python为量化工具,主要探讨以下三个问题:  (1)指数定投的优势与劣势在哪?  (2)指数定投受哪些因素影响,是不是时间越长越好?  (3)指数定投策略如何优化?  编程软件:基于Python3.7的Jupyter Notebook,使用到的库包括numpy、pandas、matplotlib、pyecharts和tushare等。

  Pyhton可以用来做金融量化投资分析。

  探讨问题与分析思路

  本文以Python为量化工具,主要探讨以下三个问题:

  (1)指数定投的优势与劣势在哪?

  (2)指数定投受哪些因素影响,是不是时间越长越好?

  (3)指数定投策略如何优化?

  编程软件:基于Python3.7的Jupyter Notebook,使用到的库包括numpy、pandas、matplotlib、pyecharts和tushare等。

  数据来源:使用tushare pro开源包获取上证指数、深证指数、沪深300、上证50、中小板和创业板1991-2021年数据,其中中小板和创业板是2011年-2021年数据。

  01国内指数价格走势

  首先,对A股几个常用的指数历史走势进行可视化分析,直观反映不同期间股价涨跌情况,其次,计算各期间股指的累计收益率,为后面的指数定投对比分析做铺垫。

  各指数自上市交易以来累计收益率情况:区间拉长,各有千秋。

  牛市区间累计收益率情况:'2013-01-01':'2021-06-12':牛市来了,创业板身板轻,飞得更高(摔下来也疼)。

  倒V形区间收益率情况:'2011-01-01':'2021-12-24':辛辛苦苦八九年,最后回到解放前。

  2021年以来累计收益率:'2021-01-01':'2021-12-24'。怎一个“惨”字了得,中小板跌到妈都不认得。

  各指数自上市以来累计收益率和年化平均收益率:上证综指自1990年12月以来累计收益率达到322.98%,但是几何年平均收益率也只有5.29%,低于中证500、沪深300和中小板指。

  02指数定投策略

  指数定投策略:即每月于固定日期使用固定金额投资指数基金。如将每月月初发的工资3000元用于投资指数基金。

  下面运用Python定义指数定投的回测函数,假定无风险理财产品收益率为4%(假设而已),每月月初(或者月末)定投3000元购买指数基金,计算各期间累计收益率和累计定投资金。先来看第一个问题,指数定投在什么情况下优于一次性投资以及无风险理财(银行定期存款)呢?

  微笑曲线(V或W形态):不难理解,指数定投的优势在于规避择时,不怕踩坑,通过长期定额投资分摊成本,当股指呈微笑形走势的时候,一定是优于一次性投资的,但是否能获得较高回报,还得看右侧回升的幅度大小。如选取区间2007年10月17日至2021年6月12日,该期间是股指自1990年以来的历史高点6124点开始下跌,然后反弹至5178点,即假设你运气碰巧那么差,在最高点当接盘侠,然后每个月继续傻乎乎的补仓,然后终于运气来了,在2021年高点全部清仓。如下图所示,如果你在高点一次性买入然后长期持有,期间累计收益率是-16.48%,而定投的累计收益率却高达101.03%(每月月初投入),无风险理财的期间累计收益率也只有16.28%。

  小微曲线:上图选择的“微笑曲线”很优美,刚好是股指两头高(右侧高才是关键),中间低,因此通过每月定投不断分摊长期成本,获得超额收益率。那如果右侧不是很高呢?再来看另一个区间,2007年10月17日(6124高点)至2009年07月20日(3333低点),如下图所示,区间累计收益率为-62.31%(佛性),理财累计收益率3.62%,每月月初定投的累计收益率仍然有15.64%(每月月底定投是17.96%,其实统计分析二者并无显著差异)。可见,一次性买入长期持有策略对择时的要求非常高,一旦踩了坑(高点接盘),将很难翻身,而长期定投策略则规避了择时的困扰,在股指短期波动向下,中长期向上反弹的走势中优势凸显。

  难过曲线(倒V或M形态):有微笑曲线,当然也有难过曲线。正所谓,有阴必有阳,有涨必有跌,有得必有失。什么情况下定投指数策略处于劣势呢?将回测区间拉长,考察指数从低点-高点-低点、经历两次大的牛熊转换时,指数定投策略的累计收益率情况。如下图所示,选取区间2006年10月01日(2000多点)至2021年12月24日(2000多点),相当于经过了12年多,股指差不多又回到起点。一次性买入期间累计收益率为36.6%,理财定投累计收益率为27.63%,但是指数定投累计收益率却为-7.39%(-7.46%),可见,指数定投并非时间越长越好,也并非一直比一次性买入持有策略好。

  单边牛市:即起点为最低点,终点为最高点。选取区间2014年07月1日至2021年06月12日进行回测。如下图所示,一次性投入并持有的策略明显优于定投策略。二手买卖平台通过上述分析,不难发现,一次性买入并持有策略对择时要求非常高,即同时在买点和卖点精准把握才能获取超额收益率,而定投指数策略对买点并无要求,但要求卖点出现在右侧才能获取超额收益。换句话说,指数定投并非毫无目的的一直做长期定额投资,而是要结合一些择时指标判断拐点进行“止盈”,才能获取较高的累计收益率。

  03其他指数情况

  股票指数是反映股票市场总的价格水平变化的指标。一般是选取有代表性的一组股票,采取价格加权平均计算得到。各种指数具体的股票选取和计算方法是不同的,只看单一股票指数可能难以反映总体情况。下面对照分析上证指数、深证指数、沪深300、上证50、中小板和创业板指数,由于创业板是2010年才推出,因此下面的分析主要考察2011年-2021年区间。

  单边牛市:考察期间2014年07月01日至2021年06月12日,创业板定投累计收益率最高,达到124.3%,并且定投累计收益率居然高于一次性投入的累计收益率;而上证50定投累计收益率最低,只有63.22%。

  倒V形(右侧高于左侧):考察区间2011年08月01日至2021年12月24日,创业板累计收益率仍然是最高的,除了创业板外,指数定投策略的收益率均高于一次性投入持有策略。

  难过曲线:考察期间2011年08月01日至2021年12月24日,该区间内,上证综指、深证成指、中证500和中小板指累计收益率均出现了负数,但定投策略亏损较少,其他几个指数仍有正的收益率,除创业板外,指数定投策略仍然优于一次性投入持有策略。

  单边下行:考察期间2021年06月12日至2021年12月24日,毫无疑问,单边下行的时候,定投不断分摊了长期成本,累计亏损率要低于一次性投入。此外,单边下行的时候,期间内创业板累计跌幅是最大的,正所谓风水轮流转,山水有相逢。

  2021年情况:2021年国内外形势云诡波谲,内外夹击,经济持续下行,股票市场首当其冲,各大指数均出现了大幅下跌,股民怨声载道。年初至今,中小板累计亏损高达45.12%(定投:-24.66%)。可见,起风的时候,身子轻的猪可以飞得更高,但摔下来的时候也更惨!

  通过上述分析,不难看出指数定投的优势与劣势,以及什么条件下可以获得较好的累计收益率。但是数据仅供参考、分析,并不能成为投资的唯一依据。所以,规避风险,谨慎投资...

  小编这里有整理一些关于Python的学习资料,从基础到入门到项目实战都有。需要的可以关注并私信“01”免费领取

目录
相关文章
|
1月前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
136 10
|
1月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
本文将引导读者了解如何使用Python进行数据分析,从安装必要的库到执行基础的数据操作和可视化。通过本文的学习,你将能够开始自己的数据分析之旅,并掌握如何利用Python来揭示数据背后的故事。
|
2月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
【10月更文挑战第42天】本文是一篇技术性文章,旨在为初学者提供一份关于如何使用Python进行数据分析的入门指南。我们将从安装必要的工具开始,然后逐步介绍如何导入数据、处理数据、进行数据可视化以及建立预测模型。本文的目标是帮助读者理解数据分析的基本步骤和方法,并通过实际的代码示例来加深理解。
78 3
|
18天前
|
数据采集 Web App开发 监控
Python爬虫:爱奇艺榜单数据的实时监控
Python爬虫:爱奇艺榜单数据的实时监控
|
1月前
|
数据可视化 算法 数据挖掘
Python量化投资实践:基于蒙特卡洛模拟的投资组合风险建模与分析
蒙特卡洛模拟是一种利用重复随机抽样解决确定性问题的计算方法,广泛应用于金融领域的不确定性建模和风险评估。本文介绍如何使用Python和EODHD API获取历史交易数据,通过模拟生成未来价格路径,分析投资风险与收益,包括VaR和CVaR计算,以辅助投资者制定合理决策。
77 15
|
2月前
|
机器学习/深度学习 算法 数据挖掘
数据分析的 10 个最佳 Python 库
数据分析的 10 个最佳 Python 库
115 4
数据分析的 10 个最佳 Python 库
|
1月前
|
数据采集 分布式计算 大数据
构建高效的数据管道:使用Python进行ETL任务
在数据驱动的世界中,高效地处理和移动数据是至关重要的。本文将引导你通过一个实际的Python ETL(提取、转换、加载)项目,从概念到实现。我们将探索如何设计一个灵活且可扩展的数据管道,确保数据的准确性和完整性。无论你是数据工程师、分析师还是任何对数据处理感兴趣的人,这篇文章都将成为你工具箱中的宝贵资源。
|
2月前
|
存储 数据可视化 数据挖掘
使用Python进行数据分析和可视化
本文将引导你理解如何使用Python进行数据分析和可视化。我们将从基础的数据结构开始,逐步深入到数据处理和分析的方法,最后通过实际的代码示例来展示如何创建直观的数据可视化。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。让我们一起探索数据的世界,发现隐藏在数字背后的故事!
|
2月前
|
存储 数据可视化 数据挖掘
Python数据分析项目:抖音短视频达人粉丝增长趋势
Python数据分析项目:抖音短视频达人粉丝增长趋势
|
2月前
|
传感器 物联网 开发者
使用Python读取串行设备的温度数据
本文介绍了如何使用Python通过串行接口(如UART、RS-232或RS-485)读取温度传感器的数据。详细步骤包括硬件连接、安装`pyserial`库、配置串行端口、发送请求及解析响应等。适合嵌入式系统和物联网应用开发者参考。
71 3