JoinQuant提供哪些数据 学习笔记(2)

  1. 股票数据:我们拥有所有A股上市公司2005年以来的股票行情数据、市值数据财务数据上市公司基本信息融资融券信息等。为了避免幸存者偏差,我们包括了已经退市的股票数据(但是不包含2005年之前退市的股票)。
  2. 基金数据:我们目前提供了600多种在交易所上市的基金的行情、净值等数据,包含ETFLOF分级A/B基金以及货币基金的完整的行情、净值数据等,请点击基金数据查看。
  3. 金融期货数据:我们提供中金所推出的所有金融期货产品的行情数据,并包含历史产品的数据。
  4. 股票指数:我们支持近600种股票指数数据,包括指数的行情数据以及成分股数据。为了避免未来函数,我们支持获取历史任意时刻的指数成分股信息,具体见get_index_stocksget_index_weights。注意:指数不能买卖
  5. 行业板块:我们支持按行业、按板块选股,具体见get_industry_stocks
  6. 概念板块:我们支持按概念板块选股,具体见get_concept_stocks
  7. 宏观数据:我们提供全方位的宏观数据,为投资者决策提供有力数据支持。
  8. 所有的行情数据我们均已处理好前复权信息。
  9. 我们当日的回测数据会在收盘后通过多数据源进行校验,并在T+1(第二天)的00:01更新。

JoinQuant提供的数据支持下载吗?

JoinQuant提供的数据可以在官网及金融终端的回测、模拟交易、研究模块免费使用,金融终端使用时请先下载数据,本地调用可申请JQData服务

数据后缀是怎么定义的?

深交所股票代码后缀为 XSHE 如000001.XSHE 平安银行 上交所股票代码后缀为 XSHG 如600000.XSHG 浦发银行

其他数据后缀请查询数据字典

如何增加 DataFrame 显示的行、列数?

使用如下代码:

import pandas as pd

# 设定最大显示行数、列数为10000
pd.set_option('display.max_rows', 10000)
pd.set_option('display.max_columns', 10000)
pd.set_option('display.width', 10000)

numpy.float64 浮点数的展示问题

有同学问到, 聚宽的数据是不是有问题, 怎么价格还带那么多位小数. 其实并不是我们数据的问题, 是numpy.float64 展示数据的问题.我们的价格是 numpy.float64 对象存储的, numpy.float64 展示的时候跟我们想象的不一样.

stackoverflow上的答案: 点击这里

详情可以查看:点击这里

财务指标数据与其他平台不一致

为什么我在别的网站上查的财务指标(例如:net_profit、roe、 eps等)和聚宽提供的财务指标数据不一致
(1)为什么不一致:财务指标数据有单季度和报告期两种,一般财经网站上提供的都是根据财报公布日期统计的,我们根单季度统计的,因为财报的统计周期不同,导致一些指标上的不一致;
(2)这样做的原因:上市公司公布财报分四种,一季度报、中期年度报、前三季度报、全年年报,统计的周期跨度分别为第一季度、前两个季度、前三个季度、全年,而聚宽考虑到量化分析,所以默认查询的财务指标数据是单季度的;目前我们同时提供了单季度报告期的财务数据,您也可以分别查看使用。例如可以通过下面的方式获取报告期的eps:
image
(3)如果大家想对比别的网站的单季度统计数值,还可以到同花顺上查看,选择按单季度统计,如下图:image(4)市值(valuation)数据中market_cap、pb_ratio、pe_ratio、ps_ratio等由于算法或者不同,各个平台不一致,目前我们与choice一致;
(5)如果您还有疑问的话,请在社区发帖,详细描述下查询代码、查询结果及对比的截图,我们一起讨论下。

数据几点更新,更新频率是多少?

请查看下后面的链接内容:数据更新时间及频率

JQData,jqdatasdk和jqdata的关系

(1)JQData和jqdatasdk是同一个产品不同的名称,是一个Python库(或模块),是聚宽提供的数据接口,在您自己搭建的本地环境中使用(可以脱离官网和客户端独立使用),具体方法见JQData的API
(2)jqdata是官网的数据产品,主要在官网及客户端使用,具体使用方法见官网的API
(3)jqdata和jqdatasdk中的获取数据的函数及使用方法稍微不同,使用对应的API就没问题;再强调一下,jqdatasdk不能在官网的回测、模拟、研究中使用,客户端使用的话需要安装jqdatasdk这个python库,具体安装方法请参考在聚宽客户端安装Python库

如何获取行业及概念板块的行情数据及pe,pb等数据

(1)概念板块目前只可以通过get_concept_stocks获取某个概念板块包含哪些股票;
(2)目前没有概念板块的行情数据,敬请期待;
(3)可以通过get_industry_stocks获取某个行业有哪些股票,也可以通过get_industry查询股票属于哪个行业;
(4)在聚源数据中获取行业的行情数据,具体使用方法可以参考获取中证指数/行业的行情,pe,pb,股息率申万行业轮动策略
(5)查询指数的PE(中证指数pe/股息率)

有关期货数据的问题

为什么有时看到的期货主力合约和其他平台不一致,是怎么判断的,什么时候更新的

