作者:xiaoyi
财经数据因为其特殊性,数据的获取方式也比较多样
最常见的就是通过各类财经网站,像雪球、网易财经、微博财经等都可以获取到当天的数据,甚至几天前、几十天前的数据也都可以通过修改参数拿到。
唯一的问题是频繁的访问会被限制爬虫程序的运行,所以我更推荐下面两种方法:
- 1. 通过 万矿平台 在线运行代码
- 2. 通过 tushare 接口在本地运行代码
1. 万矿平台
万矿对应的官网是:https://www.windquant.com/
登录之后可以在右上方选项卡点击『研究1.0』进入个人研究界面
之后就能看到左侧的选项卡看到相应的菜单,对应的代码文件都会在『Notebook』文件夹下。
就拿上一篇文章 比普通定投高20%的支付宝智能定投策略,30行代码轻松复现 来举例:
点击『新建』创建新的 Notebook 文件,进入之后就是一个标准的 Jupyter Notebook 编辑界面。虽然功能可能没有本地运行的 Jupyter 功能多,但是该有的东西它都有了
先导入相应的库:
import numpy as np
import pandas as pd
from WindAlgo import *
from WindPy import *
上一篇中漏掉了 get_kk_ratio 这个函数,具体代码如下:
# 计算扣款率
def get_kk_ratio(data):
if data[0]>100:
return 60
elif data[0]>50:
return 70
elif data[0]>15:
return 80
elif data[0]>0:
return 90
elif data[0]>-5:
return 60 if data[1]>5 else 160
elif data[0]>-10:
return 70 if data[1]>5 else 170
elif data[0]>-20:
return 80 if data[1]>5 else 180
elif data[0]>-30:
return 90 if data[1]>5 else 190
elif data[0]>-40:
return 100 if data[1]>5 else 200
else:
return 110 if data[1]>5 else 210
然后将上一篇中的代码挨个复制到后面,直接运行后即可出结果
代码比较多,我这里直接贴截图,想复现的同学可以自己去上一篇复制代码:比普通定投高20%的支付宝智能定投策略,30行代码轻松复现
为了避免出错,建议你直接复制我的代码粘贴上去
因为 Notebook 显示的结果中间会被省略掉,可以将以下两行代码放在代码的头部进行声明,会显示出所有的数据。
# 显示所有列
pd.set_option('display.max_columns', None)
# 显示所有行
pd.set_option('display.max_rows', None)
2. tushare平台
由于万矿平台上的代码只限在该平台上运行,并且保存的数据无法下载到本地,所以我一般在万矿上都只进行策略的复现和回测,确定了策略是可用的之后,才会使用 tushare 接口进行每日的定时监控。
tushare 对应的官网是:https://tushare.pro/
由于它的数据接口是可以直接在本地 py 文件中调用,所以获取到的粒度数据也就可以直接保存到本地,方便进行其他的分析操作。
需要说明的是,tushare 不同粒度的数据对应的积分不同,但是对于我们来说,刚注册的账户基本够用
注册之后记得更新个人资料(随便写),可获得20积分
登录之后通过点击『个人主页』后点击『接口TOKEN』复制你自己的 token码
通过这个 token 码你可以获取到你自己目前积分所对应的粒度数据
同样拿之前的一篇文章 基于北向资金的择时买入卖出策略复现 来举例:
在本地新建一个 Python 文件(不限编辑器,均可)
首先,在文件中导入相应的库:
# 导入相应的库
import tushare as ts
import datetime
import pandas as pd
import numpy as np
使用自己的接口获取数据:
# 将 token 替换成你自己的就行
token = '你自己的token'
pro = ts.pro_api(token)
"""获取所有交易日数据"""
trade_date = pro.trade_cal(start_date='20180101', end_date=datetime.datetime.today().strftime('%Y%m%d'))
date_list = list(trade_date[trade_date.is_open == 1]['cal_date'].values)
具体每一步的代码在 基于北向资金的择时买入卖出策略复现 中已经全部开源了,下面我直接贴每一步的截图和运行截图
具体代码如下:
运行结果截图如下:
策略复现部分的代码如下:
运行结果部分截图如下:
以上就是我在进行策略回测之前获取日粒度数据所用的平台和接口
一般情况下我会先在万矿上将策略实现,并且使用不同的时间参数、不同的权重参数进行收益率的回测,一旦收益率达到要求并且比较普遍适用,我会切换到 tushare 接口并写出一个本地文件,将文件部署到服务器之后可实现每日策略操作的定时推送。
总体来看,如果你是想要分析长期数据并进行定时监控,建议你试试我的操作思路。当然了,如果你有更好的方法,也欢迎与我一起交流。