社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

【交易回顾】没用Python做量化回测,少赚100w | 股指期货妙用案例

经管之家 • 1 年前 • 191 次点击  
作者 | 邢不行、助教林奇

最近复盘时发现自己做了一件很傻逼的事情。


是之前做的一笔投资。当时对这笔交易思考的不够全面,没用历史数据做详细的回测。


导致让我至少少赚了100万


这种事情大家肯定都喜闻乐见,比如之前一篇文章《一行代码亏损5万美金》就很受欢迎。


再加上其中也涉及到一些金融工具的介绍,特别是股指期货的应用,所以搬出和大家分享一下。



01

投资起因


1

股市本质是个估值游戏

我之前发过一条朋友圈,说股市归根到底是个估值游戏




其中一张图是美股1870年至今的市盈率,由诺奖得主希勒在其网站公布:


标普500成分股的总市值/总净利润,经通胀调整


从图中可见,市盈率代表的市场估值会在一定区间波动,过高时下跌,过低时上涨


美股目前的估值和1929年大萧条前几乎处于同一水平,这也是很多人说美股被高估了的主要原因。


还有一张图是我自己做的,它展示了2007年至今A股的市盈率


A股每日总市值/总净利润,数据源:https://quantclass.cn


从这张图可见,A股在2020年初,估值已经在低位徘徊很久了


需要强调一点,估值低并不代表价格马上就上涨。什么时候上涨是无法预测的,可能要等很久。


我当时见A股在低位震荡足够时间,判断上涨值得等待,期望收益足够。于是决定对A股进行长期投资,准备一直持有到下一次牛市的高点。(说的好像自己一定能逃顶的样子)


我的朋友圈里还有很多类似的干货,如果你感兴趣的话,可以扫描下方二维码或加我微信xbx783,欢迎围观。


2

投资个股还是指数?

长期投资A股,可以选择直接买个股,或者大盘指数


我当时选择了后者。


股神巴菲特就非常推荐长期投资指数,他甚至认为这样可以超过大部分基金经理



数据显示也确实如此,美国90%的基金在10年内都输给了对应的指数。


当然这是美国的情况。目前A股的基金经理还是可以跑赢大盘的。具体原因和本文无关就不细讲了,感兴趣的同学可以扫描下方二维码或加我微信xbx783交流。



3

投资哪个指数?

已经确定投资大盘指数了,那具体投哪一个呢?


A股最常用的指数是上证50沪深300中证500。可以简单的认为分别代表最大的50只、300只和之后的500只股票。


三者中我选择了中证500进行投资,主要原因有两个。


一是中证500的波动远大于其它两个指数。



在2015年那一轮的牛市中,上证50沪深300从低点上涨了2.5倍左右。



中证500的涨幅高达4.3倍


当真正牛市来临的时候,市值相对偏小的中证500会因为弹性大而涨的更多。


另一个原因是在年初时,中证500的估值是最低的


各指数估值分位数,邢不行整理


单从上图最后一行数据来看,中证500指数22倍的估值,相比上证50的8.81和沪深300的11.26并不低。


但投资不能只看绝对值,也要看相对值


图中数据显示,中证500指数22倍的估值低于25%分位数。这意味着历史上最多只有25%的时间估值是比现在低的。


而其他指数估值分位数远高于这个区间。创业板指数更是超过了75%分位数。


所以从估值分位数来看,中证500的估值是最低的,长期投资安全边际较高



02

指数投资方法


那具体应该如何投资中证500指数呢?


1

支付宝购买指数基金

最方便的方法是去支付宝购买指数基金


虽然我自己从来没有试过,但确实看到现在很多年轻人在这么做。


加微信xbx783,围观朋友圈


支付宝最大的优点就是无需开户,只要在支付宝的首页依次点击理财基金,就可以搜索想买的基金。



例如搜索“沪深300”,就会跳出一大堆沪深300指数基金。


指数基金是跟踪指数走势的一种基金,它的涨跌幅和指数基本相同,投资它就能间接投资指数。



但我其实并不太推荐大家在支付宝上买基金。


1、支付宝缺点:收费高


主要是因为支付宝作为一个渠道商是要收取额外费用的,并且收费还不低。



按支付宝官方的收费标准,买入基金就要先交0.15%的申购费