(1)因此我们根据持仓量(不是成交量)对期货合约进行拼接,形成主力连续合约;
image
(2)主力合约根据T-2和T-1的持仓量生成,在T-1的晚上、也即T日的夜盘开始前就切换到新的主力合约;
(3)wind等显示主连的数据及主力合约
image

发现数据有问题怎么办?

(1)查看下我们关于数据问题的说明
(2)在社区发帖,详细描述下您的问题,包括以下内容:

  • 具体是什么问题;
  • 发下查询语句;
  • 发下查询结果并标记下觉得有问题的地方;
  • 发下对比截图;
  • 发帖参考贴

回测

爱分享的小伙伴已经在社区分享了许多策略,您可以一键克隆免费使用。

回测的作用?

策略有效体现了您的交易思想,通过历史数据的回测,可以检验策略的有效性。

回测可以使用哪些数据?

回测可以免费使用 JoinQuant 提供的所有数据。点击这里了解更多信息。

回测使用的交易数据有一天的延时,即当天的交易数据在第二天的0:01分更新。

延时原因:回测使用的交易数据基于Level-2行情数据,Level-2级别的完整交易数据需要收盘后才能获得,目前市场上没有权威的行情数据,为了保证数据的准确性,我们购买了多个数据提供商的数据,经过一系列处理后才投入使用。

如何创建并运行策略?

通过策略列表页进入策略详情页后,按如下步骤编写策略,运行回测:

(1)进入策略列表页面

您可以看到一些默认的策略,您可以直接打开这些策略,编译运行或者运行回测。

(2)点击新建策略,编辑策略,编译运行,快速回测

我的策略-新建策略.png

点击新建策略后会出现一些模板策略,您可以直接运行这些策略、修改这些策略或者删除模板策略重新写

微信图片_20181016171524.png

编译运行.png

(3)完整回测

运行回测.png

如何编写一个最简单的策略?

如果您想要更详细的了解如何写策略,点击这里

回测支持哪些API?

点击这里查看回测API。

按天回测和分钟回测的区别?

按天回测: handle_data每天9:30调用一次, handle_data的参数是昨天的数据; 分钟回测: handle_data每分钟调用一次, handle_data的参数是上一分钟的数据;

下列图片中齿轮为 handle_data(context, data) 的运行时间,before_trading_start(context) 等其他函数运行时间详见相关API

频率:天

当选择天频率时, 算法在每根日线 Bar 都会运行一次,即每天运行一次。

在算法中,可以获取任何粒度的数据。

日K线

频率:分钟

当选择分钟频率时, 算法在每根分钟 Bar 都会运行一次,即每分钟运行一次。

在算法中,可以获取任何粒度的数据。

分钟K线

频率:Tick

当选择 Tick 频率时,每当新来一个 Tick,算法都会被执行一次。

注意:现阶段,Tick 频率只有在模拟交易时可以选择。

执行示意图如下图所示:

Tick序列

编译运行和运行回测的区别?

编译运行便于您快速调试代码,检查代码中的错误,策略的运行结果也能更快的展示,仅统计了基准收益、Total Returns(策略总收益)、Alpha(阿尔法)、Beta(贝塔)、Sharpe(夏普比率)、Max Drawdown(最大回撤)等。

运行回测是一次完整的回测,不仅包括编译运行中已经统计的指标,还包括交易详情、每日持仓&收益等信息。运行回测后您还可以创建模拟交易或者对回测进行归因分析。

如何查看订单的处理结果?

  1. 请参考如下API文档: get_open_orders/get_orders/get_trades
  2. 运行回测,在回测结果页查看交易详情、每日持仓&收益。

Total Returns、Alpha等指标如何计算?

Total Returns(策略总收益)、Alpha(阿尔法)、Beta(贝塔)、Sharpe(夏普比率)、Max Drawdown(最大回撤)等指标统称为风险指标,风险指标有利于您对策略进行一个客观的评价;点击这里查看风险指标的计算方法。

回测时Cash(可用资金)为负是因为什么?

市价单时, 为了让用户能够满仓买入一支股票, 我们并不是按照涨停价计算可买的数量, 而是按照当时的实际价格计算的, 如果按照涨停价计算可买的数量的话, 可能总是只能有90%的仓位. 而成交价格因为滑点的原因可能比市价高一些. 导致成交金额超出了可用资金,与实际情况有些出入. 实盘时,市价单策略按照“涨停价+千分之五手续费”计算可买数量,并冻结资金,不会出现这样的现象.

多次回测的结果不一样, 可能是什么原因?

(1)比较的前提: 开始/结束日期、起始资金、策略及运行频率必须相同;
(2)数据有更新;
(3)策略的原因(在相同条件下多次回测比较结果是否相同来排除):

  • 代码中有随机因素,比如遍历 dict中的元素. 因为dict 是无序存储的, 每次遍历的顺序可能不一样;
  • 不稳定的排序,比如多列的DataFrame, 根据一列进行排序, 每次排序后最终的DataFrame可能是不一样的;
  • 没有采用真实价格回测, 而且建立回测的日期不一样,因为回测中看到的价格可能是根据建立回测的日期做前复权处理的,如果建立的两个日期之间有股票发生了除权, 而策略又操作了这只股票, 则会可能会导致回测不一样。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值