如何使用量化数据

简单示例

获取某只股票2019年01月01日至2019年01月10日的市盈率

from xquant import *

jsonstr = {
    # 用户名与令牌,由用户填写
    "user": "SDK-User",
    "token": "SDK-Toke",
    # 登录地址
    "login_endpoint": "https -h prx-01.upoem1.com -p 443"
}
# 使用配置初始化数据模块
data_api = xquant.create_data(jsonstr)

# 下载数据,必须先下载数据,才能调用数据接口,否则会返回空结果集 
# 下载列表用','分割,对于因子,下载项就是因子名, 对于K线数据, 下载项是K线类型和市场
# 因子:PE,PB,ROE_TTM
# K线: BAR_DAY_1_CS A股日K, BAR_DAY_1_IDX 指数日k, BAR_DAY_1_CF 期货日k, BAR_DAY_1_PLA 板块日k, BAR_MIN_1_CS A股1分钟k
data_api.sync_data('PE,PB,ROE_TTM,BAR_DAY_1_CS,BAR_MIN_30_CS', 20190101, 20190110, symbols=['000001.SZ','000300.SH'])

# 取单个因子
df = data_api.get_one_field('PE', symbols=['000001.SZ', '000002.SZ'], start_date=20190101, end_date=20190110)
print(df)

返回结果:

   trade_date  000001.SZ  000002.SZ
0    20190102   6.804619   7.090760
1    20190103   6.871258   7.141196
2    20190104   7.219263   7.396345
3    20190107   7.211859   7.431947
4    20190108   7.152624   7.417113
5    20190109   7.359947   7.515019
6    20190110   7.478416   7.449748

初始化

初始化是数据调用前必要的准备工作

c++ 和 python 统一使用json格式的配置

以下是python下的示例配置, python中可以直接把配置写在代码中,方便调试, 正式部署时请使用统一的配置文件,方便维护

    jsonstr = {
        "login_endpoint": "https -h prx-01.upoem1.com -p 443",
        "user": "SDK-User",
        "token": "SDK-Toke"
    }

数据函数

同步数据

sync_data-同步数据

必须先下载数据,才能调用数据接口,否则会返回空结果集

函数原型:

sync_data(table, start_date, end_date, symbols=[], force = False)

参数:

参数 类型 说明
table list 数据存储的表名,因子数据使用因子名作为表名, k线数据按市场和频率组合,例如:A股日K BAR_DAY_1_CS
start_date int 开始交易日 ,形式为YYYYMMDD
end_date int 结束交易日 ,形式为YYYYMMDD
symbols list 需要下载的分钟K标的,仅下载分钟有效
force bool 已下载数据是否需要重新下载并且覆盖

K线数据的表名

K线频率 表名 (A股、指数、板块、期货、可转债)
BAR_MIN_1 1分钟K线 BAR_MIN_1_CS BAR_MIN_1_IDX BAR_MIN_1_PLA BAR_MIN_1_CF BAR_MIN_1_CB
BAR_MIN_5 5分钟K线 BAR_MIN_5_CS BAR_MIN_5_IDX BAR_MIN_5_PLA BAR_MIN_5_CF BAR_MIN_5_CB
BAR_MIN_15 15分钟K线 BAR_MIN_15_CS BAR_MIN_15_IDX BAR_MIN_15_PLA BAR_MIN_15_CF BAR_MIN_15_CB
BAR_MIN_30 30分钟K线 BAR_MIN_30_CS BAR_MIN_30_IDX BAR_MIN_30_PLA BAR_MIN_30_CF BAR_MIN_30_CB
BAR_MIN_60 60分钟K线 BAR_MIN_60_CS BAR_MIN_60_IDX BAR_MIN_60_PLA BAR_MIN_60_CF BAR_MIN_60_CB
BAR_DAY_1 日K线 BAR_DAY_1_CS BAR_DAY_1_IDX BAR_DAY_1_PLA BAR_DAY_1_CF BAR_DAY_1_CB

备注:对于指数K线数据表名使用 IDX 替换 CS, 期货K线数据表名使用 CF 替换 CS, 板块K线数据表名使用 PLA 替换 CS

举例: 下载因子

data_api.sync_data(['FUT_LONG_RANK', 'FUT_SHORT_RANK', 'PE', 'REVENUE', 'PB', 'ROE_TTM', 'NET_PROFIT', 'NP_GROWTH_A', 'BAR_DAY_1_CS'], 20190101, 20190430)

下载日线

data_api.sync_data(['BAR_DAY_1_CS', 'BAR_DAY_1_IDX'], 20190101, 20190430)

下载分钟线

下载分钟线时必须指定标的

data_api.sync_data(['BAR_MIN_1_CS', 'BAR_MIN_5_CS'], 20190101, 20190430, symbols=['000001.SZ','000002.SZ','600000.SH'])

下载全部A股分钟线

下载分钟线时必须指定标的

data_api.sync_data(['BAR_MIN_1_CS', 'BAR_MIN_5_CS'], 20190101, 20190430, symbols=data_api.get_constituent_symbols('CS.SET', -1))

