请 [注册] 或 [登录]  | 返回主站

量化交易吧 /  量化平台 帖子:3354061 新帖:3

JoinQuant 心得——股票行情数据【1.21更新

此人已认证发表于:5 月 9 日 18:27回复(1)

JoinQuant 心得——股票行情数据



聚宽使用两个月,分享些心得,方便后来人。

若朋友们觉得有帮助,回复一下,权当鼓励。

当然,若觉得有疑问或建议,也请告知。

API文档已有一定的说明,故只写重点,但附上API连接,请自行查阅。

  • JoinQuant 心得——股票行情数据

  • JoinQuant 心得——时间持仓资金数据

  • JoinQuant 心得——基本面数据

  • JoinQuant 心得——订单

  • JoinQuant 心得——回测功能性完善

  • JoinQuant 心得——数据存取


用CTRL F 在API文档中检索

  • 想要找数据,但是面对API文档中众多的API,不知道该用哪个,这对于新手可能是个的问题。

    首先,有个功能有可能有人不知道,但是查看API很有用,那就是CTRL F。

    按CTRL F,输入关键字,就可以在当前网页检索。如在API文档页面,按CTRL F,输入成交量,页面中有“成交量”的地方都会被找出来。

    这个功能至少我在360游览器,谷歌游览器都是能用的。


SecurityUnitData基本属性的获取

数据简介

  • API原文:SecurityUnitData

  • open 时间段开始时价格

  • close 时间段结束时价格

  • low 最低价

  • high 最高价

  • volume 成交的股票数量

  • money 成交的金额

  • factor 前复权因子

  • high_limit 涨停价

  • low_limit 跌停价

  • price 这段时间的平均价, 等于money/volume

  • pre_close 前一个单位时间结束时的价格, 按天则是前一天的收盘价, 按分钟这是前一分钟的结束价格

  • paused bool值, 这只股票是否停牌, 停牌时open/close/low/high/pre_close依然有值,都等于停牌前的收盘价, volume=money=0

获取方式概述

获取方法有如下四种:

  1. 直接在回测中从data读取

    • 只能在策略中使用,不能在研究中使用。

    • 该方法代码相对简单,调用方便。

    • 可以取得额外的属性,如security , returns , isnan,m*g, vwap, stddev。具体用法见API原文:SecurityUnitData。

    • 只能调用回测当前时间的数据。如,按日回测,回测到20120112这一天时,只能调用这一天前一天的数据(高开低收等)。

    • 只能在handle_data中使用。在before_trading_start,after_trading_end,run_monthly,run_weekly,run_daily中无法使用。

  2. attribute_history 获取

    • API原文:attribute_history

    • 只能在策略中使用,不能在研究中使用。

    • 只能取得相对当前时间前n个单位时间的数据。如,按日回测,回测到20120112这一天时,只能调用这一天前若干天的数据,不能获得未来数据。

    • 只能获取单独一个股票的数据,但可以同时获得多个字段的数据。如获得 平安银行这一只股票,前3天的交易额,交易量,最高价,最低价等。(与history相区别)

    • 可以选择是否跳过跳过停牌的日期, 选不跳过,则停牌时使用停牌前的数据填充。

  3. history 获取

    • API原文:history

    • 只能在策略中使用,不能在研究中使用。

    • 只能取得相对当前时间前n个单位时间的数据。如,按日回测,回测到20120112这一天时,只能调用这一天前若干天的数据(高开低收等),不能获得未来数据。

    • 可以同时获得多个股票的数据,但只能获得相同的一个数据字段。如获得 平安银行,建设银行,农业银行这3只股票,前3天的交易额。(与attribute_history相区别)

    • 没有跳过跳过停牌的日期, 停牌时使用停牌前的数据填充

  4. get_current_data 获取

    • API原文:get_current_data

    • 能且仅能获取当前时间数据(前三种方法只能获取过去时间的数据)

    • 只能获取涨跌停价,是否停牌,开盘价(分钟回测有效)。

    • 只能在策略中使用,不能在研究中使用。

    • 可以同时获得多个股票,多个字段数据。

  5. get_price 获取

    • API原文:get_price

    • 使用相对困难

    • 在策略与研究中都能使用。

    • 可以获得任意指定时间段的数据。

    • 可以同时获得多个股票的数据,相同的多个字段数据。如获得 平安银行,建设银行,农业银行这3只股票,20120112-20121212的交易额,交易量,最高价,最低价。

    • 没有跳过跳过停牌的日期, 停牌时使用停牌前的数据填充。

get_price 代码实现举例

由于get_price能够获得panel,但是使用起来需要特殊的代码,所以特别举例说明。

其他的函数用法API中有用法举例,自行查看吧。

代码:

# 该段程序只能在策略中使用,不能在研究中用# 回测时间为20151129-20151130# 资金100000def initialize(context):# 定义一个全局变量, 保存要操作的股票g.security = ['000001.XSHE','000002.XSHE']# 设置我们要操作的股票池set_universe(g.security)# 每个单位时间(如果按天回测,则每天调用一次,如果按分钟,则每分钟调用一次)调用一次def handle_data(context, data):security = g.securityprint security

    df=get_price(security=security, start_date='2015-11-26', end_date='2015-11-27', frequency='1d', fields=['open','high','low','close'])print df #得到的数据是个panelprint df['close']print df.major_xs('2015-11-27')#也可以写成 print df.ix[:,'2015-11-27',:]print df.minor_xs('000001.XSHE')#也可以写成 print df.ix[:,:,'000001.XSHE']

输出:

2015-11-30 09:30:00 - INFO - [u'000001.XSHE', u'000002.XSHE']2015-11-30 09:30:00 - INFO - Dimensions: 4 (items) x 2 (major_axis) x 2 (minor_axis)Items axis: close to openMajor_axis axis: 2015-11-26 00:00:00 to 2015-11-27 00:00:00Minor_axis axis: 000001.XSHE to 000002.XSHE2015-11-30 09:30:00 - INFO -             000001.XSHE  000002.XSHE2015-11-26        12.23        14.502015-11-27        11.73        14.262015-11-30 09:30:00 - INFO -              close   high    low   open000001.XSHE  11.73  12.20  11.53  12.18000002.XSHE  14.26  14.65  14.24  14.432015-11-30 09:30:00 - INFO -             close   high    low   open2015-11-26  12.23  12.38  12.20  12.362015-11-27  11.73  12.20  11.53  12.18

全部回复

0/140

达人推荐

量化课程

    移动端课程