量化交易体系,门派众多,但是存在一类“旁门左道”,比如有人曾经观察女性裙摆的长度,越短越做多、越长越做空。也有人用利用天气情况,艳阳天的时候做多,阴雨天做空。
而本次对基于天气的另类交易策略进行试验,看看交易结果会怎样。我们假设天气好的时候,人们的心情会变好,市场更活跃,倾向于做多,下雨的时候人们心情变差,市场低迷,倾向于做空。
1、交易前提
前提假设:深圳成指和深圳天气存在某种关系。
交易对象:选取嘉实中证500ETF(159922)作为交易对象,初始资金10万元,初始持有股数0股。
交易方式:按照当天天气状况,雨天以开盘价卖出,晴天、多云等非雨天以开盘价买进。每次交易1000股。
2、数据准备
有人说数据分析师很大一部分精力都耗费在数据获取方面。对于天气、股票数据,爬虫当然可以,但目前各大商业网站反爬严重,对新手来说很不友好。本次还是直接用最简单的方式,一招搞定。
深圳的天气数据通过深圳市数据开放平台免费下载,股票交易数据通过tushare库直接读取。
登录深圳市数据开放平台免费下载深圳市历史天气状况(需要注册)。
3、试验步骤
1).编程环境:Anaconda
第三方库:Tushare(安装方法:Anaconda Prompt里直接输入 pip install tushare)。
2).数据获取
通过read_excel函数直接读取天气数据(本次天气数据的样本为2012年7月16日至2019年7月1日),对天气的文本进行简单的建模,转化为交易信号。最终生成含股票开盘价(“price”列)、买卖信号(“buy/sell”列)等栏目的数据。
结果数据如下:
3).数据清洗、填充
通过上表可以发现,价格栏存在很多缺失值,主要原因为:该基金还未成立,周末、节假日停止交易等。
首先进行缺失值的删除处理,之后根据下面几个维度进行分析:
初始交易金额
持股数
算出持股数量(“amount”列)
账户余额(“balance”列)
市值列(“value”列)等栏目数据
至此,所有的数据已经计算完毕,形成了包含:
时间(“DDATETIME”列);
天气情况(“WEATHERTODAY”列);
交易价格(“price” 列);
买卖信号(“buy/sell” 列);
持股数量(“amount” 列);
账户余额(“balance” 列);
市值(“value” 列);
4、数据可视化
通过python的绘图函数,将市值、股票交易价格、持股数量等数据,按时间数据进行显示。
python培训:http://www.baizhiedu.com/python2019