我用Python做一个量化指数增强策略,爽了 !附代码!

fe1a78ee851853ba339228430901031d.png

这是邢不行第 84 期量化小讲堂的分享

作者 | 邢不行、密斯锌硒

A股是一个神奇的地方,它最大的特点就是多年不涨和永远的3000点。

c213724df7d22f834f4668563c7203e2.png

正因如此,调侃A股的段子层出不穷。

甚至连中国男足这么烂的行业都有人跑来Diss,讽刺A股比国足更差。

eab630212b3ba41fec70adec0e71ce98.png

我想说的是,尽管A股有很多问题,但也绝不至于像男足一样烂到这种地步。至少A股在全球的各个排名肯定是比男足高的。

76ba84cf1c2eb8a3e1a7d22a9c7b1c16.png

5d2b0abca19b484b71ccef69555b43bc.png

左右滑动查看排名对比

但不管A股和男足哪个更菜,都改变不了中国股市一直在3000点上下波动的事实。

那么下文我们就来探究A股万年不涨背后的原理。

并在此基础上给大家衍生出一个简单又高效的A股策略,最终效果如图所示:

e9b015d030c5d797ed280d79457612af.png

300倍神秘策略

从07年至今按照策略交易可以翻200多倍,能够大幅跑赢代表大盘的沪深300指数

这个策略是如何产生的,它的原理是什么呢?这一切都要从上证指数说起。

01

上证指数简介

说到A股围绕3000点上下波动的时候,我们默认指的是上证指数。里面包含了所有在上海交易所上市的1700多只股票。

上证指数在2007年初是2700点左右,期间最多涨到过6000点,然后一路下跌。最近几年一直在3000点附近波动。

从07年到21年整整15年的时间只涨了36%,确实非常的拉胯。

1d8d9e2f863a3af417b1614b3c5a52ab.png

上证指数月线数据

虽然媒体会默认用上证指数来代表中国股市,但有一定经验的交易者基本不会看它。

因为大家都知道它是一个失真的指数,不能很好的描述市场整体状况。

那为何上证指数会失真?我们从它的编制方式入手就能得到答案这也和我们的策略息息相关。

02

上证指数编制方法

上证指数的编制方式是总市值的加权平均。

a5cc7b0a1f0ebba764b26290d7eb8304.png

也就是单个股票的当天涨跌幅会根据它的市值权重贡献到整个涨跌幅当中。

7465c63c8c17b7e0da965d7c1a01e990.png

光看定义大家可能并不能很好的理解,我这边再举一个案例。

如果对指数编制感兴趣的话,欢迎扫描下方二维码或加我微信xbx719与我交流。

412eddf609a38d35cd2b7e9d467fb07b.png

1

案例分析

如下表所示,当天茅台的总市值是2.6万亿,是所有上证股票里面最高的。依次按市值排序,最后的三毛市值仅为12亿。

把这些股票的市值加总就能得到上证指数的总市值(48万亿)。

f5db55ccfab4ae5bca424bdd6d7a37af.png

数据时间:2021年12月31日

我们以此算出每个股票占上证总市值的比例,如茅台的市值占比就是5.37%(25752/479553=5.37%),而排名最末的三毛仅为0.05%(12/479553=0.05%)

1de680252dfc8d9f1ba002aed66af33a.png

个股市值占比

茅台在当天涨跌幅是 -1.2%,那么它对大盘的影响

就是5.37% * (-1.2%)。其他股票都能以此类推。

我们最终把这些值加总就能得到当天上证指数的涨跌幅是0.57%

1abab95d2697c4b90fe32dacc5b32550.png

借此我们就能知道,股票的市值越大,对指数的影响越大。

显然茅台对指数的影响最大,而三毛对指数的影响基本可以忽略不计。

这种市值区分非常大的现象在上证指数成分股里面是非常严重的。

2

权重拖累指数

我们还是以2021年12月31日的数据为例。

9887b07c2a4386f8e82899eaaabeabe2.png

总计1750只成分股

市值排名前100的股票权重占比超过了52%,其它的1650个股票加起来也只占了48%。这像极了我们的贫富差距数据。

因此排名前100的股票对上证指数的走势影响极大。

我们观察下表中排名靠前的股票,如中某某行、中某油、中某某寿等。

feaa919cf1a2184bb85697e9c30cbb70.png

市值前100股票

你可以很容易的从它们的月K线图中看出这些股票基本处于千年不涨的情况,就像中国足球一样。

b8bce6b3847c2b93e01b1eedeeb9a13f.png

