揭秘”智能定投“

揭秘”智能定投“

更多精彩内容, 欢迎关注公众号:数量技术宅,也可添加技术宅 个人微信号:sljsz01,与我交流。

什么是智能定投

大家如果打开某某宝的基金理财界面,选择某一个基金标的的定投,往往会在选择定投方式时出现两个选项,一是普通定投、二是智能定投。而且往往智能定投的收益率会高于普通定投,那么,究竟什么是智能定投,它是怎么个智能法,使得收益率高于普通定投?我们将通过这篇文章来揭开智能定投的面纱。

在介绍智能定投前,我们先简要回顾普通定投,普通定投,用一句话解释,即以固定金额、固定间隔时间,定期、定额投资于基金或其他想要投资标的。普通定投有如下几个优点:一是定期投资,积少成多,二是不需要进行择时,避免了低买高卖,三是平均投资,分散风险,四是复利效果,长期可观。

而智能定投,其实是普通定投的一种改进方式,其核心逻辑是在定投标的的价格低位、价值低估区域尽可能多投资,而在定投标的价格高位、价值高估区域少投资或不投资,从而使得其平均成本低于普通定投、收益率高于普通定投。

于是,智能定投的关键点聚焦在了如何判断价格的高低位,对于这个问题,某宝也给出了它自己的判断方式,其设置了一个参考指数的多日均线,当价格低于均线,且距离位置越远,定投金额越大,即低位多买。

反过来,当价格高于均线,且距离位置越远,定投金额越小,即高位少买。这样的低位多买、高位少买逻辑,使得智能定投的收益率,比普通定投高了约3%以上的年化收益率。

揭秘”智能定投“

Python实现智能定投策略

我们参考某宝的智能定投逻辑,并加以改进,同样实现的是低位多买、高位少买的大逻辑。并根据投资标的的历史波动,将标的划分为4个区域,分别是:价格低位区域、价格中等偏低区域、价格中等偏高区域、价格高位区域,并依次减小这4个区域的定投金额,即价格低位区域定投金额最大,价格高位区域定投金额最小。

数据准备

为实现这样的定投策略,我们首先需要准备好定投标的的历史数据,以BTC为例,我们准备好了BTC从2017年到最新的日K数据。

这里需要说明的是,我们的 定投程序支持所有金融标的的历史回溯测试,只需要将数据格式准备的与上述BTC数据样例的字段一样,即可运行程序得到相应的测试结果。

逻辑实现

读入数据后,我们逐日依次判断,当前日期的最新价格,位于价格低位区域、价格中等偏低区域、价格中等偏高区域、价格高位区域的哪个位置,并且根据价格所在的区域位置,设定投资金额的大小。

首先通过两个参数adj_1、adj_2,调整定投金额的比例,参数可以按需修改。

adj_1 = 0.4
adj_2 = 0.8

然后,通过确定价格定投区域的哪个位置,确定定投金额的大小。如果价格位于价格低位区域,则定投金额为正常金额的(1+adj_2)倍,如果价格位于价格中等偏低区域,则定投金额为正常金额的(1+adj_1)倍,其他依次类推。

condition1 = XXX
df.loc[condition1, 'invest_val'] = base_invest_fun * (1 - adj_1)

condition2 = XXX
df.loc[condition2, 'invest_val'] = base_invest_fun * (1 - adj_2)

condition3 = XXX
df.loc[condition3, 'invest_val'] = base_invest_fun * (1 + adj_1)

condition4 = XXX
df.loc[condition4, 'invest_val'] = base_invest_fun * (1 + adj_2)

结果可视化

通过每期定投金额,我们可以计算出总投资金额、以及总投资市值、盈利情况、盈利比例等结果,并将其中关键的结果,采用可视化的形式呈现出来,回测结果呈现于下一小节。