数据工具说明

参数 说明 默认值
endpoint 登陆地址 必填 https -h prx-01.upoem1.com -p 443
user 用户 必填
token Token 必填
datadir 数据目录 local_cache
fields 指定要下载的因子, 逗号分隔
bars K线周期: 1day,1min,5min, 逗号分隔
markets K线市场: CS,CF,IDX,PLA, 逗号分隔
symbols 标的: 查看数据时指定的标的, 逗号分隔
start_date 起始日期
end_date 截止日期
force 强制下载,用于修复数据
autodl 根据历史来下载数据,用于修复数据
cmd 命令: 下载数据 download, 查看K线 bars, 查看因子 fields download

使用工具修复数据

修复股票和指数的一分钟线以及日线

# 修复K线数据
datatools --endpoint="https -h prx-01.upoem1.com -p 443" --user=xx --token=xxx --datadir=local_cache --bars=1min,1day --start=20220729 --end=20220817 --markets=CS,IDX --force
# 修复因子数据
datatools --endpoint="https -h prx-01.upoem1.com -p 443" --user=xx --token=xxx --datadir=local_cache --fields=PE,ROE --start=20220729 --end=20220817 --force

使用工具下载数据

下载股票和指数的一分钟线以及日线

# 下载K线数据
datatools --endpoint="https -h prx-01.upoem1.com -p 443" --user=xx --token=xxx --datadir=local_cache --bars=1min,1day --start=20220729 --end=20220817 --markets=CS,IDX
# 下载因子数据
datatools --endpoint="https -h prx-01.upoem1.com -p 443" --user=xx --token=xxx --datadir=local_cache --fields=PE,ROE --start=20220729 --end=20220817

使用工具查看K线

datatools --endpoint="https -h prx-01.upoem1.com -p 443" --cmd=bars --user=xx --token=xxx --datadir=local_cache --bars=1day --symbols=000001.SZ --start=20220729 --end=20220817

使用工具查看因子

datatools --endpoint="https -h prx-01.upoem1.com -p 443" --cmd=fields --user=xx --token=xxx --datadir=local_cache --fields=PE --symbols=000001.SZ --start=20220729 --end=20220817

使用工具清理数据

将指定的数据从本地缓存删除 ```

清理 PE 和 A股日线

datatools --endpoint="https -h prx-01.upoem1.com -p 443" --cmd=clean --user=xx --token=xxx --datadir=local_cache --fields=PE,BAR_DAY_1_CS

清理分钟线

datatools --endpoint="https -h prx-01.upoem1.com -p 443" --cmd=clean --user=xx --token=xxx --datadir=local_cache --fields=BAR_MIN_1_CS


### 行情数据  

#### get_bars-获取K线数据

获取K线数据,调用此接口之前,需要提前下载对应的K线数据,否则返回结果为空。

**函数原型:**

get_bars(symbols, timespan, start_date=None, end_date=None, count=None, price_mode='pre', fields=None)


**参数:**

| 参数           | 类型     | 说明                                                         |
| -------------- | -------- | ------------------------------------------------------------ |
| symbols        | str/list | 标的名称,以传字符型或列表传单个标的,以列表类型传一组标的   |
| timespan       | str      | k线类型,支持的K线类型有日K/一分钟K/五分钟K/十五分钟K/三十分钟K/小时K,对应的参数如下:<br />日K: 1day<br />一分钟K:1min<br />五分钟K:5min<br />十五分钟:15min<br />三十分钟:30min<br />小时K:60min |
| start_date     | int      | 开始交易日 ,形式为YYYYMMDD                                  |
| end_date       | int      | 结束交易日 ,形式为YYYYMMDD                                  |
| count          | int      | 指定拉取的条数, 截至到end_date; count 和 start_date 不能同时使用 |
| price_mode     | str      | 单symbol取K线时只用设置复权模式:<br />前复权:pre<br />后复权:post<br />不复权:real |
| fields         | list     | 指定返回的字段,symbols为str默认返回全部,symbols为list类型时可指定返回字段<br />fields:  'close', 'high', 'low', 'open', 'pre_close', 'settle', 'pre_settle', 'volume', 'turnover', 'total_volume', 'total_turnover', 'position' |
| skip_suspended | bool     | 停牌是否前值填充:True,前值填充;Flase,Nan值填充。默认为True |

**返回:**DataFrame or dict{DataFrame}

此函数是用于获取数据的函数,若在回测或者模拟交易使用,因为走网络接口实时拉取会导致速度慢。

**示例1:**

```python
# 获取1只一段时间的前复权日K数据
[In]:
    data_api.get_bars('000001.SZ', timespan='1day', start_date=20190101, end_date=20190110)
[Out]:
      symbol  trade_date           time_stop   high   low  open  close  \