在持有过程中,还要收取管理费托管费销售服务费等一大堆费用,合计下来每年大约1.1%



卖出时还要按持有时间收取赎回费用,如果仅持有7天就卖出,费用高达1.5%


投资指数基金的收益本身就不多,这些交易费用会很影响投资收益。


2、支付宝缺点:不灵活


在支付宝买指数基金还有一个致命的缺点——不灵活


首先是买入不灵活。例如你在某天上午下单买基金,最终是把当天下午的收盘价记为买入价。如果这段时间上涨,那就吃不到这段利润。



另外提现也不灵活。比如我们在周三卖出基金,按照官方说明,资金要下周一才能到账。这之间四五天的资金收益就被白白丢掉了。



2

股票账户购买指数ETF

除了支付宝外,也可以通过在股票账户上购买ETF,来实现对指数的投资。


不了解什么是ETF没关系,只要知道ETF像股票一样可以随时交易,并且它的走势也和对应指数高度一致



但购买ETF就没有支付宝那么方便了,需要先在证券公司开设股票账户。当然现在都可以网上开户了,操作下也很简单。


1、ETF优点:费用低


购买ETF的一大优点就是交易费用低



上表对比了支付宝ETF之间的费率差别。


买卖一次,支付宝要收取1.65%的手续费,而ETF只收取万分之1.2。


持有一年的话,支付宝还要收取1.18%的管理费,而ETF只收取0.6%。


2、ETF优点:流动性好


ETF的另一个好处就是流动性好


ETF交易页面


ETF像股票一样,在开盘时间段内可实时交易精确把握买卖点。而支付宝买指数基金只能以收盘价买入。


此外,ETF卖出后资金次日即可提现到银行卡,缩短了资金闲置的时间。所以比起支付宝,我更推荐用股票账户交易ETF。


那还有比ETF更好的指数投资方式吗?


有的,股指期货。



03

股指期货


股指期货顾名思义就是股票指数的期货,它的走势和对应指数的走势几乎完全吻合



购买ETF要去证券公司开户不同的是,购买股指期货需要去期货公司开户。


很多人可能没有交易过股指期货,但应该听说过它可以加杠杆,这到底是什么意思呢?


我们尝试模拟一笔交易。


1

做多一手股指期货



上图是中证500指数股指期货的某段行情。


假设我们在9月30号以6000点的价格买入,做多一手指数合约



股指期货的 “合约价值” = “合约点数” x “每点价格”。


中证500每点的价格为200元,所以在6000点一张合约的价值为6000*200=120万元。


不过股指期货采用保证金交易,例如保证金比例为20%,那么只需要24万就能买一手价值为120万的合约,此时杠杆倍数为5倍


这就相当于买房子,只要付24万的首付就能买一套120万的房子。


假设买入合约后一直持有,到11月20日进行平仓。



平仓的价格为6300点,此时合约价值从原来的120万变为6300*200=126万


交易盈亏计算


我们投入本金24万买了一手合约,合约价值从120万涨到126万,盈利6万元,25%


指数从6000点到6300点只上涨了5%。但这笔交易盈利高达25%,盈亏放大了5倍,这刚好是杠杆的倍数。


你只花了24万,却赚到了原本需要120万才能赚到的钱,这就是所谓的杠杆交易


2

股指期货优点

首先,股指期货可以进行杠杆交易,只需缴纳少量保证金,闲置的资金可以更好地利用。



比如我花100万买ETF,和花15万保证金买价值100万的股指期货,最终效果是一样的


但后者至少能将剩下的85万存入随存随取的理财产品吃无风险收益,额外多赚一笔。


其次,交易股指期货仅仅收取万分之0.23的手续费,没有任何其它费用,比ETF还低。


如果我们分别用三种方法买入100万指数,持有一年后再卖出,交易成本如下:



支付宝的费用高达1.83万,ETF需要6060,而股指期货仅需92元


如果你有其他的方法,欢迎扫描下方二维码或加我微信xbx783,和我交流。



3

股指期货缺点

再来谈谈股指期货的缺点。


首先它对资金要求较高,需要50万资金放1个月才能开户,并且一手交易目前最低也要十几万,这就把大部分的个人投资者拦在了门外。


我不建议总体资金低于100万的投资者投资股指期货这里的介绍也只是想让大家了解这个金融工具而已。