10ca7081275a48d19007476c2bf4011c.png

8336b886d171c02fab5ce8847d9cf1f9.png

     左右滑动查看更多

但这些股票一直不涨也是有原因的。

它们大多都是国有企业,只需为党和人民服务,并不需要为股东(资本家)负责。

总而言之,上证指数多年不涨的本质原因就是:对上证指数影响最大的权重股多年不涨甚至下跌,导致了指数长期在3000点附近徘徊

那既然我们了解了这个现象,就应该想着怎么去利用它。

比如我就非常好奇,如果去除或降低这些权重股的影响,同样买上证指数的成分股,它的收益是否会有所提高?

03

上证等权指数

1

等权概念

我们这边来做一个实验,仍计算这些股票每天的涨跌幅。但是规定每个股票对整体指数的影响均等。

c71c67b7bd3c87b2d4acb8fa727eaf34.png

指数等权编制规则

如茅台和三毛对指数的影响都是1/1750,与市值无关。

a70a1e135b7b0362093195dcb01c0d02.png

数据时间:2021年12月31日

也就相当于我们重新编制一个等权指数,它不再偏袒于大市值股票。

同时我们继续让新指数每天的成分股和上证指数保持一致,只不过它们各自影响的权重不同

105ec4be7c96d5dab277ab5af7e3b1ec.png

那这个等权指数的最终收益会如何,是否会超越原来的上证指数呢?

2

数据代码

想要知道这个结果,首先我们需要每天每只股票的数据。

我已经帮大家整理好了数据,包含了所有的股票(包括已退市的股票)。数据的情况如图所示:

b483bd85ace8e30175e44aa80c551ba4.png

数据展示

它包含了这个股票上市第一天至今,每天的开高收低价格以及总市值

有了数据后,通过Python代码计算就能得到相应的结果。

aaa8dff7cfcf425dad6f07650e5e47f2.png

如果你需要数据和代码的话,可以扫描下方二维码或加我微信xbx719,都是可以免费发给你的。

af32a2f08cc8042cf721270e7ab9fb13.png

3

等权指数结果

最终结果如下图所示:

图中代表上证指数的黄色曲线,从2007年至今涨了36%,非常拉胯。

而代表等权指数的蓝色曲线共涨了8.59倍。虽然15年只翻了10倍不到,但也远远跑赢了上证指数本身。

315cbbfebf781f4c167b811e3251edbe.png

等权指数净值表现更佳

这时我们再来看某足球评论员的那句“越南股市把A股爆了6:1”。

如果把上证等权指数越南股市从2010年开始做个对比的话就会发现,即使越南指数近几年开始飙涨,但它整体的涨幅还是没有跑赢等权指数。这恐怕要让刘老师失望了。

66c7beb7682de3a0e3ea1c7877dddc19.png

上证等权指数vs越南指数

通过刚刚的说明,我们已经知道,指数因为编制的原因并未真实的反映出市场的涨跌幅

我们可以通过对所有成分股等权买入的方式来实现更高的增长

4

过程实操

但这些知识除了能让大家了解指数编制的规则以外,对投资的实际帮助并不大。

因为没有办法投入实战。你没有这么多钱去买入这么多只股票。

b802f3d1901443b81f2962923c638cde.png

你也没有能力一下子去下单这么多只股票,一个个下单的话不知道要下到猴年马月。

除非你像我们一样可以实现程序化的自动下单。

感兴趣的可以观看这个视频

再者市面上也没有相应的指数基金是等权跟踪所有股票的,所以你基本上很难实现这个收益

但既然已经知道了A股不涨是因为大市值的股票拖累指数。那我们可以反过来想,如果只买小市值的股票,能不能实现更高的收益?

04

策略构建

1

小市值策略

我们可以尝试构建一个简单的选股策略。

118e336d6918fd65b5f1389db01ba4ae.png

选股策略

在每月的最后一个交易日对沪深300指数的成分股按照市值进行排序。

选取市值最小的10只股票,在次月的第一个交易日开盘时均仓买入。

之后无论涨跌如何都持有不动,等到这个月的最后一个交易日收盘时再把股票卖光。

之后继续选择此时市值最小的股票并买入,如此循环往复

2

举例说明

例如我在2006年的12月29日选出了当天沪深300成分股中市值最小的10只股票

那我就在2007年1月的第一个交易日去均仓买入它们并一直持有到1月31日再卖光。

此时再选出最新的10只股票去买入,每月重复上述操作即可。

3488c80ed8e07ff5672565ffdf9458b4.png