0  000001.SZ    20190102 2019-01-02 15:00:00   9.42  9.16  9.39   9.19   
1  000001.SZ    20190103 2019-01-03 15:00:00   9.33  9.15  9.18   9.28   
2  000001.SZ    20190104 2019-01-04 15:00:00   9.82  9.22  9.24   9.75   
3  000001.SZ    20190107 2019-01-07 15:00:00   9.85  9.63  9.84   9.74   
4  000001.SZ    20190108 2019-01-08 15:00:00   9.74  9.62  9.73   9.66   
5  000001.SZ    20190109 2019-01-09 15:00:00  10.08  9.70  9.74   9.94   
6  000001.SZ    20190110 2019-01-10 15:00:00  10.20  9.86  9.87  10.10   

   pre_close  settle  pre_settle       volume      turnover  total_volume  \
0       9.38     0.0         0.0   53938600.0  4.986951e+08    53938600.0   
1       9.19     0.0         0.0   41553800.0  3.844577e+08    41553800.0   
2       9.28     0.0         0.0  148115900.0  1.422150e+09   148115900.0   
3       9.75     0.0         0.0   86568800.0  8.411665e+08    86568800.0   
4       9.74     0.0         0.0   40238800.0  3.892478e+08    40238800.0   
5       9.66     0.0         0.0  123348600.0  1.229465e+09   123348600.0   
6       9.94     0.0         0.0  107181800.0  1.079711e+09   107181800.0   

   total_turnover  position  suspend  
0    4.986951e+08       0.0        0  
1    3.844577e+08       0.0        0  
2    1.422150e+09       0.0        0  
3    8.411665e+08       0.0        0  
4    3.892478e+08       0.0        0  
5    1.229465e+09       0.0        0  
6    1.079711e+09       0.0        0

示例2:

# 获取多个标的指定指定交易不复权日K线数据
[In]:
    data_api.get_bars(['000001.SZ', '600000.SH'], timespan='1day', end_date=20190110, count=5, price_mode='real', fields=['open', 'close'])
[Out]:
                          trade_date  000001.SZ  600000.SH
close 2019-01-04 15:00:00    20190104       9.75       9.96
      2019-01-07 15:00:00    20190107       9.74       9.98
      2019-01-08 15:00:00    20190108       9.66       9.96
      2019-01-09 15:00:00    20190109       9.94       9.99
      2019-01-10 15:00:00    20190110      10.10       9.96
open  2019-01-04 15:00:00    20190104       9.24       9.73
      2019-01-07 15:00:00    20190107       9.84      10.09
      2019-01-08 15:00:00    20190108       9.73      10.03
      2019-01-09 15:00:00    20190109       9.74      10.06
      2019-01-10 15:00:00    20190110       9.87       9.94

示例3:

# 获取指定交易日的n条5分钟k
[In]:
    data_api.get_bars(['000001.SZ', '600000.SH'], timespan='5min', end_date=20190110, count=5, fields=['open', 'close'])
[Out]:
                           trade_date  000001.SZ  600000.SH
close 2019-01-10 14:40:00    20190110      10.11       9.95
      2019-01-10 14:45:00    20190110      10.09       9.95
      2019-01-10 14:50:00    20190110      10.10       9.96
      2019-01-10 14:55:00    20190110      10.10       9.97
      2019-01-10 15:00:00    20190110      10.10       9.96
open  2019-01-10 14:40:00    20190110      10.12       9.94
      2019-01-10 14:45:00    20190110      10.10       9.94
      2019-01-10 14:50:00    20190110      10.08       9.95
      2019-01-10 14:55:00    20190110      10.09       9.96
      2019-01-10 15:00:00    20190110      10.09       9.96

因子数据

get_one_field-取单个因子数据

获取股票的基础属性、市值等信息,主要是序列类的数据。数据信息详见财务分析因子财务数据股东与股本估值指标波动率因子

调用此api之前需下载所需要调用的因子数据,不然返回结果为空。

函数原型

get_one_field(field, symbols, start_date=None, end_date=None, count=None, strict=False)

参数:

参数 类型 说明
field str 因子
symbols list 选取的股票列表
start_date int 指定某个交易日。形式为YYYYMMDD ,可选字段
end_date int 指定某个交易日。形式为YYYYMMDD。
count int 交易日数量,可选字段; 基于 end_date 往前推count个交易日 ;和 start_date 字段不可同时使用
strict bool 严格按报告期对齐,仅季频数据有效

返回: DataFrame trade_date 作为日期列,其它已标的为列名,因子值作为列值

示例1:

# 指定时间前3条因子数据
[In]:
    data_api.get_one_field('PE', symbols=['000001.SZ', '000002.SZ'], end_date=20190110, count=3)
[Out]:
       trade_date  000001.SZ  000002.SZ
0    20190108   7.152624   7.417113
1    20190109   7.359947   7.515019
2    20190110   7.478416   7.449748

示例2:

# 一段时间的因子数据
[In]:
    data_api.get_one_field('PE', symbols=['000001.SZ', '600000.SZ'], start_date=20190101, end_date=20190110)
[Out]:
       trade_date  000001.SZ  600000.SH
