文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
数据
数据是决策和分析的基础,数据的速度、完整性非常重要。
掘金提供两大类数据获取方式:订阅数据获取实时数据、接口直通获取历史数据。
下面是两个方式各自的步骤介绍。
获取数据
1. 通过订阅获取高频行情数据
步骤:
1、设置初始化函数: init, 使用 subscribe 函数进行数据订阅;
2、实现一个函数: on_bar, 来根据数据推送进行逻辑处理;
3、执行策略。
描述:
预先订阅所需数据,在使用时,用对应的事件函数接收数据,数据发生更新时返回,并能够返回指定格式的时间序列滑窗数据。如:
# 第一步:订阅函数(参数规格)
subscribe(标的列表,数据频率,数据序列长度);
# 第二步:接收函数标识(全局变量,指定数据返回)
On_event (全局变量,指定数据集);
print (指定数据集)
print (全局变量)
示例:
# coding=utf-8
from __future__ import print_function, absolute_import
from gm.api import *
# 订阅平安银行10个长度1分钟的bar数据,然后求收盘价均值
# 设置初始化函数, 通过订阅将需要的数据申明
def init(context):
# 进行数据订阅
subscribe(symbols='SZSE.000001', frequency='60s', count=10)
# 通过on_bar函数接收bar数据事件,并在该函数中求均值
def on_bar(context, bars):
# 打印当前获取的bar信息
print(bars)
# context.data提取缓存的数据滑窗, 可用于计算指标
# 注意:context.data里的count要小于或等于subscribe里的count
data = context.data(symbol='SZSE.000001', frequency='60s', count=10, fields='close'))
print(data)
if __name__ == '__main__':
'''
strategy_id策略ID,由系统生成
filename文件名,请与本文件名保持一致
mode实时模式:MODE_LIVE回测模式:MODE_BACKTEST
token绑定计算机的ID,可在系统设置-密钥管理中生成
backtest_start_time回测开始时间
backtest_end_time回测结束时间
backtest_adjust股票复权方式不复权:ADJUST_NONE前复权:ADJUST_PREV后复权:ADJUST_POST
backtest_initial_cash回测初始资金
backtest_commission_ratio回测佣金比例
backtest_slippage_ratio回测滑点比例
'''
run(strategy_id='strategy_id',
filename='main.py',
mode=MODE_BACKTEST,
token='token_id',
backtest_start_time='2020-04-01 09:00:00',
backtest_end_time='2020-05-31 15:00:00',
backtest_adjust=ADJUST_NONE,
backtest_initial_cash=10000000,
backtest_commission_ratio=0.0001,
backtest_slippage_ratio=0.0001)
结果保存:
订阅后的数据滑窗储存在 context.data 中,提取数据需要调用 context.data()接口,可以在自定义函数 algo()中调取或是在 on_xxx()事件驱动函数中调取,调取格式为:
data = context.data(标的,频率,滑窗大小,字段)
2. 通过接口获取数据
步骤:
1、set_token 设置用户 token, 如果 token 不正确, 函数调用会抛出异常;
2、调用数据查询函数, 直接进行数据查询。
描述:
通过接口返回值获取数据,数据仅返回一次,如:
# 数据返回=请求函数(参数规格)
# 查询历史行情数据:获取指定时间段内的历史数据
history(标的,频率,开始时间,结束时间,是否复权)
# 查询成分股:获取指数成分股
stk_get_index_constituents(指数代码,交易日期)
# 查询业务数据:获取行情快照
current(标的代码)
示例:
# coding=utf-8
from __future__ import print_function, absolute_import
from gm.api import *
# 掘金终端需要打开,接口取数是通过网络请求的方式
# 设置token,可在用户-密钥管理里查看获取已有token ID
set_token('your token_id')
# 查询指数成分股
data = stk_get_index_constituents(index='SHSE.000300')
# 查询行情快照
current_data = current(symbols='SZSE.000001')
补充:使用 Jupyter Notebook 提取数据做研究
说明:
jupyter notebook 是 Anaconda 集成的工具包,安装了 anaconda 后,打开 jupyter notebook 获取数据。
开始前需要先确认以下三点:
掘金终端需要打开
jupyter notebook 的 Python 解析器已安装 gm 包(前面文档有介绍怎么下载 SDK)
已设置 token
步骤:
1、初始化设置,获取数据的必要代码
from __future__ import print_function, absolute_import, unicode_literals
from gm.api import *
# 终端开启 设置token
set_token('your token')
2、设置完成,提取数据 。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论