返回介绍

开始入门

操作指引

SDK

数据文档

常见问题

量化工具

其他

其他

数据

发布于 2024-06-22 12:53:28 字数 3632 浏览 0 评论 0 收藏 0

数据是决策和分析的基础,数据的速度、完整性非常重要。

掘金提供两大类数据获取方式:订阅数据获取实时数据、接口直通获取历史数据。

下面是两个方式各自的步骤介绍。

获取数据

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文