0    20190102   6.804619   5.176437
1    20190103   6.871258   5.235139
2    20190104   7.219263   5.315187
3    20190107   7.211859   5.325860
4    20190108   7.152624   5.315187
5    20190109   7.359947   5.331197

get_field_one_day-取某天因子数据

获取股票的基础属性、市值等信息,主要是序列类的数据。数据信息详见财务分析因子财务数据股东与股本估值指标波动率因子

调用此api之前需下载所需要调用的因子数据,不然返回结果为空。

函数原型

get_field_one_day(fields, symbols, trade_date=None, report=None)

参数:

参数 类型 说明
fields list 因子列表
symbols list 选取的股票列表
trade_date int 指定某个交易日。形式为YYYYMMDD
report str 指定报告期,例如'2016Q1' - 16年一季报,'2016Q2' - 16年半年报,'2016Q3' - 16年三季报,'2016Q4'-年报

返回: DataFrame , symbol 作为标的列, 其它为因子值列

示例:

# 获取某一天数值类因子数据
[In]:
    data_api.get_field_one_day(['NET_PROFIT', 'PE'], symbols=['000001.SZ', '000006.SZ'], trade_date=20190111)
[Out]:
      symbol    NET_PROFIT        PE
0  000001.SZ  2.045600e+10  7.552460
1  000006.SZ  5.453400e+08  8.852076

get_field_one_symbol-取单个标的因子数据

获取股票的基础属性、市值等信息,主要是序列类的数据。数据信息详见财务分析因子财务数据股东与股本估值指标波动率因子

调用此api之前需下载所需要调用的因子数据,不然返回结果为空。

函数原型

get_field_one_symbol(fields, symbol, start_date=None, end_date=None, count=None, strict=False)

参数:

参数 类型 说明
fields list 因子列表
symbol str 选取的股票
start_date int 指定某个交易日。形式为YYYYMMDD ,可选字段
end_date int 指定某个交易日。形式为YYYYMMDD。
count int 交易日数量,可选字段; 基于 end_date 往前推count个交易日 ;和 start_date 字段不可同时使用
strict bool 严格按报告期对齐,仅季频数据有效

返回: DataFrame trade_date 作为日期列, 其它为因子值列

示例1:

[In]:
    data_api.get_field_one_symbol(['NET_PROFIT', 'PE', 'PB'], symbol='000001.SZ', start_date=20190101, end_date=20190110)
[Out]:
   trade_date        PB    NET_PROFIT        PE
0    20190102  0.670797  2.045600e+10  6.804619
1    20190103  0.677367  2.045600e+10  6.871258
2    20190104  0.711673  2.045600e+10  7.219263
3    20190107  0.710943  2.045600e+10  7.211859
4    20190108  0.705103  2.045600e+10  7.152624
5    20190109  0.725541  2.045600e+10  7.359947
6    20190110  0.737220  2.045600e+10  7.478416

示例2:

[In]:
    data_api.get_field_one_symbol(['NET_PROFIT', 'PE', 'PB'], symbol='000001.SZ', end_date=20190110, count=5)
[Out]:
   trade_date        PB    NET_PROFIT        PE
0    20190104  0.711673  2.045600e+10  7.219263
1    20190107  0.710943  2.045600e+10  7.211859
2    20190108  0.705103  2.045600e+10  7.152624
3    20190109  0.725541  2.045600e+10  7.359947
4    20190110  0.737220  2.045600e+10  7.478416

get_table_data-取表格数据

获取表格类型的数据,如期货持仓排名系列数据主力跟踪申万一级行业指数日K行情数据指数成分股权重数据

调用此api之前需下载所需要调用的因子数据,不然返回结果为空。

函数原型:

get_table_data(field, symbols, start_date=None, end_date=None, count=None, columns=[])

参数:

参数 类型 说明
field str 表格类因子, 例如 FUT_SHORT_RANK, FUT_LONG_RANK
symbols str 标的代码
start_date int 交易日期,形式为 YYYYMMDD
end_date int 交易日期,形式为 YYYYMMDD
count int 交易日数量, count 和 start_date 不能同时存在
columns list 指定返回的列,默认返回所有列; 关于因子列描述可以查阅因子数据说明

返回值:DataFrame trade_date 和 symbol 单独为一列, 其它是table内部列

示例1

# 获取常用指数成分股权重数据
[In]:
    data_api.get_table_data("INDEX_WEIGHT", "000016.SH", end_date=20200910, count=1)
[Out]:
    trade_date      symbol  WEIGH_VAL   STK_CODE