这样大家应该可以完全理解,这是一个非常简单的策略,执行起来也很容易。

因为每个月你只需交易一次,在行情软件上面按市值排序就能知道买什么了。

那么这个策略的收益到底如何呢?

3

策略结果

这个策略的收益我并不推荐手工计算。

我们是用了Python编程及相应的股票数据来得到这个结果。

值得一提的是,我们这里的股票数据有一列是专门用来确认这个股票是否当前属于沪深300成分股的。

8c3e584932ff94a37a78212e33d06792.png

成分股筛选

这个数据非常难得,如果对数据和代码感兴趣的话,可以扫描下方二维码或加我微信xbx719,都是可以免费发给你的。

3e92ea66d87462a58ac3845a8ece33bb.png

代码运行结果如图所示:

66276c79404a8ca56d6e8f17ad0257d5.png

蓝色曲线展示了策略的情况,最终收益有26倍左右,远远跑赢了黄色曲线代表的沪深300指数

美中不足的是,策略的最大回撤高达70%,这也是不可避免的。因为策略要求一直满仓持有股票,当所有的股票都开始下跌的时候,我们也没法幸免。

但在实际交易中,你是可以做一定择时的,可以靠你聪明的小脑袋瓜子去避免这个最大回撤。

c2ad2e66615ecefab2d2109e6038a383.png

但残酷的现实却是,对于大部分人来说,越做择时,反而回撤越大,收益越低。

4

策略拓展

我建议大家可以去尝试下这个策略,因为它本质上就是一个沪深300的指数增强。

最关键的是,这个策略每次我们只需要买10个股票,这很多人是买得起的。

甚至你还可以每次买3只股票,看看效果如何。

你可以扫描下方二维码或加我微信xbx719,问我要了代码和数据之后修改参数自己去跑一下,我这里就不赘述了。

9d9b5c8c264c397702c29092044800b0.png

那除了改变股票数量外,我们还能对这个策略做进一步的延伸吗?

05

策略优化

1

全A小市值股票策略介绍

我们之前是在沪深300的成分股里选择股票,如果在所有股票中选择市值最小的股票,结果会怎样呢?

fce640133bb73516461ca466f29c18b0.png

当然,为了避免买到容易退市的股票,我们需要加一个限制条件。

我希望所选股票最近四个季度的净利润,也就是净利润TTM大于0。

也就是说我们选择的公司至少在最近1年是赚钱的。并且这个股票不能是ST股或者即将退市的股票。

在这种情况下,我每个月挑选并买入持有市值最小的股票一个月,直到这个月的最后一个交易日才会卖出。

4e2b16c1ed11075cb4d59f369dc368d6.png

2

案例分析

比如在2006年12月末,我选出来10只股票,那么就在07年1月的第一个交易日去买入并持有整个1月。

我会在1月31日收盘卖出持有的股票,并选出新的10只股票,在2月的第一个交易日去买入并持有,以此类推。

d816d76559d6374da716ea5c20809217.png

通过这样的方法,我最终的收益有多少呢?我们还是要通过数据和Python来实现。

如果你需要这个代码和数据的话,可以扫描下方二维码或加我微信xbx719,都是可以直接发给你的。

1da28e783875408021822738a5a8ddbb.png

3

策略结果

运行代码之后最终结果如图所示:

d6970e326512cbb72310cfb240dca95c.png

蓝色曲线代表策略净值

这个看似简单的策略从2007年开始,在扣除了所有手续费后最终翻了284倍。

年化收益也由原来的25%提高到了46%,最大回撤也有所缩减

不过最大回撤相对来说还是比较大的,你可以尝试去进一步优化策略。

而当我们对比两个策略的资金曲线,你会发现不同的时间段它们的表现也是不相同的。

72c368a28cae2a86ab1368b7716096c7.png

2015年前全部A股挑选小市值的策略涨幅更大,但15年至今,沪深300成分股中选择的小市值股票反而更加优质

这源于策略风格上的差异,不同的策略适用于不同的市场。所以我们有的时候会同时去跑多个策略。

当然这是另外一个话题了,如果大家感兴趣的话可以多多点赞,也可以扫描下方二维码或加我微信xbx719交流。我们之后可以去讲讲多策略怎么跑、多策略选择以及多策略的轮动

20dfd2bc3dba5aea427298c239e58217.png

06

尾声

至此,我们通过A股指数当中一个固有的缺陷,带出了一个有意思的交易策略。

其实类似的有趣现象和以此延伸出来的交易策略还有很多。

8f9efe1fdb51794daa763ddbf844bf3a.gif