fig, ax1 = plt.subplots()
ax1.plot(df['date'], df['net_value'], 'r-', label='Market Value')
ax1.plot(df['date'], df['total_invest_val'], 'y-', label='My Total Cost')
ax1.set_xlabel("year")
ax1.set_title("BTC 定投")
plt.legend(loc='best')
plt.show()

完整代码

整个智能定投Python实现的完整代码,包括文章中用到的配套历史数据,我们将独家发布在知识星球。

典型标的智能定投效果

在完成了智能定投的逻辑构建,以及相应Python代码的实现后,我们挑选了一些典型标的,包括BTC、沪深300指数、标准普尔500指数、黄金,来进行测试。

这些标的可以说是典型的定投代表,因为很多投资者会选择上述4个标的的其中之一,进行某个市场的定投。一起来看这些标的的测试结果。

BTC

沪深300指数

揭秘”智能定投“

标准普尔500指数

揭秘”智能定投“

黄金

揭秘”智能定投“

上述结果My Total Cost标签表示定投成本,Market Value标签表示最新持有的市场价值,两条线的差值就是盈利部分。从定投结果的稳定性来看,标准普尔500指数无疑是最好的,说明智能定投策略最适合长期温和上涨、偶尔暴跌的标的。

但是不论是BTC、股票指数还是黄金,只要该标的是长期上涨的,定投足够长的时间,都能产生不错的盈利。而智能定投因其低位多买、高位少买的逻辑,使得其相比较普通定投,能够产生更多的盈利。

揭秘”智能定投“

往期干货分享推荐阅读

数字货币中短线策略(数据+回测+实盘)

数字货币稳定币对网格做市策略

数字货币资金费策略

分享一个年化15%以上的无风险套利机会

网格交易系统开发

通过深度学习股价截面数据分析和预测股票价格

Omega System Trading and Development Club内部分享策略Easylanguage源码

一个真实数据集的完整机器学习解决方案(下)

一个真实数据集的完整机器学习解决方案(上)

如何使用交易开拓者(TB)开发数字货币策略

股指期货高频数据机器学习预测

如何使用TradingView(TV)回测数字货币交易策略

如何投资股票型基金?什么时间买?买什么?

【数量技术宅|量化投资策略系列分享】基于指数移动平均的股指期货交易策略

AMA指标原作者Perry Kaufman 100+套交易策略源码分享

【 数量技术宅 | 期权系列分享】期权策略的”独孤九剑”

【数量技术宅|金融数据系列分享】套利策略的价差序列计算,恐怕没有你想的那么简单

【数量技术宅|量化投资策略系列分享】成熟交易者期货持仓跟随策略

如何获取免费的数字货币历史数据

【数量技术宅|量化投资策略系列分享】多周期共振交易策略

【数量技术宅|金融数据分析系列分享】为什么中证500(IC)是最适合长期做多的指数

商品现货数据不好拿?商品季节性难跟踪?一键解决没烦恼的Python爬虫分享

【数量技术宅|金融数据分析系列分享】如何正确抄底商品期货、大宗商品

【数量技术宅|量化投资策略系列分享】股指期货IF分钟波动率统计策略

【数量技术宅 | Python爬虫系列分享】实时监控股市重大公告的Python爬虫