0     20200910  000016.SH      1.841  600000.SH
1     20200910  000016.SH      1.114  600009.SH
2     20200910  000016.SH      1.787  600016.SH
3     20200910  000016.SH      0.816  600028.SH
4     20200910  000016.SH      4.100  600030.SH
5     20200910  000016.SH      1.979  600031.SH
6     20200910  000016.SH      5.884  600036.SH
7     20200910  000016.SH      1.745  600048.SH
8     20200910  000016.SH      0.731  600050.SH
9     20200910  000016.SH      0.990  600104.SH
10    20200910  000016.SH      1.001  600196.SH
11    20200910  000016.SH      5.334  600276.SH
12    20200910  000016.SH      1.741  600309.SH
13    20200910  000016.SH     13.587  600519.Sh
14    20200910  000016.SH      0.799  600547.SH
15    20200910  000016.SH      2.212  600585.SH
16    20200910  000016.SH      1.030  600588.SH
17    20200910  000016.SH      1.278  600690.SH
18    20200910  000016.SH      0.920  600703.SH
19    20200910  000016.SH      0.780  600745.SH
20    20200910  000016.SH      2.217  600837.SH
21    20200910  000016.SH      3.851  600887.SH
22    20200910  000016.SH      2.529  601012.SH
23    20200910  000016.SH      0.404  601066.SH
24    20200910  000016.SH      0.807  601088.SH
25    20200910  000016.SH      0.443  601138.SH
26    20200910  000016.SH      3.049  601166.SH
27    20200910  000016.SH      0.622  601186.SH
28    20200910  000016.SH      1.320  601211.SH
29    20200910  000016.SH      0.126  601236.SH
30    20200910  000016.SH      1.396  601288.SH
31    20200910  000016.SH     12.562  601318.SH
32    20200910  000016.SH      0.233  601319.SH
33    20200910  000016.SH      1.967  601328.SH
34    20200910  000016.SH      0.756  601336.SH
35    20200910  000016.SH      2.631  601398.SH
36    20200910  000016.SH      1.269  601601.SH
37    20200910  000016.SH      1.101  601628.SH
38    20200910  000016.SH      0.188  601658.SH
39    20200910  000016.SH      1.632  601668.SH
40    20200910  000016.SH      1.907  601688.SH
41    20200910  000016.SH      0.278  601816.SH
42    20200910  000016.SH      0.926  601818.SH
43    20200910  000016.SH      0.651  601857.SH
44    20200910  000016.SH      3.073  601888.SH
45    20200910  000016.SH      1.046  601988.SH
46    20200910  000016.SH      0.670  601989.SH
47    20200910  000016.SH      0.494  603160.SH
48    20200910  000016.SH      1.724  603259.SH
49    20200910  000016.SH      0.458  603993.SH

示例2:

# 获取rb1910.SHF期货排名列表
[In]:
    data_api.get_table_data("FUT_SHORT_RANK", "rb1910.SHF", end_date=20190305, count=1, columns=['rank', 'name', 'volume'])
[Out]:
    trade_date     symbol   volume  rank    name
0     20190305  rb1910.SHF  49779.0     1  鲁证期货  
1     20190305  rb1910.SHF  36840.0     2  银河期货  
2     20190305  rb1910.SHF  26227.0     3  永安期货  
3     20190305  rb1910.SHF  24864.0     4  国泰君安  
4     20190305  rb1910.SHF  20030.0     5  中信期货  
5     20190305  rb1910.SHF  19373.0     6  信达期货  
6     20190305  rb1910.SHF  18976.0     7  方正中期  
7     20190305  rb1910.SHF  14457.0     8  中粮期货  
8     20190305  rb1910.SHF  12381.0     9  东海期货  
9     20190305  rb1910.SHF  10303.0    10  东证期货  
10    20190305  rb1910.SHF   9823.0    11  五矿经易  
11    20190305  rb1910.SHF   8848.0    12  天风期货  
12    20190305  rb1910.SHF   7150.0    13  海通期货  
13    20190305  rb1910.SHF   6679.0    14  国贸期货  
14    20190305  rb1910.SHF   6364.0    15  新湖期货  
15    20190305  rb1910.SHF   5907.0    16  东吴期货  
16    20190305  rb1910.SHF   5701.0    17  光大期货  
17    20190305  rb1910.SHF   5650.0    18  华泰期货  
18    20190305  rb1910.SHF   5490.0    19  申万期货  
19    20190305  rb1910.SHF   4559.0    20  国富期货

示例3:

# 获取申万一级行业板块多个交易日的K线数据
[In]:
    data_api.get_table_data("SW_MKT", "801010.PLA", start_date=20190110, end_date=20190115)
[Out]:
   trade_date      symbol  preClose   totalVolume  totalTurnover    close      low     open     high
0    20190110  801010.PLA   2354.51  6.385033e+09   8.653306e+08  2356.07  2339.35  2353.78  2365.80
1    20190111  801010.PLA   2356.07  5.889354e+09   9.345046e+08  2365.73  2346.85  2347.15  2371.81
2    20190114  801010.PLA   2365.73  6.900767e+09   1.047818e+09  2366.05  2364.00  2366.54  2391.36
3    20190115  801010.PLA   2366.05  6.657991e+09   9.268652e+08  2369.36  2335.53  2363.71  2372.83

数据标准接口