大家想看的话可以多多点赞,或加我微信xbx719交流,点赞破100的话,之后就再出一期来聊一聊A股的其他有趣现象

总而言之,我们要学会科学投资,不能只是主观的去拍脑袋,然后根据一些不准确的经验去做决策。

归根到底一句话,我们用数据说话。

07

后记

文章的最后,和大家分享一点量化投资的心得

很多人问我小白如何开始学习量化投资,有什么可以书单推荐

我的建议是千万不要直接找本书来看。

你找本编程书看,那跟着敲完“Hello World”就结束了;你找本数学书看,那看到第七页的公式就睡着了。

6209271d7897575cf05e2b21f3f1c159.png

更好的学习方式是做实际的项目,在实践中学习量化策略。

研报就是很好的量化实践项目。

一篇研报就是一个策略,作者都是年薪百万的高学历券商分析师,你要做的就是读懂策略研报,并用代码实现。

f1d21418c7b747e9c76f1c0b3e47cb16.png

在此期间什么不会学什么,哪里不会点哪里,抱着解决问题的心态去学习,事半功倍。

熟读唐诗三百首,不会作诗也会吟。

bc379d1ca68f5d55a4c3382d77b4e265.png

那么哪里可以获取研报呢?

你可以扫描下方二维码或加我的微信xbx719,我这里有分门别类几万份研报,还会实时更新

ca1bbb2755ec07878c528606d0ffad14.png

我会区分难度,精选之后发给你。

6cf5f2cc0aae7e15a0ab24ccec856553.png

加我微信xbx719后,也可以交流量化投资相关问题,我比较忙,回复的比较慢,但是看到的都会回复。

聊的开心,聊得有缘,很多量化的数据、资料都是可以送给你的。

也可以翻翻我朋友圈的内容,很多量化干货。一些不会公开发的内容,都会在朋友圈说。

7604ee9780bdfbd362379f22a48d5f18.png

联系作者

d73de7cb2fd29ba743596bb73b63eed4.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/53648.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我在创业公司的开发经验总结

本文是流船原创授权本公号分享的他在创业公司的开发经验,小公司同样有牛人,大公司同样有混日子的,不用羡慕在大厂的,好好蛰伏,自然有一天你的努力会产生回报,如果没有回报,能力在手,…

多次成功创业经验总结-我如何打造新品类战略公式

创业经验总结-我如何打造一个新品类的战略公式 前言开创一个新品类,我有一个公式。01 lessgo 药妆是 更强功能 更细场景 更新奇特 的 日化02 HeyJuice 排毒果蔬汁比其它 减肥方案 比如吃减肥药、抽脂、健身 更容易 更时尚03 原麦山丘软欧包 比 日式面包 更健康 更傻…

一个97年的IT人创业历程中的总结和感悟

感谢本文作者于霆霖的投稿,欢迎更多朋友投稿分享好文 作者博客:http://yutinglin.cn/ 我个人的经历在这里不多赘述。主要想谈谈过程中由一些坎坷所触发的体会。 1.创业者定位: 但凡把自己定位成产品经理或者是专注于技术的创业者都要么失败&a…

3.对经历过的创业项目的总结

在传统的计算机行业,做一个产品先做需求分析,然后做设计,划分里程碑,最后测试,上市。 但在移动互联网行业,这种做产品方法要不得。移动互联网变得太快了,有可能之前默默无闻,但忽然间…

最近交流创业-拉投资-谈合作的一些经验总结

正如年前和年后QQ动态所反映的那样,最近2个月在和若干个人,深入交流创业、投资和合作等事业型问题。 年后来武汉这几天,又和若干线上网友和线下朋友,进一步洽谈了若干问题。有一些经验之谈和看法,所以整理下&#xff0…

RuleApp1.4.0 文章社区客户端

简介: 可以打包成安卓,苹果,h5,小程序,全新的版本增加了私聊和群聊,动态模块等,还有自动和手动封禁机制。[滑稽][滑稽]主要模块:用户模块,文章模块,动态模块…

【高可用系统架构设计】SLA服务可用性4个9是什么意思?如何保证服务的高可用性 HA(High Availability)?...

如何保证服务的高可用性 HA(High Availability)? 高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。方法论上,高可用是通过冗余+自动故障转移来实现的。 我们都知道,单点是系统高可用的大敌,单…

记一次失败的小程序反编译经历

起因与目标 最近想搞个自己的小程序,觉得最实用的就是去水印小程序,可以下载抖音、小红书的无水印视频和图片。要做这个,怎么去水印是关键。一种方法就是深究底层原理自己搞,这种对不是专业做逆向的我来说太困难了。还有一种就是…