Original: https://www.cnblogs.com/sljsz/p/16723978.html
Author: 数量技术宅
Title: 揭秘”智能定投“

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/564138/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 【JAVA高级】——Druid连接池和Apache的DBUtils使用

    ✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。🍎个人主页:Java Fans的博客🍊个人信条:不迁怒,不贰过。小知识,大智慧。💞当前专栏:JAVA开发者成长之路✨特…

    Python 2023年9月27日
    063
  • 安装anaconda3并使用jupyter notebook

    一、安装与使用 下载地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.1.0-Windows…

    Python 2023年8月22日
    092
  • 使用 Windows 包管理器 (winget) 安装 .Net

    用户可以在 Windows 10 和 Windows 11 计算机上使用 winget 命令行工具来发现、安装、升级、删除和配置应用程序。 此工具是 Windows 程序包管理器服…

    Python 2023年10月20日
    044
  • flask+gunicorn,python服务器端部署深度学习模型 postman高并发测试

    1、基于 docker 和 Flask 的深度学习模型部署1、深度学习模型的服务化高并发部署–以Nginx+gunicorn+flask为例的docker部署方案 2、flask+…

    Python 2023年8月9日
    087
  • 解决anaconda安装后打不开

    解决anaconda打不开的问题,亲测成功!! 文章目录 一、彻底卸载旧版本anaconda 二、下载最新anaconda 三、安装anaconda 四、环境变量设置 总结 彻底卸…

    Python 2023年8月1日
    070
  • 实战 | 如何利用 Scrapy 编写一个完整的爬虫!

    大家好,我是安果! 提到爬虫框架,这里不得不提 Scrapy,它是一款非常强大的分布式异步爬虫框架,更加适用于企业级的爬虫! 项目地址: https://github.com/sc…

    Python 2023年10月3日
    041
  • 数据可视化—-Matplotlib

    数据可视化 环境配置 一、Matplotlib 初识 二、图形介绍 * 设置字体,解决中文乱码问题 折线图 – 股票简易练习 柱状图 – 普通柱状图 堆叠柱…

    Python 2023年9月1日
    062
  • copp | AAA

    2、在转发层有一个CEF表,该表是实时的与控制层的路由表同步的,其实严格来说路由器其实并不是按照路由表来转发的,而是按照转发层的CEF表来转发数据的。 3、在控制层与转发层有一道门…

    Python 2023年6月15日
    064
  • Ubuntu18.04系统下最新版GPU环境配置详细教程

    摘要:本文详细介绍了在 Ubuntu 18.04_下如何配置深度学习 _GPU(显卡)环境,包括了显卡驱动下载安装,环境配置等。按照本教程的步骤在多台服务器上安装都取得了成功,是在…

    Python 2023年10月28日
    041
  • 线上Electron应用具备哪些特征?

    新用户购买《Electron + Vue 3 桌面应用开发》,加小册专属微信群,参与群抽奖,送《深入浅出Electron》、《Electron实战》作者签名版。 1等奖:《深入浅出…

    Python 2023年10月15日
    047
  • 基于python地铁客流量分析平台

    http://ym6se2.natappfree.cc import requestsimport pandas as pdimport timeimport csv def ds…

    Python 2023年8月17日
    070
  • 谣言粉碎机?Python验证股市操盘口诀

    更多精彩内容, 欢迎关注公众号:数量技术宅,也可添加技术宅 个人微信号:sljsz01,与我交流。 经常炒股的朋友,应该都听说过这段操盘口诀: 早上大跌要买,早上大涨要卖 下午大涨…

    Python 2023年6月3日
    091
  • 基于深度学习的文本分类案例:使用LSTM进行情绪分类

    Sentiment classification using LSTM 在这个笔记本中,我们将使用LSTM架构在电影评论数据集上训练一个模型来预测评论的情绪。首先,让我们看看什么是…

    Python 2023年10月21日
    052
  • vscode实现远程linux服务器上Python开发

    (3)在linux修改.ssh目录和authorized_keys权限。 chmod 700 .ssh chmod 600 authorized_keys (4)测试配置是否成功,…

    Python 2023年6月12日
    074
  • Matplotlib子图

    子图 有时候我们需要从多个角度进行数据的比较、分析,因此就需要用到子图。子图的本质是在一个较大的图形中同时放置一组较小的坐标轴,布局形式可以多种多样,不拘泥于我们在第五集中举的那种…

    Python 2023年9月1日
    067
  • 【强化学习】Policy Gradient(策略梯度)算法详解

    1 Policy Gradient简介 1.1 基于策略和基于值的强化学习方法不同 强化学习是一个通过奖惩来学习正确行为的机制。家族中有很多种不一样的成员,有学习奖惩值,根据自己认…

    Python 2023年10月26日
    033
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球