API介绍
API 中文名 参数 备注
UPD 点数据 indicators,codes,options 请求某一天的数据
UPH 序列数据 indicators,start_date,end_date,codes,options 请求一段时间内的数据
UPS 数据集 upsname,indicators,codes,options 请求数据集数据
使用示例
  1. UPD - 点数据

    # 请求点数据 A股股本
    df = data_api.UPD('A_SHARE,PE_TTM',codes='000001.SZ,600000.SH', options='date=20220728')
    print('A股股本, 市盈率TTM')
    print(df)
    
  2. UPH - 序列数据

    # 请求序列数据 市盈率TTM
    df = api.UPH('PE_TTM', start_date=20220720,end_date=20220728,codes='000001.SZ,600000.SH')
    print('市盈率TTM')
    print(df)
    
  3. UPS - 数据集

    # 请求数据集 港股通深每日资金流向(内部数据,不对外)
    df = api.UPS('HKS_MF_DAY',codes='000001.SZ,000002.SZ', option='date=20220728')
    print('港股通深每日资金流向')
    print(df)
    

交易日期函数

  • 交易日期各类接口中参数 trade_date为非必填项,默认为配置文件或客户端管理平台中设置的回测区间内时间

get_trade_day_interval-取交易日间隔数

  • 获取某时间区间交易日数,起止时间只能是回测区间内的

函数原型:

get_trade_day_interval(start_date, end_date, symbol)

参数:

参数 类型 是否必填 说明
start_date int 开始时间,格式为YYYYMMDD
end_date int 结束时间,格式为YYYYMMDD
symbol str 标的代码

返回值:返回值为交易日数

示例:

# 获取一段时间内的交易日数,包含所传起止日期
[In]:
    api.get_trade_day_interval(start_date=20200810, end_date=20200817, symbol='000001.SZ')
[Out]:
    6

get_prev_trade_date-取上一个交易日

  • 获取上一个交易日期

函数原型:

get_prev_trade_date(trade_date=None, market='CS', symbol=None)

参数:

参数 类型 是否必填 说明
trade_date int 交易日,格式为YYYYMMDD
market str 市场代码,主要有股票CS和期货CF,不填默认返回A股市场的交易日
symbol str 标的代码

返回值:返回上一交易日的日期

示例:

# 获取当前(20200801)时间上一个交易日
[In]:
    api.get_prev_trade_date() 
[Out]:
    20200731

get_next_trade_date-取下一个交易日

  • 获取下一个交易日期

函数原型:

get_next_trade_date(trade_date=None, market='CS', symbol=None)

参数:

参数 类型 是否必填 说明
trade_date int 开始时间,格式为YYYYMMDD
market str 市场代码,主要有股票CS和期货CF,不填默认返回A股市场的交易日
symbol str 标的代码

返回值:返回下一交易日的日期

示例:

# 获取当前(20200801)时间下一个交易日
[In]:
    api.get_next_trade_date() 
[Out]:
    20200804

get_prev_trade_dates-取前N个交易日

  • 获取向前count个交易日的列表

函数原型:

get_prev_trade_dates(trade_date=None, count=1, market='CS')

参数:

参数 类型 是否必填 说明
trade_date int 开始时间,格式为YYYYMMDD
count int 获取交易日个数
market str 市场代码,主要有股票CS和期货CF,不填默认返回A股市场的交易日

返回值:返回交易日列表

示例:

# 获取当前(20200801)时间前3个交易日
[In]:
    api.get_prev_trade_dates(count=3) 
[Out]:
    [20200729, 20200730, 20200731]

get_next_trade_dates-取后N个交易日

  • 获取向后count个交易日的列表

函数原型:

get_next_trade_dates(trade_date=None, count=1, market='CS')

参数:

参数 类型 是否必填 说明
trade_date int 开始时间,格式为YYYYMMDD
count int 获取交易日个数
market str 市场代码,主要有股票CS和期货CF,不填默认返回A股市场的交易日

返回值:返回交易日列表

示例:

# 获取当前(20200801)时间后3个交易日
[In]:
    api.get_next_trade_dates(count=3) 
[Out]:
    [20200804, 20200805, 20200806]

get_trade_dates-取某时间内交易日

  • 指定起止日期,获取某个市场一段时间的交易日期

函数原型:

get_trade_dates(start_date, end_date, market='CS')

参数:

参数 类型 是否必填 说明
start_date int 开始时间(含当天),格式为YYYYMMDD
end_date int 结束时间(含当天),格式为YYYYMMDD
market str 交易市场,主要有股票CF和期货CF,不填默认返回A股市场的交易日

返回值:交易日list,日期格式YYYYMMDD,类型为int

示例:

# 获取一段时间内的交易日期,包含所传起止日期
[In]:
    api.get_trade_dates(start_date=20200810, end_date=20200817)
[Out]:
    [20200810, 20200811, 20200812, 20200813, 20200814, 20200817]

date_now-取当前交易日

  • 获取当前的交易日期。回测情况下是回测历史当天,交易情况下是当前交易日。

函数原型:

date_now()

参数:

返回值:返回历史当天的交易日期,期货夜盘默认归为后一交易日

示例:

[In]:
    api.date_now()
[Out]:
    20200803