《微SaaS创富周刊》第9期:如何把创业者访谈,变成年收入100万+美元的生意

导读 大家好!第9期《微SaaS创富周刊》面世啦(点击这里阅读第1期),感谢大家的关注和阅读!本周刊面向独立开发者、早期创业团队,报道他们主要的产品形态——微SaaS如何变现的最新资讯和经验分享等。所谓微Sa…

QQ机器人---服务器超级简单的安装

废话不多说。 直接开工。 安装docker容器。 先卸载老版本,安装新版本。 sudo yum remove docker docker-client docker-client-latest sudo docker-common docker-latest docker-latest-logrotate docker-logrotate sudo docker-selinux docker-engine-selinux d…

nonebot2-2.0.0b4 QQ机器人详细教程

介绍 Nonebot2是基于go-cqhttp框架使用Python3制作的机器人框架,可以实现go-cqhttp能实现的QQ功能。使用异步开发更快,稳定。nonebot 一直在很久之前就在开发,现在是nonebot2之前的1版本已无法使用。但是nonebot2的旧版本依旧不影响&#xf…

使用腾讯云服务器+Nonebot2+go-cqhttp搭建QQ聊天机器人【保姆级教程 2023最新版】

文章目录 一、查看conda版本二、查看系统版本三、配置go-cqhttp1.请切换至同一网络下扫码2.打包Docker镜像 四、创建NoneBot环境安装脚手架 一、查看conda版本 二、查看系统版本 uname -a arch getconf LONG_BIT三、配置go-cqhttp 下载go-cqhttp 这里有不同版本的cqhttp,并且…

[QQ机器人]nonebot2 聊天插件

使用方法:将插件放入存放机器人插件的文件夹,并重新运行bot.py 使用命令:输入#加上你要问的问题 运行截图: 以下是源码: """ 作者:萌新源 时间:2022/3/30 操作系统:debian for raspberry pi 修改请保留本插件的版权 本插件版权属于萌新源 要发布请…

Nonebot QQ机器人插件七:智能聊天机器人

QQ机器人插件七:智能聊天机器人 1. 使用智能聊天api 搜索青云客网络青云客智能聊天机器人API (qingyunke.com),点击人工智能聊天。(实测智能回复问题不大,就是反应可能慢一点,而且如果一次给他发几条消息最多回复一条&#xff0…

快速搭建 QQ 聊天机器人--聊天机器人框架安装及搭建教程

使用到的工具 Deno:现代的 JavaScript 和 TypeScript 运行时。 Yoeth:一个轻巧、易用的 Deno 聊天机器人框架,支持 OneBot 12标准。 Walle-Q:一个 QQ 平台的 OneBot 协议实现端。 前期准备 安装 Deno(使用 PowerS…

windows上QQ机器人搭建教程

我们的这个qq机器人是用Python来搭建的。 所以说,先打开我们的Pycharm 然后新建一个文件夹,再打开终端,先来装点库 pip install pydantic loguru pygtrie httpx python-dotenv uvicorn fastapi requests selenium aiocqhttp ffmpeg aiohttp …

最新版QQ机器人搭建保姆教程,保熟【最新beta2版本】

前面写了不少文章关于机器人,后来小伙伴说不能用了,因为你版本与我不一样,隔了几个月了,版本更新了,变化比较大,所以特此更新一篇2022/3/25的QQ机器人搭建教程,有空更新插件。 声明:…

【qq机器人】机器人发语音

文章目录 前言一.演示二.完整源码前言 前提你已经按照我的 教程 搭建好环境 一.演示 二.完整源码 from nonebot.adapters.cqhttp import Message from nonebot import on_command from nonebot.typing import T_State from nonebot.adapters import Bot, Event import reque…

【最新】QQ机器人插件

QQ机器人 前言QQ机器人功能展示一、如何白嫖(用别人的插件)二、如何自力更生(自己写) 前言 本文旨在如何为你的QQ机器人添加插件,也就是添加机器人的功能。添加插件的方法有两种,一种是用别人写好的插件&a…

QQ聊天机器人教程

文章目录 关于本篇教程使用技术关于simbot所需依赖我的项目源码项目结构目前已实现的功能有 可爱的猫猫码群监听及发送信息关于groupmsg 发送图片,at,转发等特殊信息请使用可爱的猫猫码发送 聊天记录持续会话关于机器人启动的问题请参照我的上一篇机器人教程 关于本篇教程 我再…