股指期货另一个缺点是会到期交割



例如上图中的IC2012,其中IC指中证500,20指2020年,12指12月,它到2020年12月末就会强制终止。


如果你想继续持有,就要在到期前先将原期货平仓,再选择到期日更远的合约重新买入。这个过程被称为移仓


4

投资方法总结

目前我们已经讲解了三种指数投资的方法,并且分析了它们各自的优缺点:



普通小白投资者我建议使用ETF的方法进行投资,有一定经验的可以和我一样使用股指期货



04

股指期货投资历程


1

股指期货的贴水

我大概是在2020年初决定通过股指期货投资中证500的,实际建仓是在春节前后的几个交易日。


当时受疫情影响,春节后股指期货跌停。还记得我颤抖的嫩手在跌停板4652上买到的股指期货。


本来想等第二天跌停继续买,但市场没给机会。最终共计买入20手IC2009均价4850左右



选择当时最远的9月合约纯粹是因为我比较懒,不想频繁地转仓。



等到9月,我买入的IC2009合约已经变成了当月合,即将结束需要转仓。


从2月到9月,指数从5123上涨到6469,上涨26.26%,而我持有的合约从4850上涨到6440,涨幅为32.8%。


我能多赚6.5%,是因为在2月买入合约时,合约价格4850“贴水”严重,比指数5123低了273点。


而9月交割时,合约6440和指数6469仅相差29点。也就是说合约比指数多涨了244点,而这能让我比直接持有指数 多盈利约244*200*20=98万


9月转仓的时候,我又选择了最远的合约IC2103,它当时只有6066点,而指数为6469点,贴水403点。



等到明年3月交割时,这403点差距会慢慢消失,到时候可以比直接持有指数多赚或少亏403*200*20=161万


看到这,大家应该明白我选股指期货投资指数的真正原因了。


之前说的股指期货的优点都是细枝末节,真正吸引我的是股指的长期贴水可以让我有更多的盈利


至于为什么会长期贴水这么多,在此就不展开了。如果感兴趣可以留言,人多的话之后再写一篇文章细讲。


2

如何转仓更赚钱

我每次都选择当时最远的合约进行投资,到期后再换届时最远的合约。



我是想当然这么做的,主要比较省事,一年只需要转仓两次即可。


直到今年9月转仓的时候我脑子里隐约产生了另一个想法:如果我每次都转仓到最近的合约会怎么样?



比如2月合约到期了我换到3月,3月到期了换到4月...这样做显然会很烦,每年需要转十几次。


但这两种方法,哪种会更赚钱呢?


我找来了历史数据进行验证,实际交易的数据如下。


最远合约转仓


按照最远合约转仓,从2月买入到9月卖出,赚取了1590点的价差。


最近合约转仓


按照最近合约转仓。2月转仓到3月赚755点,3月转4月亏598点…


把每个次转仓的价差相加,得到总价差为1849。明显大于之前的1590点。


所以我的转仓方式,让我少赚了:



整整100多万!而且这还只是到9月份少赚的,到现在肯定更多。


看到这个结果后,真的是拍断大腿,直骂自己傻逼,为什么不一开始就好好想清楚呢...


3

历史数据验证

我又想2月到9月的数据毕竟太短了,没有代表性(主要是不甘心),所以喊林奇找来股指期货全部的历史数据回测一下:




如果你对相关代码感兴趣的话,可以扫描下方二维码或加我微信xbx783,都是可以直接发给你的。



林奇用Python写了一段代码进行回测,得到如下结果:


未加杠杆的净值


从中证500股指期货开始交易的2015年4月至今年,指数本身下跌了14%,净值为0.86。


如果按隔季移仓方法长期投资股指期货,净值有1.06,确实能多赚不少。


而按照次月移仓的方法,净值高达2.02!远高于之前的两种方法。


如果你需要股指期货数据和相关代码亲自验证下结果的话,可以扫描下方二维码或加我微信xbx783,都是可以直接发给你的。



所以这事吧,没法找西蒙斯背锅,就是自己蠢。少赚钱只能怪自己思考不够,认知不到位...



05

后记


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


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


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


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



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


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


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


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


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


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


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



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



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


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


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




联系作者



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/134872
 
191 次点击