time_now-取当前交易时间

  • 获取当前的交易时间。回测情况下是回测历史当天,交易情况下是当前交易日。

函数原型:

time_now()

参数:

返回值:返回历史当前的时间

示例:

[In]:
    api.time_now()
[Out]:
    2020-07-31 20:50:00

标的信息函数

  • 交易日期各类接口中参数 trade_date为非必填项,默认为配置文件或客户端管理平台中设置的回测时间

get_ref_data-取标的信息

函数原型:

get_ref_data(symbol)

参数:

参数 类型 是否必填 说明
symbol str 标的代码

返回值:标的基本信息

示例:

[In]:
    api.get_ref_data(symbol="000001.SZ") 
[Out]:
    { "symbol": "000001.SZ", "market": "CS", "exchange": "SZ", "product_name": "", "currency": "CNY", "lot_size": 100, "name": "平安银行", "tplus": 1, "margin_rate": 1, "short_sellable": _false, "value_per_unit": 1, "price_tick": 0.01, "exchange_symbol": 000001, "is_standard": _true, "trade_market": CS", "list_date": 19910403, "last_trade_date": 0, "min_order_vol": 0 }

get_constituent_symbols-取成分股

  • 获取股票指数或者行业板块的成分股数据。获取期货某品种当前可交易的标的数据。详见指数代码说明。
  • 获取指数成分股权重数据 :表格类因子数据-get_table_data

函数原型:

get_constituent_symbols(symbol, trade_date=None)

参数:

参数 类型 是否必填 说明
symbol str 指数代码、板块代码等
trade_date int 交易日,形式为YYYYMMDD,支持获取历史成分股信息,不填默认返回当天的数据

返回: 返回股票代码的list

示例1:

# 获取上证50成分股
[In]:
    api.get_constituent_symbols(symbol='000016.SH')
[Out]:
    ['600000.SH', '600009.SH', '600016.SH', '600028.SH', '600030.SH', '600031.SH', '600036.SH', '600048.SH', '600050.SH', '600104.SH', '600196.SH', '600276.SH', '600309.SH', '600519.SH', '600547.SH', '600585.SH', '600588.SH', '600690.SH', '600703.SH', '600745.SH', '600837.SH', '600887.SH', '601012.SH', '601066.SH', '601088.SH', '601138.SH', '601166.SH', '601186.SH', '601211.SH', '601236.SH', '601288.SH', '601318.SH', '601319.SH', '601328.SH', '601336.SH', '601398.SH', '601601.SH', '601628.SH', '601658.SH', '601668.SH', '601688.SH', '601816.SH', '601818.SH', '601857.SH', '601888.SH', '601988.SH', '601989.SH', '603160.SH', '603259.SH', '603993.SH']

示例2

# 获取指定某天所有可交易标的
[In]:
    api.get_constituent_symbols(symbol='CS.SET', trade_date=20210307)
[Out]:
    ['000001.SZ', '000002.SZ', '000004.SZ', '000005.SZ', '000006.SZ', '000007.SZ', '000008.SZ', '000009.SZ', '000010.SZ', '000011.SZ', '000012.SZ', '000014.SZ', '000016.SZ', '000017.SZ', '000019.SZ', '000020.SZ', ..., '688698.SH', '688699.SH', '688777.SZ', '688788.SH', '688819.SH', '688981.SH']

get_continuous_symbol-取连续合约标的

  • 传入连续合约代码,获取对应的实际的标的代码。期货专用

函数原型:

get_continuous_symbol(symbol, trade_date=None)

参数:

参数 类型 是否必填 说明
symbol str 连续合约的代码,包括主力、次主力合约,当月、次月、下季、隔季连续合约
trade_date int 指定某个交易日,不填则默认为回测当天。形式为YYYYMMDD

返回:连续合约对应的期货代码。

示例:

# 获取主力合约在某交易日对应的标准合约
[In]:
    api.get_continuous_symbol(symbol='jmZ0.DCE')
[Out]:
    jm2009.DCE

get_appointed_symbols-取某合约集合

  • 获取指定合约集合,如主力合约集合,次主力合约集合。期货专用

函数原型:

get_appointed_symbols(mode, trade_date=None)

参数:

参数 类型 是否必填 说明
mode str 指定合约的类型
Z0:主力合约;Z1:次主力合约
M0:当月连续;M1:下月连续;M3:下季连续;M6:隔季连续
trade_date int 交易日 ,形式为YYYYMMDD,不填默认返回当天的数据

返回: 返回指定合约列表

示例1:

# 获取20200803当天的所有主力合约
[In]:
    api.get_appointed_symbols(mode='Z0')
[Out]:
    ['APZ0.CZC', 'CFZ0.CZC', 'CJZ0.CZC', 'CYZ0.CZC', 'FGZ0.CZC', 'ICZ0.CFE', 'IFZ0.CFE', 'IHZ0.CFE', 'JRZ0.CZC', 'LRZ0.CZC', 'MAZ0.CZC', 'OIZ0.CZC', 'PMZ0.CZC', 'RIZ0.CZC', 'RMZ0.CZC', 'RSZ0.CZC', 'SFZ0.CZC', 'SMZ0.CZC', 'SRZ0.CZC', 'TAZ0.CZC', 'TFZ0.CFE', 'TSZ0.CFE', 'TZ0.CFE', 'URZ0.CZC', 'WHZ0.CZC', 'ZCZ0.CZC', 'aZ0.DCE', 'agZ0.SHF', 'alZ0.SHF', 'auZ0.SHF', 'bZ0.DCE', 'bbZ0.DCE', 'buZ0.SHF', 'cZ0.DCE', 'csZ0.DCE', 'cuZ0.SHF', 'ebZ0.DCE', 'egZ0.DCE', 'fbZ0.DCE', 'fuZ0.SHF', 'hcZ0.SHF', 'iZ0.DCE', 'jZ0.DCE', 'jdZ0.DCE', 'jmZ0.DCE', 'lZ0.DCE', 'mZ0.DCE', 'niZ0.SHF', 'nrZ0.INE', 'pZ0.DCE', 'pbZ0.SHF', 'ppZ0.DCE', 'rbZ0.SHF', 'rrZ0.DCE', 'ruZ0.SHF', 'scZ0.INE', 'snZ0.SHF', 'spZ0.SHF', 'ssZ0.SHF', 'vZ0.DCE', 'wrZ0.SHF', 'yZ0.DCE', 'znZ0.SHF']

示例2:

# 获取当天(20200803)Y1的所有合约
[In]:
    api.get_appointed_symbols(mode='Y1')
[Out]:
    ['eb2101.DCE', 'rr2101.DCE', 'sc2101.INE', 'CY2101.CZC', 'ru2101.SHF', 'ag2101.SHF', 'y2101.DCE', 'zn2101.SHF', 'sp2101.SHF', 'pp2101.DCE', 'CJ2101.CZC', 'al2101.SHF', 'jm2101.DCE', 'fb2101.DCE', 'cu2101.SHF', 'wr2101.SHF', 'v2101.DCE', 'AP2101.CZC', 'rb2101.SHF', 'SF2101.CZC', 'nr2101.INE', 'WH2101.CZC', 'jd2101.DCE', 'hc2101.SHF', 'fu2101.SHF', 'bb2101.DCE', 'bu2101.SHF', 'OI2101.CZC', 'cs2101.DCE', 'c2101.DCE', 'ss2101.SHF', 'pb2101.SHF', 'LR2101.CZC', 'SA2101.CZC', 'a2101.DCE', 'p2101.DCE', 'sn2101.SHF', 'ZC2101.CZC', 'eg2101.DCE', 'b2101.DCE', 'l2101.DCE', 'SM2101.CZC', 'SR2101.CZC', 'TA2101.CZC', 'RI2101.CZC', 'i2101.DCE', 'RM2101.CZC', 'j2101.DCE', 'UR2101.CZC', 'FG2101.CZC', 'MA2101.CZC', 'm2101.DCE', 'PM2101.CZC', 'ni2101.SHF', 'JR2101.CZC', 'CF2101.CZC']

is_suspend-是否停牌

  • 判断标的当日是否停止交易。所传日期若为非交易日则返回True。

  • 如若所传symbol是港股,所传日期是A股的交易日,而不是港股的交易日,返回值是True;

  • 如若所传symbol是A股,所传日期是港股的交易日,而不是A股的交易日,返回值也是True;

函数原型:

is_suspend(symbol, trade_date=None)

参数:

参数 类型 是否必填 说明
symbol str 策略中标的代码
trade_date int 交易日,形式为YYYYMMDD,可以查询历史上的状态,不填默认返回当天的数据

返回值:返回True表示停牌,返回False表示未停牌

示例:

# 判断000001.CS在20200803是否停牌
[In]:
    api.is_suspend(symbol='000001.SZ')
[Out]:
    False

is_ST-是否ST股

  • 判断标的当日是否ST股

函数原型:

is_ST(symbol, trade_date=None)

参数:

参数 类型 是否必填 说明
symbol str 策略中的证券代码
trade_date int 交易日,形式为YYYYMMDD,可以查询历史上的状态,不填默认返回当天的数据

返回值:返回True表示ST股,返回False表示非ST股

示例:

# 判断000001.CS在20200803是否为ST股
[In]:
    api.is_ST(symbol='000001.SZ')
[Out]:
    False

is_listed-是否上市

  • 判断标的当日是否上市

函数原型:

is_listed(symbol, trade_date=None)

参数:

参数 类型 是否必填 说明
symbol str 策略中的证券代码
trade_date int 交易日,形式为YYYYMMDD,可以查询历史上的状态,不填默认返回当天的数据

返回值:返回True表示上市,返回False表示未上市或者已退市

示例:

# 判断000001.CS在20200803是否上市
[In]:
    api.is_listed(symbol='000001.SZ',trade_date=20200803) 
[Out]:
    True

results matching ""

    No results matching ""