量化交易体系,门派众多,但是存在一类“旁门左道”,比如有人曾经观察女性裙摆的长度,越短越做多、越长越做空。也有人用利用天气情况,艳阳天的时候做多,阴雨天做空。
而本次对基于天气的另类交易策略进行试验,看看交易结果会怎样。我们假设天气好的时候,人们的心情会变好,市场更活跃,倾向于做多,下雨的时候人们心情变差,市场低迷,倾向于做空。
交易对象:选取嘉实中证500ETF(159922)作为交易对象,初始资金10万元,初始持有股数0股。
交易方式:按照当天天气状况,雨天以开盘价卖出,晴天、多云等非雨天以开盘价买进。每次交易1000股。
数据准备
有人说数据分析师很大一部分精力都耗费在数据获取方面。对于天气、股票数据,爬虫当然可以,但目前各大商业网站反爬严重,对新手来说很不友好。本次还是直接用最简单的方式,一招搞定。
深圳的天气数据通过深圳市数据开放平台免费下载,股票交易数据通过tushare库直接读取。
登录深圳市数据开放平台(https://opendata.sz.gov.cn/)免费下载深圳市历史天气状况(需要注册)。
第三方库:Tushare(安装方法:Anaconda Prompt里直接输入 pip install tushare)。
通过read_excel函数直接读取天气数据(本次天气数据的样本为2012年7月16日至2019年7月1日),对天气的文本进行简单的建模,转化为交易信号。最终生成含股票开盘价(“price”列)、买卖信号(“buy/sell”列)等栏目的数据。
通过上表可以发现,价格栏存在很多缺失值,主要原因为:该基金还未成立,周末、节假日停止交易等。
首先进行缺失值的删除处理,之后根据下面几个维度进行分析:
-
初始交易金额
-
持股数
-
算出持股数量(“amount”列)
-
账户余额(“balance”列)
-
市值列(“value”列)等栏目数据
-
时间(“DDATETIME”列);
-
天气情况(“WEATHERTODAY”列);
-
交易价格(“price” 列);
-
买卖信号(“buy/sell” 列);
-
持股数量(“amount” 列);
-
账户余额(“balance” 列);
-
市值(“value” 列);
通过python的绘图函数,将市值、股票交易价格、持股数量等数据,按时间数据进行显示。
-
-
(2).红色为股票嘉实中证500ETF(159922)开盘价时序图。
-
1).2013年3月15日至2019年7月1日期间,基于天气的交易策略,账目浮盈天数占比84.86%(市值大于10万元启动资金的天数占比),最高浮盈比率曾达到90.19%,到数据截至日期(2019年7月1日),收益率为60.39%,最大浮亏比例6.19%。
本策略总体还是实现年平均收益10%左右的正收益,但这可能跟入市时间有关(2013年3月15日),刚好在牛市启动前期入市。但经历牛熊交替之后,依旧实现正收益,难道小资金定投真的有效?
2).本交易策略还不是一个完整的交易策略,未设置交易的佣金,也无明确的止损、止盈方式等,有兴趣的读者可以进一步完善。
3).本策略持股数量呈现一定的周期性,这个倒是开始没预料到的,这个值得深入探讨。
至于深圳天气和深圳成指之间是不是真的有相关性,欢迎留言吱一声。
近期热门:
值得收藏|菜鸟学Python【入门文章大全】
Python里三个最高逼格的调试神器
拍个自拍,让Python告诉你,军训过后你黑了几度?
用Python分析国庆最火的电影,20万数据分析
千人学习群:
小密圈的趣味实战-微信主题
小密圈人气很高的两个实战项目
倒计时2天!千人Python知识星球重大福利,一年仅一次,还剩2天!
本篇文章来源于: 菜鸟学Python
内容反馈