# API 介绍
# 基本函数
# init - 初始化策略
初始化策略, 策略启动时自动执行。可以在这里初始化策略配置参数。
函数原型:
init(context)
参数:
参数名 | 类型 | 说明 |
---|---|---|
context | context | 上下文,全局变量可存储在这里 |
示例:
def init(context):
# 订阅bar
subscribe(symbols='SHSE.600000,SHSE.600004', frequency='30s', count=5)
# 增加对象属性,如:设置一个股票资金占用百分比
context.percentage_stock = 0.8
注意: 回测模式下init函数里不支持交易操作,仿真模式和实盘模式支持
# schedule - 定时任务配置
在指定时间自动执行策略算法, 通常用于选股类型策略
函数原型:
schedule(schedule_func, date_rule, time_rule)
参数:
参数名 | 类型 | 说明 |
---|---|---|
schedule_func | function | 策略定时执行算法 |
date_rule | str | n + 时间单位, 可选'd/w/m' 表示 n 天/n 周/n 月 |
time_rule | str | 执行算法的具体时间 (%H:%M:%S 格式) |
返回值:
None
示例:
def init(context):
#每天的19:06:20执行策略algo_1
schedule(schedule_func=algo_1, date_rule='1d', time_rule='19:06:20')
#每月的第一个交易日的09:40:00执行策略algo_2
schedule(schedule_func=algo_2, date_rule='1m', time_rule='9:40:00')
def algo_1(context):
print(context.symbols)
def algo_2(context):
order_volume(symbol='SHSE.600000', volume=200, side=OrderSide_Buy, order_type=OrderType_Market, position_effect=PositionEffect_Open)
注意:
1.time_rule 的时,分,秒均不可以只输入个位数,例:'9:40:0'
或'14:5:0'
2.目前暂时支持1d
、1w
、1m
,其中1w
、1m
仅用于回测
# run - 运行策略
函数原型:
run(strategy_id='', filename='', mode=MODE_UNKNOWN, token='', backtest_start_time='',
backtest_end_time='', backtest_initial_cash=1000000,
backtest_transaction_ratio=1, backtest_commission_ratio=0,
backtest_slippage_ratio=0, backtest_adjust=ADJUST_NONE, backtest_check_cache=1,
serv_addr='', backtest_match_mode=0)
参数:
参数名 | 类型 | 说明 |
---|---|---|
strategy_id | str | 策略 id |
filename | str | 策略文件名称 |
mode | int | 策略模式 MODE_LIVE(实时)=1 MODE_BACKTEST(回测) =2 |
token | str | 用户标识 |
backtest_start_time | str | 回测开始时间 (%Y-%m-%d %H:%M:%S 格式) |
backtest_end_time | str | 回测结束时间 (%Y-%m-%d %H:%M:%S 格式) |
backtest_initial_cash | double | 回测初始资金, 默认 1000000 |
backtest_transaction_ratio | double | 回测成交比例, 默认 1.0, 即下单 100%成交 |
backtest_commission_ratio | double | 回测佣金比例, 默认 0 |
backtest_slippage_ratio | double | 回测滑点比例, 默认 0 |
backtest_adjust | int | 回测复权方式(默认不复权) ADJUST_NONE(不复权)=0 ADJUST_PREV(前复权)=1 ADJUST_POST(后复权)=2 |
backtest_check_cache | int | 回测是否使用缓存:1 - 使用, 0 - 不使用;默认使用 |
serv_addr | str | 终端服务地址, 默认本地地址, 可不填,若需指定应输入 ip+端口号,如"127.0.0.1:7001" |
backtest_match_mode | int | 回测市价撮合模式: 1-实时撮合:在当前 bar 的收盘价/当前 tick 的 price 撮合,0-延时撮合:在下个 bar 的开盘价/下个 tick 的 price 撮合,默认是模式 0 |
返回值:
None
示例:
run(strategy_id='strategy_1', filename='main.py', mode=MODE_BACKTEST, token='token_id',
backtest_start_time='2016-06-17 13:00:00', backtest_end_time='2017-08-21 15:00:00')
注意: 1. run 函数中,mode=1
也可改为mode=MODE_LIVE
,两者等价,backtest_adjust
同理
2. backtest_start_time 和 backtest_end_time 中月,日,时,分,秒均可以只输入个位数,例:'2016-6-7 9:55:0'
或'2017-8-1 14:6:0'
,但若对应位置为零,则 0 不可被省略,比如不能输入"2017-8-1 14:6: "
3. filename 指运行的 py 文件名字,如该策略文件名为 Strategy.py,则此处应填"Strategy.py"
# stop - 停止策略
停止策略,退出策略进程
函数原型:
stop()
返回值:
None
示例:
#若订阅过的代码集合为空,停止策略
if not context.symbols:
stop()
# timer - 设置定时器
设定定时器的间隔秒数,每过设定好的秒数调用一次计时器 timer_func(),直到 timer_stop()结束定时器为止。
函数原型:
timer(timer_func, period, start_delay)
参数:
参数名 | 类型 | 说明 |
---|---|---|
timer_func | function | 在 timer 设置的时间到达时触发的事件函数 |
period | int | 定时事件间隔毫秒数,设定每隔多少毫秒触发一次定时器,范围在 [1,43200000] |
start_delay | int | 等待秒数(毫秒),设定多少毫秒后启动定时器,范围在[0,43200000] |
返回值: dict
字段 | 类型 | 说明 |
---|---|---|
timer_status | int | 定时器设置是否成功,成功=0,失败=非 0 错误码(timer_id 无效)。 |
timer_id | int | 设定好的定时器 id |
# timer_stop
- 停止定时器
停止已设置的定时器
函数原型:
timer_stop(timer_id)
参数:
字段 | 类型 | 说明 |
---|---|---|
timer_id | int | 要停止的定时器 id |
返回值:
字段 | 类型 | 说明 |
---|---|---|
is_stop | bool | 是否成功停止,True or False |
示例:
def init(context):
# 每隔1分钟执行ontime_1, 即时启动
context.timerid_1 = timer(timer_func=ontimer_1, period=60000, start_delay=0)
context.counter_1 = 0
# 每隔半小时执行ontime_2, 5分钟之后启动
context.timerid_2 = timer(timer_func=ontimer_2, period=30000, start_delay=30000)
print('启动定时器2:', context.now)
context.counter_2 = 0
def ontimer_1(context):
# 定时器执行次数计数
context.counter_1 += 1
# 定时器执行逻辑
print('定时器1:', context.now)
def ontimer_2(context):
# 定时器执行次数计数
context.counter_2 += 1
# 定时器执行逻辑(如查询账户资金)
cash = context.account().cash
print('定时器2:', context.now)
# 按执行次数条件停止定时器
if context.counter_1 >= 5:
ret1 = timer_stop(context.timerid_1)
if ret1:
print("结束1分钟定时器")
if context.counter_2 >= 10:
ret2 = timer_stop(context.timerid_2)
注意:
- 仿真、实盘场景适用,回测模式下不生效
- period 从前一次事件函数开始执行时点起算,若下一次事件函数需要执行时,前一次事件函数没运行完毕,等待上一个事件执行完毕再执行下一个事件。
# 数据订阅
# subscribe - 行情订阅
订阅行情, 可以指定 symbol, 数据滑窗大小, 以及是否需要等待全部代码的数据到齐再触发事件。
函数原型:
subscribe(symbols, frequency='1d', count=1, unsubscribe_previous=False)
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbols | str or list | 订阅标的代码, 支持字串格式,如有多个代码, 中间用 , (英文逗号) 隔开, 也支持 ['symbol1', 'symbol2'] 这种列表格式 |
frequency | str | 频率, 支持 'tick', '60s', '300s', '900s' 等, 默认'1d', 详情见股票行情数据和期货行情数据, 实时行情支持的频率 |
count | int | 订阅数据滑窗大小, 默认1 ,详情见数据滑窗 |
unsubscribe_previous | bool | 是否取消过去订阅的 symbols, 默认False 不取消, 输入True 则取消所有原来的订阅。 |
返回值:
None
示例:
subscribe(symbols='SHSE.600000,SHSE.600004', frequency='60s', count=5, unsubscribe_previous=True)
注意:
subscribe 支持多次调用,并可以重复订阅同一代码。订阅后的数据储存在本地,需要通过 context.data 接口调用或是直接在 on_tick 或 on_bar 中获取。
在实时模式下,最新返回的数据是不复权的。
# unsubscribe - 取消订阅
取消行情订阅, 默认取消所有已订阅行情
函数原型:
unsubscribe(symbols='*', frequency='60s')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbols | str or list | 订阅标的代码, 支持字串格式,如有多个代码, 中间用 , (英文逗号) 隔开, 也支持 ['symbol1', 'symbol2'] 这种列表格式 |
frequency | str | 频率, 支持 'tick', '60s', '300s', '900s' 等, 默认'1d', 详情见股票行情数据和期货行情数据, 实时行情支持的频率 |
返回值:
None
示例:
unsubscribe(symbols='SHSE.600000,SHSE.600004', frequency='60s')
注意:
如示例所示代码,取消SHSE.600000,SHSE.600004
两只代码60s
行情的订阅,若SHSE.600000
同时还订阅了"300s"
频度的行情,该代码不会取消该标的此频度的订阅
# 数据事件
数据事件是阻塞回调事件函数,通过 subscribe 函数订阅, 主动推送
# on_tick
- tick 数据推送事件
接收 tick 分笔数据, 通过 subscribe 订阅 tick 行情,行情服务主动推送 tick 数据
函数原型:
on_tick(context, tick)
参数:
参数名 | 类型 | 说明 |
---|---|---|
context | context 对象 | 上下文 |
tick | tick 对象 | 当前被推送的 tick |
示例:
def on_tick(context, tick):
print(tick)
输出:
{'symbol': 'SHSE.600519', 'created_at': datetime.datetime(2020, 9, 2, 14, 7, 23, 620000, tzinfo=tzfile('PRC')), 'price': 1798.8800048828125, 'open': 1825.0, 'high': 1828.0, 'low': 1770.0, 'cum_volume': 2651191, 'cum_amount': 4760586491.0, 'cum_position': 0, 'last_amount': 179888.0, 'last_volume': 100, 'trade_type': 0, 'receive_local_time': 1602751345.262745}
# on_bar
- bar 数据推送事件
接收固定周期 bar 数据, 通过 subscribe 订阅 bar 行情,行情服务主动推送 bar 数据
函数原型:
on_bar(context, bars)
参数:
参数名 | 类型 | 说明 |
---|---|---|
context | context 对象 | 上下文对象 |
bars | list(bar | 当前被推送的 bar 列表 |
示例:
def on_bar(context, bars):
for bar in bars:
print(bar)
输出:
{'symbol': 'SHSE.600519', 'eob': datetime.datetime(2020, 9, 30, 15, 15, 1, tzinfo=tzfile('PRC')), 'bob': datetime.datetime(2020, 9, 30, 0, 0, tzinfo=tzfile('PRC')), 'open': 1660.0, 'close': 1668.5, 'high': 1691.9000244140625, 'low': 1660.0, 'volume': 2708781, 'amount': 4536012540.0, 'pre_close': 1652.2999267578125, 'position': 0, 'frequency': '1d', 'receive_local_time': 1602751647.923199}
注意:
1. 若在 subscribe 函数中订阅了多个标的的 bar,但 wait_group 参数值为 False,则多次触发 On_bar,每次返回只包含单个标的 list 长度为 1 的 bars;若参数值为 True,则只会触发一次 On_bar,返回包含多个标的的 bars。
2. bar 在本周期结束时间后才会推送,标的在这个周期内无交易则不推送 bar。
# on_l2transaction
- 逐笔成交事件
接收逐笔成交数据(L2 行情时有效) 仅特定券商版本可用 函数原型:
on_l2transaction(context, transaction)
参数:
参数名 | 类型 | 说明 |
---|---|---|
context | context 对象 | 上下文对象 |
transaction | L2Transaction 对象 | 收到的逐笔成交行情 |
示例:
def on_l2transaction(context, transaction):
print(transaction)
输出:
{'symbol': 'SZSE.300003', 'volume': 300, 'created_at': datetime.datetime(2020, 11, 24, 9, 38, 16, 50, tzinfo=tzfile('PRC')), 'exec_type': '4', 'side': '', 'price': 0.0}
# on_l2order
- 逐笔委托事件
接收逐笔委托数据(深交所 L2 行情时有效) 仅特定券商版本可用 函数原型:
on_l2order(context, l2order)
参数:
参数名 | 类型 | 说明 |
---|---|---|
context | context 对象 | 上下文对象 |
l2order | L2Order 对象 | 收到的逐笔委托行情 |
示例:
def on_l2order(context, l2order):
print(l2order)
输出:
{'symbol': 'SZSE.300003', 'side': '1', 'price': 29.350000381469727, 'volume': 2400, 'created_at': datetime.datetime(2020, 11, 24, 9, 38, 16, 80, tzinfo=tzfile('PRC')), 'order_type': '2'}
# 数据查询函数
# current - 查询当前行情快照
查询当前行情快照,返回 tick 数据。实时模式,返回当前最新 tick 数据,回测模式,返回回测当前时间点的最近一分钟的收盘价
函数原型:
current(symbols, fields='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbols | str or list | 查询代码,如有多个代码, 中间用 , (英文逗号) 隔开, 也支持 ['symbol1', 'symbol2'] 这种列表格式 ,使用参考symbol |
fields | str | 查询字段, 默认所有字段 具体字段见:Tick 对象 |
返回值: list[dict]
示例:
current_data = current(symbols='SZSE.000001')
输出:
[{'symbol': 'SZSE.000001', 'open': 16.200000762939453, 'high': 16.920000076293945, 'low': 16.149999618530273, 'price': 16.559999465942383, 'quotes': [{'bid_p': 16.549999237060547, 'bid_v': 209200, 'ask_p': 16.559999465942383, 'ask_v': 296455}, {'bid_p': 16.540000915527344, 'bid_v': 188900, 'ask_p': 16.56999969482422, 'ask_v': 374405}, {'bid_p': 16.530000686645508, 'bid_v': 44900, 'ask_p': 16.579999923706055, 'ask_v': 187220}, {'bid_p': 16.520000457763672, 'bid_v': 20800, 'ask_p': 16.59000015258789, 'ask_v': 102622}, {'bid_p': 16.510000228881836, 'bid_v': 37700, 'ask_p': 16.600000381469727, 'ask_v': 337002}], 'cum_volume': 160006232, 'cum_amount': 2654379585.66, 'last_amount': 14153832.0, 'last_volume': 854700, 'trade_type': 7, 'created_at': datetime.datetime(2020, 10, 15, 15, 0, 3, tzinfo=tzfile('PRC'))}]
注意:
1. 若输入包含无效标的代码,则返回的列表只包含有效标的代码对应的dict
2. 若输入代码正确,但查询字段中包括错误字段,返回的列表仍包含对应数量的dict
,但每个dict
中除有效字段外,其他字段的值均为空字符串/0
3. 回测只返回 symbol、price 和 created_at 字段,实时模式返回全部字段
4. 实时模式无法获取集合竞价的数据,可使用 history_n
# history - 查询历史行情
函数原型:
history(symbol, frequency, start_time, end_time, fields=None, skip_suspended=True,
fill_missing=None, adjust=ADJUST_NONE, adjust_end_time='', df=True)
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str or list | 标的代码, 如有多个代码, 中间用 , (英文逗号) 隔开, 也支持 ['symbol1', 'symbol2'] 这种列表格式 ,使用参考symbol |
frequency | str | 频率, 支持 'tick', '1d', '60s' 等, 默认 '1d', 详情见股票行情数据和期货行情数据, 实时行情支持的频率 |
start_time | str or datetime.datetime | 开始时间 (%Y-%m-%d %H:%M:%S 格式), 也支持 datetime.datetime 格式 |
end_time | str or datetime.datetime | 结束时间 (%Y-%m-%d %H:%M:%S 格式), 也支持 datetime.datetime 格式 |
fields | str | 指定返回对象字段, 如有多个字段, 中间用, 隔开, 默认所有, 具体字段见:tick 对象 和 bar 对象 |
skip_suspended | bool | 是否跳过停牌, 默认跳过 |
fill_missing | str or None | 填充方式, None - 不填充, 'NaN' - 用空值填充, 'Last' - 用上一个值填充, 默认 None |
adjust | int | ADJUST_NONE or 0: 不复权 , ADJUST_PREV or 1: 前复权 , ADJUST_POST or 2: 后复权 默认不复权 , 目前只支持股票 |
adjust_end_time | str | 复权基点时间, 默认当前时间 |
df | bool | 是否返回 dataframe 格式, 默认 False , 返回 list[dict] |
当 df = True 时, 返回
类型 | 说明 |
---|---|
dataframe | tick 的 dataframe 或者 bar 的 dataframe |
示例:
history_data = history(symbol='SHSE.000300', frequency='1d', start_time='2010-07-28', end_time='2017-07-30', fields='open, close, low, high, eob', adjust=ADJUST_PREV, df= True)
输出:
open close low high eob
0 2796.4829 2863.7241 2784.1550 2866.4041 2010-07-28 00:00:00+08:00
1 2866.7720 2877.9761 2851.9961 2888.5991 2010-07-29 00:00:00+08:00
2 2871.4810 2868.8459 2844.6819 2876.1360 2010-07-30 00:00:00+08:00
3 2868.2791 2917.2749 2867.4500 2922.6121 2010-08-02 00:00:00+08:00
4 2925.2539 2865.9709 2865.7610 2929.6140 2010-08-03 00:00:00+08:00
当 df = False 时, 返回
类型 | 说明 |
---|---|
list | tick 列表 或者 bar 列表 |
注意:
history_data = history(symbol='SHSE.000300', frequency='1d', start_time='2017-07-30', end_time='2017-07-31', fields='open, close, low, high, eob', adjust=ADJUST_PREV, df=False)
输出:
[{'open': 3722.42822265625, 'close': 3737.873291015625, 'low': 3713.655029296875, 'high': 3746.520751953125, 'eob': datetime.datetime(2017, 7, 31, 0, 0, tzinfo=tzfile('PRC'))}]
1. 返回的list/DataFrame
是以参数eob/bob
的升序来排序的,若要获取多标的的数据,通常需进一步的数据处理来分别提取出每只标的的历史数据
2. start_time 和 end_time 中月,日,时,分,秒均可以只输入个位数,例:'2010-7-8 9:40:0'
或'2017-7-30 12:3:0'
,但若对应位置为零,则0
不可被省略,如不可输入'2017-7-30 12:3: '
获取数据目前采用前后闭区间的方式,即会获取前后两个时间节点的数据,使用时务必注意这点
3. 若输入无效标的代码,返回空列表/空DataFrame
4. 若输入代码正确,但查询字段包含无效字段,返回的列表、DataFrame 只包含eob、symbol
和输入的其他有效字段
5. skip_suspended 和 fill_missing 参数暂不支持
6. 单次返回数据量最大返回 33000, 超出部分不返回
7. start_time 和 end_time 输入不存在日期时,会报错 details = "failed to parse datetime"
# history_n
- 查询历史行情最新 n 条
函数原型:
history_n(symbol, frequency, count, end_time=None, fields=None, skip_suspended=True,
fill_missing=None, adjust=ADJUST_NONE, adjust_end_time='', df=False)
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码(只允许单个标的的代码字符串),使用时参考symbol |
frequency | str | 频率, 支持 'tick', '1d', '60s' 等, 默认 '1d', 详情见股票行情数据和期货行情数据, 实时行情支持的频率 |
count | int | 数量(正整数) |
end_time | str or datetime.datetime | 结束时间 (%Y-%m-%d %H:%M:%S 格式), 也支持 datetime.datetime 格式,默认 None 时,用了实际当前时间,非回测当前时间 |
fields | str | 指定返回对象字段, 如有多个字段, 中间用, 隔开, 默认所有, 具体字段见:tick 对象 和 bar 对象 |
skip_suspended | bool | 是否跳过停牌, 默认跳过 |
fill_missing | str or None | 填充方式, None - 不填充, 'NaN' - 用空值填充, 'Last' - 用上一个值填充, 默认 None |
adjust | int | ADJUST_NONE or 0: 不复权 , ADJUST_PREV or 1: 前复权 , ADJUST_POST or 2: 后复权 默认不复权 , 目前只支持股票 |
adjust_end_time | str | 复权基点时间, 默认当前时间 |
df | bool | 是否返回 dataframe 格式, 默认 False, 返回 list[dict] |
当 df = True 时,返回
类型 | 说明 |
---|---|
dataframe | tick 的 dataframe 或者 bar 的 dataframe |
示例:
history_n_data = history_n(symbol='SHSE.600519', frequency='1d', count=100, end_time='2020-10-20 15:30:00', fields='symbol, open, close, low, high, eob', adjust=ADJUST_PREV, df=True)
输出:
symbol open ... high eob
0 SHSE.600519 1350.2278 ... 1350.3265 2020-05-22 00:00:00+08:00
1 SHSE.600519 1314.6434 ... 1350.8010 2020-05-25 00:00:00+08:00
2 SHSE.600519 1354.0629 ... 1354.1321 2020-05-26 00:00:00+08:00
3 SHSE.600519 1343.3086 ... 1344.2970 2020-05-27 00:00:00+08:00
4 SHSE.600519 1322.5214 ... 1331.3878 2020-05-28 00:00:00+08:00
当 df = False 时, 返回
类型 | 说明 |
---|---|
list | tick 列表 或者 bar 列表 |
示例:
history_n_data = history_n(symbol='SHSE.600519', frequency='1d', count=2, end_time='2020-10-20 15:30:00', fields='symbol, open, close, low, high, eob', adjust=ADJUST_PREV, df=False)
输出:
[{'symbol': 'SHSE.600519', 'open': 1725.0, 'close': 1699.0, 'low': 1691.9000244140625, 'high': 1733.97998046875, 'eob': datetime.datetime(2020, 10, 19, 0, 0, tzinfo=tzfile('PRC'))}, {'symbol': 'SHSE.600519', 'open': 1699.989990234375, 'close': 1734.0, 'low': 1695.0, 'high': 1734.969970703125, 'eob': datetime.datetime(2020, 10, 20, 0, 0, tzinfo=tzfile('PRC'))}]
注意:
1. 返回的list/DataFrame
是以参数eob/bob
的升序来排序的
2. 若输入无效标的代码,返回空列表/空DataFrame
3. 若输入代码正确,但查询字段包含无效字段,返回的列表、DataFrame 只包含eob、symbol
和输入的其他有效字段
4. end_time 中月,日,时,分,秒均可以只输入个位数,例:'2017-7-30 20:0:20'
,但若对应位置为零,则0
不可被省略,如不可输入'2017-7-30 20: :20'
5. skip_suspended 和 fill_missing 参数暂不支持
6. 单次返回数据量最大返回 33000, 超出部分不返回
7. end_time 输入不存在日期时,会报错 details = "Can't parse string as time: 2020-10-40 15:30:00"
# context.data - 查询订阅数据
函数原型:
context.data(symbol, frequency, count)
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码(只允许单个标的的代码字符串),使用时参考symbol |
frequency | str | 频率, 支持 'tick', '1d', '60s' 等, 默认 '1d', 详情见股票行情数据和期货行情数据, 实时行情支持的频率 |
count | int | 滑窗大小(正整数),需小于等于 subscribe 函数中 count 值 |
fields | str | 指定返回对象字段, 如有多个字段, 中间用, 隔开, 默认所有, 具体字段见:tick 对象 和 bar 对象 |
类型 | 说明 |
---|---|
dataframe | tick 的 dataframe 或者 bar 的 dataframe |
示例:
def init(context):
subscribe(symbols='SHSE.600519', frequency='60s', count=2)
def on_bar(context,bars):
data = context.data(symbol='SHSE.600519', frequency='60s', count=1)
输出:
symbol eob bob open close high low amount pre_close position frequency volume
0 SHSE.600519 2020-12-21 09:31:00+08:00 2020-12-21 09:30:00+08:00 1840 1845.5 1845.5 1838.199951 210503484 0 0 60s 114365
注意:
1. 只有在订阅后,此接口才能取到数据,如未订阅数据,则返回值为空。 2. symbols 参数只支持输入一个标的。 3. count 参数必须小于或等于订阅函数里面的 count 值
# get_history_l2ticks
- 查询历史 L2 Tick 行情
仅特定券商版本可用
函数原型:
get_history_l2ticks(symbols, start_time, end_time, fields=None,skip_suspended=True, fill_missing=None,adjust=ADJUST_NONE, adjust_end_time='', df=False)
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbols | str | 标的代码,使用时参考symbol |
start_time | str | 开始时间 (%Y-%m-%d %H:%M:%S 格式) |
end_time | str | 结束时间 (%Y-%m-%d %H:%M:%S 格式) |
fields | str | 指定返回对象字段, 如有多个字段, 中间用, 隔开, 默认所有 |
skip_suspended | bool | 是否跳过停牌, 默认跳过 |
fill_missing | str or None | 填充方式, None - 不填充, 'NaN' - 用空值填充, 'Last' - 用上一个值填充, 默认 None |
adjust | int | ADJUST_NONE or 0: 不复权 , ADJUST_PREV or 1: 前复权 , ADJUST_POST or 2: 后复权 默认不复权 |
adjust_end_time | str | 复权基点时间, 默认当前时间 |
df | bool | 是否返回 dataframe 格式, 默认 False |
返回值:参考Tick 对象
当 df = True 时, 返回dataframe
当 df = Falst, 返回list
示例:
history_l2tick=get_history_l2ticks('SHSE.600519', '2020-11-23 14:00:00', '2020-11-23 15:00:00', fields=None,
skip_suspended=True, fill_missing=None,
adjust=ADJUST_NONE, adjust_end_time='', df=False)
print(history_l2tick[0])
输出:
{'symbol': 'SHSE.600519', 'open': 1771.010009765625, 'high': 1809.9000244140625, 'low': 1771.010009765625, 'price': 1791.0999755859375, 'quotes': [{'bid_p': 1790.8800048828125, 'bid_v': 100, 'ask_p': 1794.760009765625, 'ask_v': 200}, {'bid_p': 1790.80004882812
5, 'bid_v': 123, 'ask_p': 1794.800048828125, 'ask_v': 100}, {'bid_p': 1790.699951171875, 'bid_v': 100, 'ask_p': 1794.8800048828125, 'ask_v': 416}, {'bid_p': 1790.68994140625, 'bid_v': 200, 'ask_p': 1794.8900146484375, 'ask_v': 300}, {'bid_p': 1790.630004882812
5, 'bid_v': 300, 'ask_p': 1794.9000244140625, 'ask_v': 1000}, {'bid_p': 1790.6199951171875, 'bid_v': 500, 'ask_p': 1794.949951171875, 'ask_v': 300}, {'bid_p': 1790.6099853515625, 'bid_v': 300, 'ask_p': 1794.9599609375, 'ask_v': 300}, {'bid_p': 1790.59997558593
75, 'bid_v': 200, 'ask_p': 1794.97998046875, 'ask_v': 100}, {'bid_p': 1790.510009765625, 'bid_v': 314, 'ask_p': 1794.989990234375, 'ask_v': 200}, {'bid_p': 1790.5, 'bid_v': 4200, 'ask_p': 1795.0, 'ask_v': 9700}], 'cum_volume': 5866796, 'cum_amount': 1049949547
1.0, 'last_amount': 1973854.0, 'last_volume': 1100, 'created_at': datetime.datetime(2020, 11, 23, 14, 0, 2, tzinfo=tzfile('PRC')), 'cum_position': 0, 'trade_type': 0}
注意: 1. get_history_l2ticks
接口每次只能提取一天的数据, 如果取数时间超过一天,则返回按照结束时间的最近有一个交易日数据, 如果取数时间段超过 1 个自然月(31)天,则获取不到数据
# get_history_l2bars
- 查询历史 L2 Bar 行情
仅特定券商版本可用
函数原型:
get_history_l2bars(symbols, frequency, start_time, end_time, fields=None,skip_suspended=True, fill_missing=None,adjust=ADJUST_NONE, adjust_end_time='', df=False)
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbols | str | 标的代码,使用时参考symbol |
frequency | str | 频率, 支持 '1d', '60s'等 |
start_time | str | 开始时间 (%Y-%m-%d %H:%M:%S 格式) |
end_time | str | 结束时间 (%Y-%m-%d %H:%M:%S 格式) |
fields | str | 指定返回对象字段, 如有多个字段, 中间用, 隔开, 默认所有 |
skip_suspended | bool | 是否跳过停牌, 默认跳过 |
fill_missing | str or None | 填充方式, None - 不填充, 'NaN' - 用空值填充, 'Last' - 用上一个值填充, 默认 None |
adjust | int | ADJUST_NONE or 0: 不复权 , ADJUST_PREV or 1: 前复权 , ADJUST_POST or 2: 后复权 默认不复权 |
adjust_end_time | str | 复权基点时间, 默认当前时间 |
df | bool | 是否返回 dataframe 格式, 默认 False |
返回值:参考Bar 对象。
当 df = True 时, 返回dataframe
当 df = Falst, 返回list
示例:
history_l2bar=get_history_l2bars('SHSE.600000', '60s', '2020-11-23 14:00:00', '2020-11-23 15:00:00', fields=None,
skip_suspended=True, fill_missing=None,
adjust=ADJUST_NONE, adjust_end_time='', df=False)
print(history_l2bar[0])
输出:
{'symbol': 'SHSE.600000', 'frequency': '60s', 'open': 9.90999984741211, 'high': 9.90999984741211, 'low': 9.890000343322754, 'close': 9.899999618530273, 'volume': 1270526, 'amount': 12574276.0, 'bob': datetime.datetime(2020, 11, 23, 14, 0, tzinfo=tzfile('PRC'))
, 'eob': datetime.datetime(2020, 11, 23, 14, 1, tzinfo=tzfile('PRC')), 'position': 0, 'pre_close': 0.0}
注意: 1. get_history_l2bars
接口每次最多可提取 1 个自然月(31)天的数据如:2015.1.1-2015.1.31
错误设置:(2015.1.1-2015.2.1)超出 31 天则获取不到任何数据
# get_history_l2transactions
- 查询历史 L2 逐笔成交
仅特定券商版本可用
函数原型:
get_history_l2transactions(symbols, start_time, end_time, fields=None, df=False)
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbols | str | 标的代码,使用时参考symbol |
start_time | str | 开始时间 (%Y-%m-%d %H:%M:%S 格式) |
end_time | str | 结束时间 (%Y-%m-%d %H:%M:%S 格式) |
fields | str | 指定返回对象字段, 如有多个字段, 中间用, 隔开, 默认所有 |
df | bool | 是否返回 dataframe 格式, 默认 False |
返回值:参考level2 逐笔成交数据
当 df = True 时, 返回dataframe
当 df = Falst, 返回list
示例:
history_transactions=get_history_l2transactions('SHSE.600000', '2020-11-23 14:00:00', '2020-11-23 15:00:00', fields=None, df=False)
print(history_transactions[0])
输出:
{'symbol': 'SHSE.600000', 'side': 'B', 'price': 9.90999984741211, 'volume': 100, 'created_at': datetime.datetime(2020, 11, 23, 14, 0, 0, 820000, tzinfo=tzfile('PRC')), 'exec_type': ''}
注意: 1. get_history_l2transactions
接口每次只能提取一天的数据, 如果取数时间超过一天,则返回按照开始时间的最近有一个交易日数据
# get_history_l2orders
- 查询历史 L2 逐笔委托
仅特定券商版本可用 注意: 仅深市标的可用
函数原型:
get_history_l2orders(symbols, start_time, end_time, fields=None, df=False)
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbols | str | 标的代码,使用时参考symbol |
start_time | str | 开始时间 (%Y-%m-%d %H:%M:%S 格式) |
end_time | str | 结束时间 (%Y-%m-%d %H:%M:%S 格式) |
fields | str | 指定返回对象字段, 如有多个字段, 中间用, 隔开, 默认所有 |
df | bool | 是否返回 dataframe 格式, 默认 False |
返回值:参考level2 逐笔委托数据
当 df = True 时, 返回dataframe
当 df = Falst, 返回list
示例:
history_order=get_history_l2orders('SZSE.000001', '2020-11-23 14:00:00', '2020-11-23 15:00:00', fields=None, df=False)
print(history_order[0])
输出:
{'symbol': 'SZSE.000001', 'side': '1', 'price': 19.520000457763672, 'volume': 200, 'created_at': datetime.datetime(2020, 11, 23, 14, 0, 0, 110000, tzinfo=tzfile('PRC')), 'order_type': '2'}
注意: 1. get_history_l2orders
接口每次只能提取一天的数据, 如果取数时间超过一天,则返回按照开始时间的最近有一个交易日数据
# get_history_l2orders_queue
- 查询历史 L2 委托队列
仅特定券商版本可用
函数原型:
get_history_l2orders_queue(symbols, start_time, end_time, fields=None, df=False)
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbols | str | 标的代码,使用时参考symbol |
start_time | str | 开始时间 (%Y-%m-%d %H:%M:%S 格式) |
end_time | str | 结束时间 (%Y-%m-%d %H:%M:%S 格式) |
fields | str | 指定返回对象字段, 如有多个字段, 中间用, 隔开, 默认所有 |
df | bool | 是否返回 dataframe 格式, 默认 False |
返回值:参考 level2 委托队列据
当 df = True 时, 返回dataframe
当 df = Falst, 返回list
示例:
history_order_queue=get_history_l2orders_queue('SHSE.600000', '2020-11-23 14:00:00', '2020-11-23 15:00:00', fields=None, df=False)
print(history_order_queue[0])
输出:
{'symbol': 'SHSE.600000', 'price': 9.90999984741211, 'total_orders': 155, 'queue_orders': 50, 'queue_volumes': [52452, 600, 1200, 3200, 10000, 1800, 1000, 300, 10000, 2000, 500, 500, 2000, 1000, 2000, 300, 1200, 1400, 1000, 200, 1000, 100, 500, 1000, 500, 2380
0, 25400, 1000, 2000, 200, 500, 1200, 5000, 2000, 17600, 5000, 1000, 1300, 1000, 1200, 1000, 3000, 1000, 1000, 15000, 400, 15000, 5000, 2000, 10000], 'created_at': datetime.datetime(2020, 11, 23, 14, 0, 1, tzinfo=tzfile('PRC')), 'side': '', 'volume': 0}
注意: 1. get_history_l2orders_queue
接口每次只能提取一天的数据, 如果取数时间超过一天,则返回按照开始时间的最近有一个交易日数据
# 老版本数据函数
以下接口在终端版本号大于 3.17.0.0 的版本不再维护,请切换到新的通用接口
# get_fundamentals
- 查询基本面数据
函数原型:
get_fundamentals(table, symbols, start_date, end_date, fields=None, filter=None, order_by=None, limit=1000, df=False)
参数:
参数名 | 类型 | 说明 |
---|---|---|
table | str | 表名,只支持单表查询. 具体表名及 fields 字段名及 filter 可过滤的字段参考 财务数据文档 |
symbols | str or list | 标的代码, 多个代码可用 , (英文逗号)分割, 也支持 ['symbol1', 'symbol2'] 这种列表格式,使用时参考symbol ,免费版本只支持单个标的,多标的只返回第一个 |
start_date | str | 开始时间, (%Y-%m-%d 格式) |
end_date | str | 结束时间, (%Y-%m-%d 格式) |
fields | str | 查询字段 (必填) |
filter | str | 查询过滤,使用方法参考例 3. 例 4 |
order_by | str or None | 排序方式, 默认 None . TCLOSE 表示按 TCLOSE 升序排序. -TCLOSE 表示按 TCLOSE 降序排序. TCLOSE, -NEGOTIABLEMV 表示按 TCLOSE 升序, NEGOTIABLEMV 降序综合排序 |
limit | int | 数量. 默认是1000 , 为保护服务器, 单次查询最多返回 40000 条记录 |
df | bool | 是否返回 dataframe 格式, 默认 False, 返回 list[dict] |
返回值:
key | value 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
pub_date | datetime.datetime | 公司发布财报的日期. |
end_date | datetime.datetime | 财报统计的季度的最后一天. |
fields | dict | 相应指定查询 fields 字段的值. 字典 key 值请参考 财务数据文档 |
示例:
例 1: 取股票代码 SHSE.600000, SZSE.000001
, 离 2017-01-01
最近一个交易日的 股票交易财务衍生表 的 TCLOSE,NEGOTIABLEMV,TOTMKTCAP,TURNRATE,PELFY,PETTM,PEMRQ,PELFYNPAAEI,PETTMNPAAEI
字段的值
get_fundamentals(table='trading_derivative_indicator', symbols='SHSE.600000, SZSE.000001', start_date='2017-01-01', end_date='2017-01-01', fields='TCLOSE,NEGOTIABLEMV,TOTMKTCAP,TURNRATE,PELFY,PETTM,PEMRQ,PELFYNPAAEI,PETTMNPAAEI', df=True)
输出:
symbol pub_date end_date NEGOTIABLEMV PEMRQ PELFYNPAAEI PETTMNPAAEI PELFY TURNRATE PETTM TOTMKTCAP TCLOSE
SHSE.600000 2016-12-30 00:00:00 2016-12-30 00:00:00 3.3261e+11 6.4605 7.0707 6.6184 6.925 0.0598 6.4746 3.50432e+11 16.21
SZSE.000001 2016-12-30 00:00:00 2016-12-30 00:00:00 1.33144e+11 6.2604 7.1341 6.2644 7.1462 0.2068 6.8399 1.56251e+11 9.1
例 2: 取股票代码 SHSE.600000, SZSE.000001
, 指定时间段 2016-01-01 -- 2017-01-01
股票交易财务衍生表 的 TCLOSE,NEGOTIABLEMV,TOTMKTCAP,TURNRATE,PELFY,PETTM,PEMRQ,PELFYNPAAEI,PETTMNPAAEI
字段的值
get_fundamentals(table='trading_derivative_indicator', symbols='SHSE.600000, SZSE.000001', start_date='2016-01-01', end_date='2017-01-01',
fields='TCLOSE,NEGOTIABLEMV,TOTMKTCAP,TURNRATE,PELFY,PETTM,PEMRQ,PELFYNPAAEI,PETTMNPAAEI', df=True)
例 3: 取指定股票 SHSE.600000, SHSE.600001, SHSE.600002
离 2017-01-01
最近一个交易日, 且满足条件 PCTTM > 0 and PCTTM < 10
股票交易财务衍生表 的 TCLOSE,NEGOTIABLEMV,TOTMKTCAP,TURNRATE,PELFY,PETTM,PEMRQ,PELFYNPAAEI,PETTMNPAAEI
字段的值
get_fundamentals(table='trading_derivative_indicator', symbols='SHSE.600000, SHSE.600001, SHSE.600002', start_date='2017-01-01', end_date='2017-01-01', filter='PCTTM > 0 and PCTTM < 10',
fields='TCLOSE,NEGOTIABLEMV,TOTMKTCAP,TURNRATE,PELFY,PETTM,PEMRQ,PELFYNPAAEI,PETTMNPAAEI', df=True)
# 或者这样写
my_symbols = ['SHSE.600000', 'SHSE.600001', 'SHSE.600002']
get_fundamentals(table='trading_derivative_indicator', start_date='2017-01-01', end_date='2017-01-01', filter='PCTTM > 0 and PCTTM < 10', symbols=my_symbols,
fields='TCLOSE,NEGOTIABLEMV,TOTMKTCAP,TURNRATE,PELFY,PETTM,PEMRQ,PELFYNPAAEI,PETTMNPAAEI', df=True)
例 4: 取指定股票 SHSE.600000, SZSE.000001
离 2016-01-20
最近一个财报, 同时满足条件 CURFDS > 0 and TOTLIABSHAREQUI > 0
的 资产负债 的数据
get_fundamentals(table='balance_sheet', start_date='2016-01-20', end_date='2016-01-20',
fields='CURFDS, SETTRESEDEPO, PLAC, TRADFINASSET, ',
symbols='SHSE.600000, SZSE.000001',
filter='CURFDS > 0 and TOTLIABSHAREQUI > 0',
df=True)
# 或者这样写
my_symbols = ['SHSE.600000', 'SZSE.000001']
get_fundamentals(table='balance_sheet', start_date='2016-01-20', end_date='2016-01-20',
fields='CURFDS, SETTRESEDEPO, PLAC, TRADFINASSET, ',
symbols=my_symbols,
filter='CURFDS > 0 and TOTLIABSHAREQUI > 0',
df=True)
注意:
1. 当 start_date
== end_date
时, 取所举每个股票离 end_date
最近业务日期(交易日期或报告日期) 一条数据,当 start_date
< end_date
时, 取指定时间段的数据,当 start_date
> end_date
时, 返回空list/空DataFrame
2. 当不指定排序方式时,返回的list/DataFrame
以参数pub_date/end_date
来排序
3. start_date 和 end_date 中月,日均可以只输入个位数,例:'2010-7-8'
或'2017-7-30'
4. 若输入包含无效标的代码,则返回的list/DataFrame
只包含有效标的代码对应的数据
5. 在该函数中,table 参数只支持输入一个表名,若表名输入错误或以'table1,table2'
方式输入多个表名,函数返回空list/空DataFrame
6. 若表名输入正确,但查询字段中出现非指定字符串,则程序直接报错
# get_fundamentals_n
- 查询基本面数据最新 n 条
取指定股票的最近 end_date
的 count
条记录
函数原型:
get_fundamentals_n(table, symbols, end_date, fields=None, filter=None, order_by=None, count=1, df=False)
参数:
参数名 | 类型 | 说明 |
---|---|---|
table | str | 表名,只支持单表查询. 具体表名及 fields 字段名及 filter 可过滤的字段参考 财务数据文档 |
symbols | str | 标的代码, 多个代码可用 , (英文逗号)分割, 也支持 ['symbol1', 'symbol2'] 这种列表格式,使用时参考symbol,免费版本只支持单个标的,多标的只返回第一个 |
end_date | str | 结束时间, (%Y-%m-%d 格式) |
fields | str | 查询字段 (必填) |
filter | str | 查询过滤,,使用方法参考get_fundamentals 的例 3. 例 4 |
count | int | 每个股票取最近的数量(正整数) |
df | bool | 是否返回 dataframe 格式, 默认 False, 返回 list[dict] |
返回值:
key | value 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
pub_date | datetime.datetime | 公司发布财报的日期. |
end_date | datetime.datetime | 财报统计的季度的最后一天. |
fields | dict | 相应指定查询 fields 字段的值. 字典 key 值请参考 财务数据文档 |
示例:
例 1: 取股票代码 SHSE.600000, SZSE.000001
, 离 2017-01-01
最近 3 条(每个股票都有 3 条) 股票交易财务衍生表 的 TCLOSE,NEGOTIABLEMV,TOTMKTCAP,TURNRATE,PELFY,PETTM,PEMRQ,PELFYNPAAEI,PETTMNPAAEI
字段的值
get_fundamentals_n(table='trading_derivative_indicator', symbols='SHSE.600000, SZSE.000001', end_date='2017-01-01', count=3, fields='TCLOSE,NEGOTIABLEMV,TOTMKTCAP,TURNRATE,PELFY,PETTM,PEMRQ,PELFYNPAAEI,PETTMNPAAEI',df=True)
输出:
symbol pub_date end_date TCLOSE TOTMKTCAP PETTM TURNRATE PETTMNPAAEI PELFY PELFYNPAAEI NEGOTIABLEMV PEMRQ
SZSE.000001 2016-12-30 00:00:00 2016-12-30 00:00:00 9.1 1.56251e+11 6.8399 0.2068 6.2644 7.1462 7.1341 1.33144e+11 6.2604
SZSE.000001 2016-12-29 00:00:00 2016-12-29 00:00:00 9.08 1.55907e+11 6.8249 0.2315 6.2506 7.1305 7.1184 1.32851e+11 6.2466
SZSE.000001 2016-12-28 00:00:00 2016-12-28 00:00:00 9.06 1.55564e+11 6.8098 0.2297 6.2369 7.1147 7.1027 1.32558e+11 6.2329
SHSE.600000 2016-12-30 00:00:00 2016-12-30 00:00:00 16.21 3.50432e+11 6.4746 0.0598 6.6184 6.925 7.0707 3.3261e+11 6.4605
SHSE.600000 2016-12-29 00:00:00 2016-12-29 00:00:00 16.07 3.47406e+11 6.4187 0.0578 6.5613 6.8652 7.0097 3.29737e+11 6.4047
SHSE.600000 2016-12-28 00:00:00 2016-12-28 00:00:00 16.09 3.47838e+11 6.4267 0.0704 6.5694 6.8737 7.0184 3.30148e+11 6.4126
注意:
1. 对每个标的,返回的list/DataFrame
以参数pub_date/end_date
的倒序来排序
2. end_date 中月,日均可以只输入个位数,例:'2010-7-8'
或'2017-7-30'
3. 若输入包含无效标的代码,则返回的list/DataFrame
只包含有效标的代码对应的数据
4. 在该函数中,table 参数只支持输入一个表名,若表名输入错误或以'table1,table2'
方式输入多个表名,函数返回空list/空DataFrame
5. 若表名输入正确,但查询字段中出现非指定字符串,则程序直接报错
# get_instruments
- 查询最新交易标的信息
查询最新交易标的信息,有基本数据及最新日频数据
函数原型:
get_instruments(symbols=None, exchanges=None, sec_types=None, names=None, skip_suspended=True, skip_st=True, fields=None, df=False)
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbols | str or list or None | 标的代码 多个代码可用 , (英文逗号)分割, 也支持 ['symbol1', 'symbol2'] 这种列表格式,默认 None 表示所有,使用时参考symbol |
exchanges | str or list or None | 见交易所代码, 多个交易所代码可用 , (英文逗号)分割, 也支持 ['exchange1', 'exchange2'] 这种列表格式,默认 None 表示所有 |
sec_types | list | 指定类别, 默认所有, 其他类型见sec_type 类型 |
names | str or None | 查询代码, 默认 None 表示所有 |
skip_suspended | bool | 是否跳过停牌, 默认 True 跳过停牌 |
skip_st | bool | 是否跳过 ST, 默认 True 跳过 ST |
fields | str or None | 查询字段 默认 None 表示所有,参考返回值。 |
df | bool | 是否返回 dataframe 格式, 默认 False, 返回 list[dict] |
返回值:
key | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
sec_type | int | 1: 股票, 2: 基金, 3: 指数, 4: 期货, 5: 期权, 8:可转债,10: 虚拟合约 |
exchange | str | 见交易所代码 |
sec_id | str | 代码 |
sec_name | str | 名称 |
sec_abbr | str | 拼音简称 |
price_tick | float | 最小变动单位 |
listed_date | datetime.datetime | 上市日期 |
delisted_date | datetime.datetime | 退市日期 |
trade_date | datetime.datetime | 交易日期 |
sec_level | int | 1-正常,2-ST 股票,3-*ST 股票,4-股份转让,5-处于退市整理期的证券,6-上市开放基金 LOF,7-交易型开放式指数基金(ETF),8-非交易型开放式基金(暂不交易,仅揭示基金净值及开放申购赎回业务),9-仅提供净值揭示服务的开放式基金;,10-仅在协议交易平台挂牌交易的证券,11-仅在固定收益平台挂牌交易的证券,12-风险警示产品,13-退市整理产品,99-其它 |
is_suspended | int | 是否停牌. 1: 是, 0: 否 |
multiplier | float | 合约乘数 |
margin_ratio | float | 保证金比率 |
settle_price | float | 结算价 |
position | int | 持仓量 |
pre_close | float | 昨收价 |
upper_limit | float | 涨停价 (可转债没有涨停价) |
lower_limit | float | 跌停价 (可转债没有跌停价) |
adj_factor | float | 复权因子.基金跟股票才有 |
conversion_price | float | 可转债转股价 |
conversion_start_date | datetime.datetime | 可转债开始转股时间 |
underlying_symbol | str | 可转债正股标的 |
示例:
get_instruments(exchanges='SZSE', df=True)
输出:
adj_factor is_st upper_limit sec_name pre_close symbol price_tick delisted_date exchange listed_date sec_type settle_price lower_limit multiplier sec_abbr position trade_date sec_id is_suspended margin_ratio
115.338 0 12.38 平安银行 11.25 SZSE.000001 0.01 2038-01-01 00:00:00 SZSE 1991-04-03 00:00:00 1 0 10.13 1 payx 0 2017-09-19 00:00:00 000001 0 1
127.812 0 30.84 万科A 28.04 SZSE.000002 0.01 2038-01-01 00:00:00 SZSE 1991-01-29 00:00:00 1 0 25.24 1 wkA 0 2017-09-19 00:00:00 000002 0 1
7.44538 0 27.24 国农科技 24.76 SZSE.000004 0.01 2038-01-01 00:00:00 SZSE 1991-01-14 00:00:00 1 0 22.28 1 gnkj 0 2017-09-19 00:00:00 000004 0 1
······
注意:
1. 停牌时且股票发生除权除息, 涨停价和跌停价可能有误差
2. 预上市股票以 1900-01-01 为虚拟发布日期,未退市股票以 2038-01-01 为虚拟退市日期。
3. 对于检索所需标的信息的 4 种手段symbols,exchanges,sec_types,names
,若输入参数之间出现任何矛盾(换句话说,所有的参数限制出满足要求的交集为空),则返回
空list/空DataFrame
例如get_instruments(exchanges='SZSE',sec_types=[4])
返回的是空值
4. 获取全 A 股票代码示例get_instruments(exchanges='SZSE,SHSE', sec_types=1, fields='symbol',df=1)['symbol'].tolist()
5. 若查询字段包含无效字段,返回的列表/DataFrame
只包含有效字段数据
6. 关于可转债的到期日(退市日期)为delisted_date
,转股价值为转股价值 = 转股数*股价=(100/可转债转股价)*股价
# get_history_instruments
- 查询交易标的历史信息数据
返回指定 symbols 的标的日频历史数据
函数原型:
get_history_instruments(symbols, fields=None, start_date=None, end_date=None, df=False)
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbols | str or list | 标的代码, 多个代码可用 , (英文逗号)分割,也支持 ['symbol1', 'symbol2'] 这种列表格式, 是必填参数,使用时参考symbol |
fields | str or None | 查询字段. 默认 None 表示所有 |
start_date | str or None | 开始时间. (%Y-%m-%d 格式) 默认 None 表示当前时间 |
end_date | str or None | 结束时间. (%Y-%m-%d 格式) 默认 None 表示当前时间 |
df | bool | 是否返回 dataframe 格式, 默认 False, 返回 list[dict] , 列表每项的 dict 的 key 值为参数指定的 fields |
返回值:
key | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
trade_date | datetime.datetime | 交易日期 |
sec_level | int | 1-正常,2-ST 股票,3-*ST 股票,4-股份转让,5-处于退市整理期的证券,6-上市开放基金 LOF,7-交易型开放式指数基金(ETF),8-非交易型开放式基金(暂不交易,仅揭示基金净值及开放申购赎回业务),9-仅提供净值揭示服务的开放式基金;,10-仅在协议交易平台挂牌交易的证券,11-仅在固定收益平台挂牌交易的证券,12-风险警示产品,13-退市整理产品,99-其它 |
is_suspended | int | 是否停牌. 1: 是, 0: 否 |
multiplier | float | 合约乘数 |
margin_ratio | float | 保证金比率 |
settle_price | float | 结算价 |
pre_settle | float | 昨结价 |
position | int | 持仓量 |
pre_close | float | 昨收价 |
upper_limit | float | 涨停价 (可转债没有涨停价) |
lower_limit | float | 跌停价 (可转债没有跌停价) |
adj_factor | float | 复权因子.基金跟股票才有 |
示例:
get_history_instruments(symbols='SZSE.000001,SZSE.000002', start_date='2017-09-19', end_date='2017-09-19', df=True)
**输出: **
adj_factor is_st settle_price upper_limit symbol pre_close lower_limit is_suspended multiplier position trade_date margin_ratio
115.338 0 0 12.38 SZSE.000001 11.25 10.13 0 1 0 2017-09-19 00:00:00 1
127.812 0 0 30.84 SZSE.000002 28.04 25.24 0 1 0 2017-09-19 00:00:00 1
注意:
1. 停牌时且股票发生除权除息, 涨停价和跌停价可能有误差
2. 为保护服务器, 单次查询最多返回 33000 条记录
3. 对每个标的,数据根据参数trade_date
的升序进行排序
4. start_date 和 end_date 中月,日均可以只输入个位数,例:'2010-7-8'
或'2017-7-30'
5. 若查询字段中出现非指定字符串,则程序直接报错
6. 若输入包含无效标的代码,则返回的list/DataFrame
只包含有效标的代码对应的数据
# get_instrumentinfos
- 查询交易标的基本信息
获取到交易标的基本信息, 与时间无关.
函数原型:
get_instrumentinfos(symbols=None, exchanges=None, sec_types=None, names=None, fields=None, df=False)
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbols | str or list or None | 标的代码 多个代码可用 , (英文逗号)分割, 也支持 ['symbol1', 'symbol2'] 这种列表格式,默认 None 表示所有,使用时参考symbol |
exchanges | str or list or None | 见交易所代码, 多个交易所代码可用 , (英文逗号)分割, 也支持 ['exchange1', 'exchange2'] 这种列表格式,默认 None 表示所有 |
sec_types | list | 指定类别, 默认所有, 其他类型见sec_type 类型 |
names | str or None | 查询代码, 默认 None 表示所有 |
fields | str or None | 查询字段 默认 None 表示所有 |
df | bool | 是否返回 dataframe 格式, 默认 False, 返回字典格式,返回 list[dict] , 列表每项的 dict 的 key 值为参数指定的 fields |
返回值:
key | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
sec_type | int | 1: 股票, 2: 基金, 3: 指数, 4: 期货, 5: 期权, 8:可转债, 10: 虚拟合约 |
exchange | str | 见交易市场代码. |
sec_id | str | 代码 |
sec_name | str | 名称 |
sec_abbr | str | 拼音简称 |
price_tick | float | 最小变动单位 |
listed_date | datetime.datetime | 上市日期 |
delisted_date | datetime.datetime | 退市日期 |
conversion_price | float | 可转债转股价 |
underlying_symbol | str | 可转债正股标的 |
示例:
get_instrumentinfos(symbols=['SHSE.000001','SHSE.000002'],df=True)
**输出: **
sec_name symbol price_tick delisted_date sec_type sec_abbr sec_id listed_date exchange
上证指数 SHSE.000001 0 2038-01-01 00:00:00 3 szzs 000001 1991-07-15 00:00:00 SHSE
A股指数 SHSE.000002 0 2038-01-01 00:00:00 3 Agzs 000002 1992-02-21 00:00:00 SHSE
注意:
1. 对于检索所需标的信息的 4 种手段symbols,exchanges,sec_types,names
,若输入参数之间出现任何矛盾(换句话说,所有的参数限制出满足要求的交集为空),则返回
空list/空DataFrame
例如get_instrumentinfos(exchanges='SZSE',sec_types=[4])
返回的是空值
2. 若查询字段包含无效字段,返回的列表/DataFrame
只包含有效字段数据
# get_constituents
- 查询指数最新成份股
函数原型:
get_constituents(index, fields=None, df=False)
参数:
参数名 | 类型 | 说明 |
---|---|---|
index | str | 指数代码 |
fields | str or None | 若要有返回权重字段, 可以设置为 'symbol, weight' |
df | bool | 是否返回 dataframe 格式, 默认 False, 返回 list[dict] |
返回值:
参数 fields 为 None 时, 返回
list[str]
, 成分股列表参数 fields 指定为
'symbol, weight'
, 返回list[dict]
, dict 包含 key 值:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 股票 symbol |
weight | float | 权重 |
当 df = True 时,返回
类型 | 说明 |
---|---|
dataframe | dataframe |
示例 1:
get_constituents(index='SHSE.000001', fields='symbol, weight', df=True)
**输出: **
symbol weight
SHSE.603966 0.01
SHSE.603960 0.01
···
当 df = False 时,返回
类型 | 说明 |
---|---|
list[dict()] | 列表镶嵌字典 |
示例 2:
get_constituents(index='SHSE.000001', fields='symbol, weight', df=False)
**输出: **
[{'symbol': 'SHSE.603681', 'weight': 0.009999999776482582}, {'symbol': 'SHSE.601518', 'weight': 0.009999999776482582}, {'symbol': 'SHSE.600010', 'weight': 0.12999999523162842}···]
示例 3: 只输出 symbol 列表
get_constituents(index='SHSE.000001')
**输出: **
['SHSE.603966', 'SHSE.603960', 'SHSE.603218',···]
注意:
1. 在该函数中,index 参数只支持输入一个指数代码,若代码输入错误或以'index1,inedx2'
方式输入多个代码,函数返回空list/空DataFrame
# get_history_constituents
- 查询指数成份股的历史数据
函数原型:
get_history_constituents(index, start_date=None, end_date=None)
参数:
参数名 | 类型 | 说明 |
---|---|---|
index | str | 指数代码 |
start_date | str or datetime.datetime or None | 开始时间 (%Y-%m-%d 格式) 默认 None 表示当前日期 |
end_date | str or datetime.datetime or None | 结束时间 (%Y-%m-%d 格式) 默认 None 表示当前日期 |
返回值:
list[constituent]
constituent
为 dict,包含 key 值constituents
和trade_date
:
参数名 | 类型 | 说明 |
---|---|---|
constituents | dict | 股票代码作为 key, 所占权重作为 value 的键值对 |
trade_date | datetime.datetime | 交易日期 |
示例:
get_history_constituents(index='SHSE.000001', start_date='2017-07-10')
**输出: **
constituents trade_date
{'SHSE.600527': 0.009999999776482582, 'SHSE.600461': 0.019999999552965164,···} 2017-07-31 00:00:00
{'SHSE.603966': 0.009999999776482582, 'SHSE.603960': 0.009999999776482582,···} 2017-08-31 00:00:00
···
注意:
1. 函数返回的数据每月发布一次,故返回的数据是月频数据,trade_date
为各月最后一天
2. 在该函数中,index 参数只支持输入一个指数代码,若代码输入错误或以'index1,inedx2'
方式输入多个代码,函数返回空list
3. start_date 和 end_date 中月,日均可以只输入个位数,例:'2010-7-8'
或'2017-7-30'
,但若对应位置为零,则0
不可被省略
# get_continuous_contracts
- 获取主力合约
函数原型: 获取主力合约和次主力合约
get_continuous_contracts(csymbol, start_date=None, end_date=None)
参数:
参数名 | 类型 | 说明 |
---|---|---|
csymbol | str | 查询代码 比如获取主力合约,输入 SHFE.AG;获取连续合约,输入 SHFE.AG00 |
start_date | str | 开始时间 (%Y-%m-%d 格式) |
end_date | str | 结束时间 (%Y-%m-%d 格式) |
返回值:
返回 list[dict]
, dict 包含 key 值:
key | value 类型 | 说明 |
---|---|---|
symbol | str | 真实合约 symbol |
trade_date | datetime.datetime | 交易日期 |
示例:
get_continuous_contracts(csymbol='SHFE.AG', start_date='2017-07-01', end_date='2017-08-01')
**输出: **
[{'symbol': 'SHFE.ag2012', 'trade_date': datetime.datetime(2020, 7, 1, 0, 0, tzinfo=tzfile('PRC'))}, {'symbol': 'SHFE.ag2012', 'trade_date': datetime.datetime(2020, 7, 2, 0, 0, tzinfo=tzfile('PRC'))}, {'symbol': 'SHFE.ag2012', 'trade_date': datetime.datetime(2020, 7, 3, 0, 0, tzinfo=tzfile('PRC'))}, {'symbol': 'SHFE.ag2012', 'trade_date': datetime.datetime(2020, 7, 4, 0, 0, tzinfo=tzfile('PRC'))}, {'symbol': 'SHFE.ag2012', 'trade_date': datetime.datetime(2020, 7, 5, 0, 0, tzinfo=tzfile('PRC'))}, {'symbol': 'SHFE.ag2012', 'trade_date': datetime.datetime(2020, 7, 6, 0, 0, tzinfo=tzfile('PRC'))}, {'symbol': 'SHFE.ag2012', 'trade_date': datetime.datetime(2020, 7, 7, 0, 0, tzinfo=tzfile('PRC'))}, {'symbol': 'SHFE.ag2012', 'trade_date': datetime.datetime(2020, 7, 8, 0, 0, tzinfo=tzfile('PRC'))}, {'symbol': 'SHFE.ag2012', 'trade_date': datetime.datetime(2020, 7, 9, 0, 0, tzinfo=tzfile('PRC'))}, {'symbol': 'SHFE.ag2012', 'trade_date': datetime.datetime(2020, 7, 10, 0, 0, tzinfo=tzfile('PRC'))}]
注意:
1. 在该函数中,csymbol 参数只支持输入一个标的代码,若代码输入错误或以'csymbol1,csymbol2'
方式输入多个代码,函数返回空list
2. start_date
和end_date
中月,日均可以只输入个位数,
例:'2017-7-1'
或'2017-8-1'
# get_industry
- 查询行业股票列表
函数原型:
get_industry(code)
参数:
参数名 | 类型 | 说明 |
---|---|---|
code | str | 行业代码 不区分大小写 |
返回值:
list
返回指定行业的成份股 symbol 列表
示例:
#返回所有以J6开头的行业代码对应的成分股(包括:J66,J67,J68,J69的成分股)
get_industry(code='j6')
**输出: **
['SHSE.600000', 'SHSE.600016', 'SHSE.600030',···]
注意:
1. 在该函数中,code 参数只支持输入一个行业代码,若代码输入错误或以'code1,code2'
方式输入多个代码,函数返回空list
# get_dividend
- 查询分红送配
函数原型:
get_dividend(symbol, start_date, end_date=None)
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码, (必填),使用时参考symbol |
start_date | str | 开始时间 (%Y-%m-%d 格式) |
end_date | str | 结束时间 (%Y-%m-%d 格式) |
df | bool | 是否返回 dataframe 格式, 默认 False, 返回返回list[dividend] ,dividend 为 dict |
返回值:
key | value 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
cash_div | float | 每股派现 |
allotment_ratio | float | 每股配股比例 |
allotment_price | float | 配股价 |
share_div_ratio | float | 每股送股比例 |
share_trans_ratio | float | 每股转增比例 |
created_at | datetime.datetime | 创建时间 |
示例:
get_dividend(symbol='SHSE.600000',start_date='2000-01-01', end_date='2017-12-31', df=True)
**输出: **
share_trans_ratio symbol cash_div allotment_ratio allotment_price share_div_ratio
0 SHSE.600000 0.15 0 0 0
0.5 SHSE.600000 0.2 0 0 0
···
注意:
1. 在该函数中,symbol 参数只支持输入一个标的代码,若代码输入错误或以'symbol1,symbol2'
方式输入多个代码,函数返回空list/空DataFrame
2. start_date
和end_date
中月,日均可以只输入个位数,
例:'2010-7-8'
或'2017-7-30'
# get_trading_dates
- 查询交易日列表
函数原型:
get_trading_dates(exchange, start_date, end_date)
参数:
参数名 | 类型 | 说明 |
---|---|---|
exchange | str | 见交易市场代码 |
start_date | str | 开始时间 (%Y-%m-%d 格式) |
end_date | str | 结束时间 (%Y-%m-%d 格式) |
返回值:
交易日期字符串(%Y-%m-%d 格式)列表,
示例:
get_trading_dates(exchange='SZSE', start_date='2017-01-01', end_date='2017-01-30')
**输出: **
['2017-01-03', '2017-01-04', '2017-01-05', '2017-01-06', ...]
注意:
1. exchange
参数仅支持输入单个交易所代码,若代码错误,返回空list
2. start_date
和end_date
中月,日均可以只输入个位数,
例:'2010-7-8'
或'2017-7-30'
# get_previous_trading_date
- 返回指定日期的上一个交易日
函数原型:
get_previous_trading_date(exchange, date)
参数:
参数名 | 类型 | 说明 |
---|---|---|
exchange | str | 见交易市场代码 |
date | str | 时间 (%Y-%m-%d 格式) |
返回值:
str
返回指定日期的上一个交易日字符串(%Y-%m-%d 格式)
示例:
get_previous_trading_date(exchange='SZSE', date='2017-05-01')
**输出: **
'2017-04-28'
注意:
1. exchange
参数仅支持输入单个交易所代码,若代码错误,返回空list
2. date
中月,日均可以只输入个位数,
例:'2010-7-8'
或'2017-7-30'
# get_next_trading_date
- 返回指定日期的下一个交易日
函数原型:
get_next_trading_date(exchange, date)
参数:
参数名 | 类型 | 说明 |
---|---|---|
exchange | str | 见交易市场代码 |
date | str | 时间 (%Y-%m-%d 格式) |
返回值:
str
返回指定日期的下一个交易日字符串 (%Y-%m-%d 格式)
示例:
get_next_trading_date(exchange='SZSE', date='2017-05-01')
**输出: **
'2017-05-02'
注意:
1. exchange
参数仅支持输入单个交易所代码,若代码错误,返回空list
2. date
中月,日均可以只输入个位数,
例:'2010-7-8'
或'2017-7-30'
# 通用数据函数
python 通用数据 API 包含在 gm3.0.148 版本及以上版本,不需要引入新库
# get_symbol_infos
- 查询标的基本信息
获取指定(范围)交易标的基本信息,与时间无关.
函数原型:
get_symbol_infos(sec_type1, sec_type2=None, exchanges=None, symbols=None, df=False)
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
sec_type1 | int | 证券品种大类 | Y | 无 | 指定一种证券大类,只能输入一个. 证券大类 sec_type1 清单 1010: 股票, 1020: 基金, 1030: 债券 , 1040: 期货, 1050: 期权, 1060: 指数. |
sec_type2 | int | 证券品种细类 | N | None | 指定一种证券细类,只能输入一个. 默认None 表示不区分细类,即证券大类下所有细类. 证券细类见 sec_type2 清单 - 股票 101001:A 股,101002:B 股,101003:存托凭证 - 基金 102001:ETF,102002:LOF,102005:FOF - 债券 103001:可转债,103008:回购 - 期货 104001:股指期货,104003:商品期货,104006:国债期货 - 期权 105001:股票期权,105002:指数期权,105003:商品期权 - 指数 106001:股票指数,106002:基金指数,106003:债券指数,106004:期货指数 |
exchanges | str or list | 交易所代码 | N | None | 输入交易所代码,可输入多个. 采用 str 格式时,多个交易所代码必须用英文逗号分割,如:'SHSE,SZSE' 采用 list 格式时,多个交易所代码示例:['SHSE', 'SZSE'] 默认None 表示所有交易所. 交易所代码清单 SHSE:上海证券交易所,SZSE:深圳证券交易所 , CFFEX:中金所,SHFE:上期所,DCE:大商所, CZCE:郑商所,INE:能源中心 |
symbols | str or list | 标的代码 | N | None | 输入标的代码,可输入多个. 采用 str 格式时,多个标的代码必须用英文逗号分割,如:'SHSE.600008,SZSE.000002' 采用 list 格式时,多个标的代码示例:['SHSE.600008', 'SZSE.000002'] 默认None 表示所有标的. |
df | bool | 返回格式 | N | False | 是否返回 dataframe 格式,默认False 返回字典格式,返回 list[dict] , 列表每项的 dict 的 key 值为 fields 字段. |
返回值:
字段名 | 类型 | 中文名称 | 说明 | 股票字段 | 基金字段 | 债券字段 | 期货字段 | 期权字段 | 指数字段 |
---|---|---|---|---|---|---|---|---|---|
symbol | str | 标的代码 | exchange.sec_id | √ | √ | √ | √ | √ | √ |
sec_type1 | int | 证券品种大类 | 1010: 股票,1020: 基金, 1030: 债券,1040: 期货, 1050: 期权,1060: 指数 | √ | √ | √ | √ | √ | √ |
sec_type2 | int | 证券品种细类 | - 股票 101001:A 股,101002:B 股,101003:存托凭证 - 基金 102001:ETF,102002:LOF,102005:FOF - 债券 103001:可转债,103003:国债,103006:企业债,103008:回购 - 期货 104001:股指期货,104003:商品期货,104006:国债期货 - 期权 105001:股票期权,105002:指数期权,105003:商品期权 - 指数 106001:股票指数,106002:基金指数,106003:债券指数,106004:期货指数 | √ | √ | √ | √ | √ | √ |
board | int | 板块 | A 股 10100101:主板 A 股 10100102:创业板 10100103:科创版 10100104:北交所股票 ETF 10200101:股票 ETF 10200102:债券 ETF 10200103:商品 ETF 10200104:跨境 ETF 10200105:货币 ETF 可转债 10300101:普通可转债 10300102:可交换债券 10300103:可分离式债券 10300104:定向可转债 | √ | √ | √ | 无 | 无 | 无 |
exchange | str | 交易所代码 | SHSE:上海证券交易所, SZSE:深圳证券交易所, CFFEX:中金所, SHFE:上期所, DCE:大商所, CZCE:郑商所, INE:上海国际能源交易中心 | √ | √ | √ | √ | √ | √ |
sec_id | str | 交易所标的代码 | 股票,基金,债券,指数的证券代码; 期货,期权的合约代码 | √ | √ | √ | √ | √ | √ |
sec_name | str | 交易所标的名称 | 股票,基金,债券,指数的证券名称; 期货,期权的合约名称 | √ | √ | √ | √ | √ | √ |
sec_abbr | str | 交易所标的简称 | 拼音或英文简称 | √ | √ | √ | √ | √ | √ |
price_tick | float | 最小变动单位 | 交易标的价格最小变动单位 | √ | √ | √ | √ | √ | √ |
trade_n | int | 交易制度 | 0 表示 T+0,1 表示 T+1,2 表示 T+2 | √ | √ | √ | √ | √ | √ |
listed_date | datetime.datetime | 上市日期 | 证券/指数的上市日、衍生品合约的挂牌日 | √ | √ | √ | √ | √ | √ |
delisted_date | datetime.datetime | 退市日期 | 股票/基金的退市日, 期货/期权的到期日(最后交易日), 可转债的赎回登记日 | √ | √ | √ | √ | √ | √ |
underlying_symbol | str | 标的资产 | 期货/期权的合约标的物 symbol,可转债的正股标的 symbol | 无 | 无 | √ | √ | √ | 无 |
option_type | str | 行权方式 | 期权行权方式,仅期权适用,E:欧式,A:美式 | 无 | 无 | 无 | 无 | √ | 无 |
option_margin_ratio1 | float | 期权保证金计算系数 1 | 计算期权单位保证金的第 1 个系数,仅期权适用 | 无 | 无 | 无 | 无 | √ | 无 |
option_margin_ratio2 | float | 期权保证金计算系数 2 | 计算期权单位保证金的第 2 个系数,仅期权适用 | 无 | 无 | 无 | 无 | √ | 无 |
call_or_put | str | 合约类型 | 期权合约类型,仅期权适用,C:Call(认购或看涨), P:Put(认沽或看跌) | 无 | 无 | 无 | 无 | √ | 无 |
conversion_start_date | datetime.datetime | 可转债开始转股日期 | 可转债初始转股价的执行日期,仅可转债适用 | 无 | 无 | √ | 无 | 无 | 无 |
示例:
get_symbol_infos(sec_type1=1010, symbols='SHSE.600008,SZSE.000002')
输出:
[{'symbol': 'SHSE.600008', 'sec_type1': 1010, 'sec_type2': 101001, 'board': 10100101, 'exchange': 'SHSE', 'sec_id': '600008', 'sec_name': '首创环保', 'sec_abbr': 'SCHB', 'price_tick': 0.01, 'trade_n': 1, 'listed_date': datetime.datetime(2000, 4, 27, 0, 0, tzinfo=tzfile('PRC')), 'delisted_date': datetime.datetime(2038, 1, 1, 0, 0, tzinfo=tzfile('PRC')), 'underlying_symbol': '', 'option_type': '', 'option_margin_ratio1': 0.0, 'option_margin_ratio2': 0.0, 'call_or_put': '', 'conversion_start_date': None},
{'symbol': 'SZSE.000002', 'sec_type1': 1010, 'sec_type2': 101001, 'board': 10100101, 'exchange': 'SZSE', 'sec_id': '000002', 'sec_name': '万科A', 'sec_abbr': 'WKA', 'price_tick': 0.01, 'trade_n': 1, 'listed_date': datetime.datetime(1991, 1, 29, 0, 0, tzinfo=tzfile('PRC')), 'delisted_date': datetime.datetime(2038, 1, 1, 0, 0, tzinfo=tzfile('PRC')), 'underlying_symbol': '', 'option_type': '', 'option_margin_ratio1': 0.0, 'option_margin_ratio2': 0.0, 'call_or_put': '', 'conversion_start_date': None}]
注意:
1. sec_type1
为必填参数,即一次只能查询一个品种的标的基本信息。
2. 查询的标的信息根据参数组合sec_type1, sec_type2, exchanges, symbols
取交集,若输入参数之间出现任何矛盾(换句话说,所有的参数限制出满足要求的交集为空),则返回空list/空DataFrame
,例如get_symbol_infos(sec_type1=1040,exchanges='SZSE')
返回的是空值。
3. 若输入包含无效标的代码symbols
,则返回的list/DataFrame
只包含有效标的代码对应的数据。
4. 参数组合示例:
查询以下范围 symbol 的基本信息 | sec_type1 | sec_type2 | exchanges | symbols |
---|---|---|---|---|
查询指定股票 | 1010 | None | None | 'SHSE.600008,SZSE.000002' |
查询 A 股股票 | 1010 | 101001 | None | None |
查询深交所股票 | 1010 | None | 'SZSE' | None |
查询 ETF | 1020 | 102001 | None | None |
查询上交所 LOF | 1020 | 102002 | 'SHSE' | None |
查询可转债 | 1030 | 103001 | None | None |
查询深交所可转债 | 1030 | 103001 | 'SZSE' | None |
查询股指期货 | 1040 | 104001 | None | None |
查询商品期货 | 1040 | 104003 | None | None |
查询郑商所和大商所期货 | 1040 | None | 'CZCE,DCE' | None |
查询股票期权 | 1050 | 105001 | None | None |
查询上交所股票期权 | 1050 | 105001 | 'SHSE' | None |
查询指数期权 | 1050 | 105002 | None | None |
查询商品期权 | 1050 | 105003 | None | None |
查询上期所商品期权 | 105003 | None | 'SHFE' | None |
查询股票指数 | 1060 | 106001 | None | None |
# get_symbols
- 查询指定交易日多标的交易信息
获取指定交易日多个标的交易信息,包括基本信息及日度数据.
函数原型:
get_symbols(sec_type1, sec_type2=None, exchanges=None, symbols=None, skip_suspended=True, skip_st=True, trade_date=None, df=False)
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
sec_type1 | int | 证券品种大类 | Y | 无 | 指定一种证券大类,只能输入一个. 证券大类 sec_type1 清单 1010: 股票, 1020: 基金, 1030: 债券 , 1040: 期货, 1050: 期权, 1060: 指数. |
sec_type2 | int | 证券品种细类 | N | None | 指定一种证券细类,只能输入一个. 默认None 表示不区分细类,即证券大类下所有细类. 证券细类见 sec_type2 清单 - 股票 101001:A 股,101002:B 股,101003:存托凭证 - 基金 102001:ETF,102002:LOF,102005:FOF - 债券 103001:可转债,103008:回购 - 期货 104001:股指期货,104003:商品期货,104006:国债期货 - 期权 105001:股票期权,105002:指数期权,105003:商品期权 - 指数 106001:股票指数,106002:基金指数,106003:债券指数,106004:期货指数 |
exchanges | str or list | 交易所代码 | N | None | 输入交易所代码,可输入多个. 采用 str 格式时,多个交易所代码必须用英文逗号分割,如:'SHSE,SZSE' 采用 list 格式时,多个交易所代码示例:['SHSE', 'SZSE'] 默认None 表示所有交易所. 交易所代码清单 SHSE:上海证券交易所,SZSE:深圳证券交易所 , CFFEX:中金所,SHFE:上期所,DCE:大商所, CZCE:郑商所,INE:能源中心 |
symbols | str or list | 标的代码 | N | None | 输入标的代码,可输入多个. 采用 str 格式时,多个标的代码必须用英文逗号分割,如:'SHSE.600008,SZSE.000002' 采用 list 格式时,多个标的代码示例:['SHSE.600008', 'SZSE.000002'] 默认None 表示所有标的. |
skip_suspended | bool | 跳过停牌 | N | True | 是否跳过全天停牌,默认True 跳过 |
skip_st | bool | 跳过 ST | N | True | 是否跳过包含 ST 的股票:ST, *ST, SST, S*ST , 默认True 跳过 |
trade_date | str | 交易日期 | N | None | 交易日期,%Y-%m-%d 格式,默认None 为最新交易日 |
df | bool | 返回格式 | N | False | 是否返回 dataframe 格式,默认False 返回字典格式,返回 list[dict] , 列表每项的 dict 的 key 值为 fields 字段. |
返回值:
字段名 | 类型 | 中文名称 | 说明 | 股票字段 | 基金字段 | 债券字段 | 期货字段 | 期权字段 | 指数字段 |
---|---|---|---|---|---|---|---|---|---|
trade_date | datetime.datetime | 交易日期 | 最新交易日的日期 | √ | √ | √ | √ | √ | √ |
symbol | str | 标的代码 | exchange.sec_id | √ | √ | √ | √ | √ | √ |
sec_type1 | int | 证券品种大类 | 1010: 股票,1020: 基金, 1030: 债券,1040: 期货, 1050: 期权,1060: 指数 | √ | √ | √ | √ | √ | √ |
sec_type2 | int | 证券品种细类 | - 股票 101001:A 股,101002:B 股,101003:存托凭证 - 基金 102001:ETF,102002:LOF,102005:FOF - 债券 103001:可转债,103008:回购 - 期货 104001:股指期货,104003:商品期货,104006:国债期货 - 期权 105001:股票期权,105002:指数期权,105003:商品期权 - 指数 106001:股票指数,106002:基金指数,106003:债券指数,106004:期货指数 | √ | √ | √ | √ | √ | √ |
board | int | 板块 | A 股 10100101:主板 A 股 10100102:创业板 10100103:科创版 10100104:北交所股票 ETF 10200101:股票 ETF 10200102:债券 ETF 10200103:商品 ETF 10200104:跨境 ETF 10200105:货币 ETF 可转债 10300101:普通可转债 10300102:可交换债券 10300103:可分离式债券 10300104:定向可转债 | √ | √ | √ | 无 | 无 | 无 |
exchange | str | 交易所代码 | SHSE:上海证券交易所, SZSE:深圳证券交易所, CFFEX:中金所, SHFE:上期所, DCE:大商所, CZCE:郑商所, INE:上海国际能源交易中心 | √ | √ | √ | √ | √ | √ |
sec_id | str | 交易所标的代码 | 股票,基金,债券,指数的证券代码; 期货,期权的合约代码 | √ | √ | √ | √ | √ | √ |
sec_name | str | 交易所标的名称 | 股票,基金,债券,指数的证券名称; 期货,期权的合约名称 | √ | √ | √ | √ | √ | √ |
sec_abbr | str | 交易所标的简称 | 拼音或英文简称 | √ | √ | √ | √ | √ | √ |
price_tick | float | 最小变动单位 | 交易标的价格最小变动单位 | √ | √ | √ | √ | √ | √ |
trade_n | int | 交易制度 | 0 表示 T+0,1 表示 T+1,2 表示 T+2 | √ | √ | √ | √ | √ | √ |
listed_date | datetime.datetime | 上市日期 | 证券/指数的上市日、衍生品合约的挂牌日 | √ | √ | √ | √ | √ | √ |
delisted_date | datetime.datetime | 退市日期 | 股票/基金的退市日, 期货/期权的到期日(最后交易日), 可转债的赎回登记日 | √ | √ | √ | √ | √ | √ |
underlying_symbol | str | 标的资产 | 期货/期权的合约标的物 symbol,可转债的正股标的 symbol | 无 | 无 | √ | √ | √ | 无 |
option_type | str | 行权方式 | 期权行权方式,仅期权适用,E:欧式,A:美式 | 无 | 无 | 无 | 无 | √ | 无 |
option_margin_ratio1 | float | 期权保证金计算系数 1 | 计算期权单位保证金的第 1 个系数,仅期权适用 | 无 | 无 | 无 | 无 | √ | 无 |
option_margin_ratio2 | float | 期权保证金计算系数 2 | 计算期权单位保证金的第 2 个系数,仅期权适用 | 无 | 无 | 无 | 无 | √ | 无 |
call_or_put | str | 合约类型 | 期权合约类型,仅期权适用,C:Call(认购或看涨), P:Put(认沽或看跌) | 无 | 无 | 无 | 无 | √ | 无 |
conversion_start_date | datetime.datetime | 可转债开始转股日期 | 可转债初始转股价的执行日期,仅可转债适用 | 无 | 无 | √ | 无 | 无 | 无 |
is_adjusted | bool | 合约调整 | 是否调整合约,True:是,False:否(调整后会产生新的新的合约名称、新的行权价格、新的合约乘数) | 无 | 无 | 无 | 无 | √ | 无 |
is_suspended | bool | 是否停牌 | 是否停牌,True:是,False:否 | √ | √ | √ | 无 | 无 | 无 |
is_st | bool | 是否 ST | 是否 ST,True: 是 ST 类(含ST, *ST, SST, S*ST ), False: 否 | √ | 无 | 无 | 无 | 无 | 无 |
position | int | 持仓量 | 累计持仓量 | 无 | 无 | 无 | √ | √ | 无 |
settle_price | float | 结算价 | 当日结算价 | 无 | 无 | 无 | √ | √ | 无 |
pre_settle | float | 昨结价 | 昨日结算价 | 无 | 无 | 无 | √ | √ | 无 |
pre_close | float | 昨收价 | 昨日收盘价 | √ | √ | √ | √ | √ | √ |
upper_limit | float | 涨停价 | 当日涨停价,当日有张跌停限制的标的才有 | √ | √ | √ | √ | √ | 无 |
lower_limit | float | 跌停价 | 当日跌停价,当日有涨跌停限制的标的才有 | √ | √ | √ | √ | √ | 无 |
turn_rate | float | 换手率 | 当日换手率(%) | √ | √ | 无 | 无 | 无 | √ |
adj_factor | float | 复权因子 | 当日累计后复权因子 | √ | √ | 无 | 无 | 无 | 无 |
margin_ratio | float | 保证金比例 | 期货最新保证金比例(交易所标准的最新期货保证金) | 无 | 无 | 无 | √ | 无 | 无 |
conversion_price | float | 转股价 | 可转债最新转股价(转股价变动后的最新转股价) | 无 | 无 | √ | 无 | 无 | 无 |
exercise_price | float | 行权价 | 期权最新行权价(期权合约调整后的最新行权价) | 无 | 无 | 无 | 无 | √ | 无 |
multiplier | int | 合约乘数 | 期货和期权合约最新合约乘数(期权合约调整后的最新合约乘数) | 无 | 无 | 无 | √ | √ | 无 |
示例:
get_symbols(sec_type1=1010, symbols='SHSE.600008,SZSE.000002', trade_date='2022-01-13')
输出:
[{'trade_date': datetime.datetime(2022, 1, 13, 0, 0, tzinfo=tzfile('PRC')), 'pre_close': 3.47, 'upper_limit': 3.82, 'lower_limit': 3.12, 'turn_rate': 1.1215, 'adj_factor': 6.5564, 'margin_ratio': 1.0, 'multiplier': 1, 'is_adjusted': False, 'is_suspended': False, 'position': 0, 'settle_price': 0.0, 'pre_settle': 0.0, 'conversion_price': 0.0, 'exercise_price': 0.0, 'is_st': False, 'symbol': 'SHSE.600008', 'sec_type1': 1010, 'sec_type2': 101001, 'board': 10100101, 'exchange': 'SHSE', 'sec_id': '600008', 'sec_name': '首创环保', 'sec_abbr': 'SCHB', 'price_tick': 0.01, 'trade_n': 1, 'listed_date': datetime.datetime(2000, 4, 27, 0, 0, tzinfo=tzfile('PRC')), 'delisted_date': datetime.datetime(2038, 1, 1, 0, 0, tzinfo=tzfile('PRC')), 'underlying_symbol': '', 'option_type': '', 'option_margin_ratio1': 0.0, 'option_margin_ratio2': 0.0, 'call_or_put': '', 'conversion_start_date': None},
{'trade_date': datetime.datetime(2022, 1, 13, 0, 0, tzinfo=tzfile('PRC')), 'pre_close': 22.05, 'upper_limit': 24.26, 'lower_limit': 19.85, 'turn_rate': 0.9394, 'adj_factor': 173.0897, 'margin_ratio': 1.0, 'multiplier': 1, 'is_adjusted': False, 'is_suspended': False, 'position': 0, 'settle_price': 0.0, 'pre_settle': 0.0, 'conversion_price': 0.0, 'exercise_price': 0.0, 'is_st': False, 'symbol': 'SZSE.000002', 'sec_type1': 1010, 'sec_type2': 101001, 'board': 10100101, 'exchange': 'SZSE', 'sec_id': '000002', 'sec_name': '万科A', 'sec_abbr': 'WKA', 'price_tick': 0.01, 'trade_n': 1, 'listed_date': datetime.datetime(1991, 1, 29, 0, 0, tzinfo=tzfile('PRC')), 'delisted_date': datetime.datetime(2038, 1, 1, 0, 0, tzinfo=tzfile('PRC')), 'underlying_symbol': '', 'option_type': '', 'option_margin_ratio1': 0.0, 'option_margin_ratio2': 0.0, 'call_or_put': '', 'conversion_start_date': None}]
注意:
1. sec_type1
为必填参数,即一次只能查询一个品种的标的最新交易日信息。
2. 查询的标的信息根据参数组合sec_type1, sec_type2, exchanges, symbols
取交集,若输入参数之间出现任何矛盾(换句话说,所有的参数限制出满足要求的交集为空),则返回空list/空DataFrame
,例如get_symbols(sec_type1=1040, exchanges='SZSE')
返回的是空值。
3. 若输入包含无效标的代码symbols
,则返回的list/DataFrame
只包含有效标的代码对应的数据。
4. 获取全 A 股票代码示例get_symbols(sec_type1=1010, sec_type2=101001, fields='symbol', df=1)['symbol'].tolist()
5. 可转债的到期日(退市日期)为delisted_date
,转股价值为转股价值 = 转股数*股价 = (100/可转债转股价) * 股价
# get_history_symbol
- 查询指定标的多日交易信息
获取指定标的多个历史交易日的交易信息,包括基本信息及日度数据.
函数原型:
get_history_symbol(symbol=None, start_date=None, end_date=None, df=False)
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
symbol | str | 标的代码 | Y | 无 | 输入标的代码,只能输入一个. |
start_date | str | 开始时间 | N | None | 开始时间日期,%Y-%m-%d 格式,默认None 表示当前时间 |
end_date | str | 结束时间 | N | None | 结束时间日期,%Y-%m-%d 格式,默认None 表示当前时间 |
df | bool | 返回格式 | N | False | 是否返回 dataframe 格式,默认False 返回字典格式,返回 list[dict] , 列表每项的 dict 的 key 值为 fields 字段. |
返回值:
字段名 | 类型 | 中文名称 | 说明 | 股票字段 | 基金字段 | 债券字段 | 期货字段 | 期权字段 | 指数字段 |
---|---|---|---|---|---|---|---|---|---|
trade_date | datetime.datetime | 交易日期 | 最新交易日的日期 | √ | √ | √ | √ | √ | √ |
symbol | str | 标的代码 | exchange.sec_id | √ | √ | √ | √ | √ | √ |
sec_type1 | int | 证券品种大类 | 1010: 股票,1020: 基金, 1030: 债券,1040: 期货, 1050: 期权,1060: 指数 | √ | √ | √ | √ | √ | √ |
sec_type2 | int | 证券品种细类 | - 股票 101001:A 股,101002:B 股,101003:存托凭证 - 基金 102001:ETF,102002:LOF,102005:FOF - 债券 103001:可转债,103008:回购 - 期货 104001:股指期货,104003:商品期货,104006:国债期货 - 期权 105001:股票期权,105002:指数期权,105003:商品期权 - 指数 106001:股票指数,106002:基金指数,106003:债券指数,106004:期货指数 | √ | √ | √ | √ | √ | √ |
board | int | 板块 | A 股 10100101:主板 A 股 10100102:创业板 10100103:科创版 10100104:北交所股票 ETF 10200101:股票 ETF 10200102:债券 ETF 10200103:商品 ETF 10200104:跨境 ETF 10200105:货币 ETF 可转债 10300101:普通可转债 10300102:可交换债券 10300103:可分离式债券 10300104:定向可转债 | √ | √ | √ | 无 | 无 | 无 |
exchange | str | 交易所代码 | SHSE:上海证券交易所, SZSE:深圳证券交易所, CFFEX:中金所, SHFE:上期所, DCE:大商所, CZCE:郑商所, INE:上海国际能源交易中心 | √ | √ | √ | √ | √ | √ |
sec_id | str | 交易所标的代码 | 股票,基金,债券,指数的证券代码; 期货,期权的合约代码 | √ | √ | √ | √ | √ | √ |
sec_name | str | 交易所标的名称 | 股票,基金,债券,指数的证券名称; 期货,期权的合约名称 | √ | √ | √ | √ | √ | √ |
sec_abbr | str | 交易所标的简称 | 拼音或英文简称 | √ | √ | √ | √ | √ | √ |
price_tick | float | 最小变动单位 | 交易标的价格最小变动单位 | √ | √ | √ | √ | √ | √ |
trade_n | int | 交易制度 | 0 表示 T+0,1 表示 T+1,2 表示 T+2 | √ | √ | √ | √ | √ | √ |
listed_date | datetime.datetime | 上市日期 | 证券/指数的上市日、衍生品合约的挂牌日 | √ | √ | √ | √ | √ | √ |
delisted_date | datetime.datetime | 退市日期 | 股票/基金的退市日, 期货/期权的到期日(最后交易日), 可转债的赎回登记日 | √ | √ | √ | √ | √ | √ |
underlying_symbol | str | 标的资产 | 期货/期权的合约标的物 symbol,可转债的正股标的 symbol | 无 | 无 | √ | √ | √ | 无 |
option_type | str | 行权方式 | 期权行权方式,仅期权适用,E:欧式,A:美式 | 无 | 无 | 无 | 无 | √ | 无 |
option_margin_ratio1 | float | 期权保证金计算系数 1 | 计算期权单位保证金的第 1 个系数,仅期权适用 | 无 | 无 | 无 | 无 | √ | 无 |
option_margin_ratio2 | float | 期权保证金计算系数 2 | 计算期权单位保证金的第 2 个系数,仅期权适用 | 无 | 无 | 无 | 无 | √ | 无 |
call_or_put | str | 合约类型 | 期权合约类型,仅期权适用,C:Call(认购或看涨), P:Put(认沽或看跌) | 无 | 无 | 无 | 无 | √ | 无 |
conversion_start_date | datetime.datetime | 可转债开始转股日期 | 可转债初始转股价的执行日期,仅可转债适用 | 无 | 无 | √ | 无 | 无 | 无 |
is_adjusted | bool | 合约调整 | 是否调整合约,True:是,False:否(调整后会产生新的新的合约名称、新的行权价格、新的合约乘数) | 无 | 无 | 无 | 无 | √ | 无 |
is_suspended | bool | 是否停牌 | 是否停牌,True:是,False:否 | √ | √ | √ | 无 | 无 | 无 |
is_st | bool | 是否 ST | 是否 ST,True: 是 ST 类(含ST, *ST, SST, S*ST ), False: 否 | √ | 无 | 无 | 无 | 无 | 无 |
position | int | 持仓量 | 累计持仓量 | 无 | 无 | 无 | √ | √ | 无 |
settle_price | float | 结算价 | 当日结算价 | 无 | 无 | 无 | √ | √ | 无 |
pre_settle | float | 昨结价 | 昨日结算价 | 无 | 无 | 无 | √ | √ | 无 |
pre_close | float | 昨收价 | 昨日收盘价 | √ | √ | √ | √ | √ | √ |
upper_limit | float | 涨停价 | 当日涨停价,当日有张跌停限制的标的才有 | √ | √ | √ | √ | √ | 无 |
lower_limit | float | 跌停价 | 当日跌停价,当日有涨跌停限制的标的才有 | √ | √ | √ | √ | √ | 无 |
turn_rate | float | 换手率 | 当日换手率(%) | √ | √ | 无 | 无 | 无 | √ |
adj_factor | float | 复权因子 | 当日累计后复权因子 | √ | √ | 无 | 无 | 无 | 无 |
margin_ratio | float | 保证金比例 | 期货在指定交易日的交易所保证金比例 | 无 | 无 | 无 | √ | 无 | 无 |
conversion_price | float | 转股价 | 可转债在指定交易日的转股价 | 无 | 无 | √ | 无 | 无 | 无 |
exercise_price | float | 行权价 | 期权在指定交易日的行权价 | 无 | 无 | 无 | 无 | √ | 无 |
multiplier | int | 合约乘数 | 期货/期权合约在指定交易日的合约乘数 | 无 | 无 | 无 | √ | √ | 无 |
示例:
get_history_symbol(symbol='SZSE.000002', start_date='2022-09-01', end_date='2022-09-30', df=True)
输出:
trade_date pre_close ... conversion_start_date
0 2022-09-01 00:00:00+08:00 16.63 ... None
1 2022-09-02 00:00:00+08:00 16.84 ... None
2 2022-09-05 00:00:00+08:00 16.80 ... None
3 2022-09-06 00:00:00+08:00 17.17 ... None
4 2022-09-07 00:00:00+08:00 17.85 ... None
5 2022-09-08 00:00:00+08:00 17.52 ... None
6 2022-09-09 00:00:00+08:00 17.58 ... None
7 2022-09-13 00:00:00+08:00 18.15 ... None
8 2022-09-14 00:00:00+08:00 18.18 ... None
9 2022-09-15 00:00:00+08:00 17.91 ... None
10 2022-09-16 00:00:00+08:00 18.50 ... None
11 2022-09-19 00:00:00+08:00 18.00 ... None
12 2022-09-20 00:00:00+08:00 18.18 ... None
13 2022-09-21 00:00:00+08:00 17.56 ... None
14 2022-09-22 00:00:00+08:00 17.56 ... None
15 2022-09-23 00:00:00+08:00 17.49 ... None
16 2022-09-26 00:00:00+08:00 17.51 ... None
17 2022-09-27 00:00:00+08:00 17.44 ... None
18 2022-09-28 00:00:00+08:00 17.60 ... None
19 2022-09-29 00:00:00+08:00 17.46 ... None
20 2022-09-30 00:00:00+08:00 17.15 ... None
[21 rows x 34 columns]
注意: 1. 若输入包含无效标的代码symbol
,则返回的list/DataFrame
只包含有效标的代码对应的数据。
2. 停牌时且股票发生除权除息,涨停价和跌停价可能有误差。
3. 对每个标的,数据根据trade_date
的升序进行排序。
4. start_date
和end_date
中月份和日期都可以只输入个位数,例:'2010-7-8'或'2017-7-30'
5. 当start_date
大于或者等于 end_date
时, 取指定时间段的数据,当 start_date
> end_date
时, 返回报错
6. 可转债的到期日(退市日期)delisted_date
,转股价值为转股价值 = 转股数*股价 = (100/可转债转股价) * 股价
# get_trading_dates_by_year
- 查询年度交易日历
查询一个交易所的指定年份的交易日历.
函数原型:
get_trading_dates(exchange, start_year, end_year)
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
exchange | str | 交易所代码 | Y | 无 | 只能填写一个交易所代码 交易所代码清单: SHSE:上海证券交易所,SZSE:深圳证券交易所,CFFEX:中金所,SHFE:上期所,DCE:大商所,CZCE:郑商所,INE:上海国际能源交易中心 |
start_year | int | 开始年份 | Y | 无 | 查询交易日历开始年份(含),yyyy 格式 |
end_year | int | 结束年份 | Y | 无 | 查询交易日历结束年份(含),yyyy 格式 |
返回值:dataframe
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
date | str | 自然日期 | 查询年份的自然日日期 |
trade_date | str | 交易日期 | 查询年份的交易日日期,如果所在自然日不是交易日,交易日期为空字符串'' |
next_trade_date | str | 下一交易日 | 交易日对应的下一交易日 |
pre_trade_date | str | 上一交易日 | 交易日对应的上一交易日 |
示例:
get_trading_dates_by_year(exchange='SHSE', start_year=2020, end_year=2023)
输出:
date next_trade_date pre_trade_date trade_date
0 2020-01-01 2020-01-02 2019-12-31
1 2020-01-02 2020-01-03 2019-12-31 2020-01-02
2 2020-01-03 2020-01-06 2020-01-02 2020-01-03
3 2020-01-04 2020-01-06 2020-01-03
4 2020-01-05 2020-01-06 2020-01-03
... ... ... ...
1456 2023-12-27 2023-12-28 2023-12-26 2023-12-27
1457 2023-12-28 2023-12-29 2023-12-27 2023-12-28
1458 2023-12-29 2024-01-02 2023-12-28 2023-12-29
1459 2023-12-30 2024-01-02 2023-12-29
1460 2023-12-31 2024-01-02 2023-12-29
[1461 rows x 4 columns]
注意:
1. exchange
参数仅支持输入单个交易所代码,若代码错误,会报错
2. 开始年份必须不晚于结束年份,否则返回空dataframe
# get_trading_session
- 查询交易时段
查询一个标的所属品种交易时间段.
函数原型:
get_trading_session(symbols, df=False)
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
symbols | str or list | 标的代码 | Y | 无 | 输入标的代码,可输入多个. 采用 str 格式时,多个标的代码必须用英文逗号分割,如:'SHSE.600008,SZSE.000002' 采用 list 格式时,多个标的代码示例:['SHSE.600008', 'SZSE.000002'] . |
df | bool | 返回格式 | N | False | 是否返回 dataframe 格式, 默认False 返回字典格式,返回list[dict] ,列表每项的 dict 的 key 值见返回字段名 |
返回值:
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
symbol | str | 标的代码 | exchange.sec_id |
exchange | str | 交易所代码 | SHSE:上海证券交易所,SZSE:深圳证券交易所,CFFEX:中金所, SHFE:上期所,DCE:大商所,CZCE:郑商所,INE:上海国际能源交易中心 |
time_trading | list[dict] | 连续竞价时段 | HH:MM 格式,按时间顺序排列,如品种存在夜盘,夜盘时段排最前。 如[{'start': '09:30','end': '11:30'}, {'start': '13:00', 'end': '14:57'}] , |
time_callaution | list[dict] | 集合竞价时段 | HH:MM 格式,按时间顺序排列,如品种存在夜盘,夜盘时段排最前。 如[{’start': '09:15', 'end': '09:25'},{'start': '14:57', 'end': '15:00'}] , |
示例:
get_trading_session(symbols='SHFE.au2306', df=False)
输出:
[{'symbol': 'SHFE.AU2306', 'exchange': 'SHFE', 'time_trading': [{'start': '21:00', 'end': '2:30'}, {'start': '9:00', 'end': '10:15'}, {'start': '10:30', 'end': '11:30'}, {'start': '13:30', 'end': '15:00'}], 'time_auction': [{'start': '20:55', 'end': '20:59'}]}]
注意:
1. 如果输入不存在的合约代码 symbol,会报错提示"该合约[symbol]不存在"。
# get_contract_expire_rest_days
- 查询合约到期剩余天数
查询期货合约、期权合约、可转债的到期剩余天数。
函数原型:
get_contract_expire_rest_days(symbols, start_date=None, end_date=None, trade_flag = False, df=False)
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
symbols | str or list | 标的代码 | Y | 无 | 输入标的代码,可输入多个. 采用 str 格式时,多个标的代码必须用英文逗号分割,如:'CFFEX.IF2212,CFFEX.IC2212' 采用 list 格式时,多个标的代码示例:['CFFEX.IF2212', CFFEX.IC2212'] . |
start_date | str or datetime | 开始日期 | N | None | %Y-%m-%d 格式,不早于合约上市日 默认None 表示最新时间. |
end_date | str or datetime | 结束日期 | N | None | %Y-%m-%d 格式,不早于指定的开始日期,否则返回报错 默认None 表示最新时间. |
trade_flag | bool | 交易日 | N | False | 是否需要按交易日计算,默认False 按自然日计算,则返回到期剩余自然日天数; 设置为True 按交易日计算,则返回到期剩余交易日天数 |
df | bool | 返回格式 | N | False | 是否返回 dataframe 格式, 默认False 返回字典格式,返回list[dict] ,列表每项的 dict 的 key 值见返回字段名 |
返回值:
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
date | str | 日期 | [开始日期,结束日期]内的自然日期 |
symbol | str | 合约代码 | exchange.sec_id |
days_to_expire | int | 到期剩余天数 | 合约在指定交易时间至合约到期日的剩余天数. trade_flag=False,计算方法按自然日 trade_flag=True,计算方法按交易日 |
示例:
get_contract_expire_rest_days(symbols='CFFEX.IM2212', start_date='2022-12-12', end_date='2022-12-16', trade_flag = True, df=True)
输出:
date symbol days_to_expire
0 2022-12-12 CFFEX.IM2212 4
1 2022-12-13 CFFEX.IM2212 3
2 2022-12-14 CFFEX.IM2212 2
3 2022-12-15 CFFEX.IM2212 1
4 2022-12-16 CFFEX.IM2212 0
注意:
1. 参数start_date
和end_date
必须是 pd.to_dateime()可识别的字符串 str 格式,例'yyyy-mm-dd', 'yyyy-mm-dd %H:%M:%S',或者是 datetime 对象
2. 在到期日当天,到期剩余天数为 0。正数表示距离到期日的剩余天数,0 表示到期日当天,负数表示距离到期日已经过去的天数。
3. 如果输入不存在的合约代码symbol
,会报错提示"该合约[symbol]不存在"。
4. 如果输入的合约代码symbol
在时间段内的某个日期未上市,在该日期的到期剩余天数返回 NaN。
5. 用于剩余天数计算的到期日是最后交易日。
# 股票与指数数据函数
python 股票与指数数据 API 包含在 gm3.0.148 版本及以上版本
注:*代表增值数据接口,需选择掘金特定版本才可使用,详见版本定义https://www.myquant.cn/version (opens new window)中增值数据包的描述
# stk_get_index_constituents
- 查询指数成分股
查询指定指数在最新交易日的成分股和权重
函数原型:
stk_get_index_constituents(index, trade_date=None)
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
index | str | 指数代码 | Y | 无 | 必填,只能输入一个指数,如:'SHSE.000905' |
trade_date | str | 交易日期 | N | None | 交易日期,%Y-%m-%d 格式, 默认None 为最新交易日 |
返回值:dataframe
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
index | str | 指数代码 | 查询成分股的指数代码 |
symbol | str | 成分股代码 | exchange.sec_id |
weight | float | 成分股权重 | 成分股 symbol 对应的指数权重 |
trade_date | str | 交易日期 | 最新交易日,%Y-%m-%d 格式 |
示例:
stk_get_index_constituents(index='SHSE.000905')
输出:
index symbol weight date
0 SHSE.000905 SZSE.000009 0.0060 2022-09-07
1 SHSE.000905 SZSE.000012 0.0015 2022-09-07
2 SHSE.000905 SZSE.000021 0.0018 2022-09-07
3 SHSE.000905 SZSE.000027 0.0020 2022-09-07
4 SHSE.000905 SZSE.000028 0.0007 2022-09-07
.. ... ... ... ...
495 SHSE.000905 SHSE.688390 0.0032 2022-09-07
496 SHSE.000905 SHSE.688521 0.0020 2022-09-07
497 SHSE.000905 SHSE.688777 0.0035 2022-09-07
498 SHSE.000905 SHSE.688819 0.0008 2022-09-07
499 SHSE.000905 SHSE.689009 0.0025 2022-09-07
[500 rows x 4 columns]
注意:
1. 数据日频更新,在交易日约 20 点更新当日数据。如果当日数据尚未更新,调用时不指定trade_date
会返回前一交易日的成分数据,调用时指定trade_date
为当日会返回空 dataframe。
2. trade_date
输入非交易日,会返回空 dataframe。trade_date
出入的日期格式错误,会报错。
# *stk_get_industry_category
- 查询行业分类
查询指定行业来源的行业列表
函数原型:
stk_get_industry_category(source='zjh2012', level=1)
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
source | str | 行业来源 | N | 'zjh2012' | 'zjh2012'- 证监会行业分类 2012(默认), 'sw2021'- 申万行业分类 2021 |
level | int | 行业分级 | N | 1 | 1 - 一级行业(默认),2 - 二级行业,3 - 三级行业 |
返回值:dataframe
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
industry_code | str | 行业代码 | 所选行业来源,对应的行业代码 |
industry_name | str | 行业名称 | 所选行业来源,对应的行业名称 |
示例:
industry_category = stk_get_industry_category(source='sw2021', level=2)
输出:
industry_code industry_name
0 110100 种植业
1 110200 渔业
2 110300 林业Ⅱ
3 110400 饲料
4 110500 农产品加工
.. ... ...
129 760100 环境治理
130 760200 环保设备Ⅱ
131 770100 个护用品
132 770200 化妆品
133 770300 医疗美容
[134 rows x 2 columns]
注意:
1. 证监会行业分类 2012 没有三级行业,若输入source='zjh2012', level=3
则参数无效,返回空dataframe
# *stk_get_industry_constituents
- 查询行业成分股
查询指定某个行业的成分股
函数原型:
stk_get_industry_constituents(industry_code, date="")
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
industry_code | str | 行业代码 | Y | 无 | 需要查询成分股的行业代码,可通过[stk_get_industry_category](#stk_get_industry_category - 查询行业分类)获取 |
date | str | 查询日期 | N | "" | 查询行业成分股的指定日期,%Y-%m-%d 格式,默认"" 表示最新时间 |
返回值:dataframe
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
industry_code | str | 行业代码 | 成分股的行业代码 |
industry_name | str | 行业名称 | 成分股的行业名称 |
symbol | str | 成分股票代码 | exchange.sec_id |
sec_name | str | 成分股名称 | symbol 对应的股票名称 |
date_in | datetime.datetime | 纳入日期 | 成分股被纳入指定行业的日期,%Y-%m-%d 格式 |
date_out | datetime.datetime | 剔除日期 | 成分股被剔除指定行业的日期,%Y-%m-%d 格式 |
示例:
stk_get_industry_constituents(industry_code='A', date='2022-09-05')
输出:
industry_code industry_name symbol sec_name date_in date_out
0 04 渔业 SZSE.000798 中水渔业 2012-12-31
1 01 农业 SHSE.600359 新农开发 2012-12-31
2 01 农业 SHSE.600371 万向德农 2012-12-31
3 01 农业 SHSE.600506 香梨股份 2012-12-31
4 02 林业 SZSE.000592 平潭发展 2012-12-31
5 01 农业 SHSE.600598 北大荒 2012-12-31
6 01 农业 SZSE.002041 登海种业 2012-12-31
7 01 农业 SHSE.600540 新赛股份 2012-12-31
8 01 农业 SHSE.600354 敦煌种业 2012-12-31
9 04 渔业 SHSE.600467 好当家 2012-12-31
10 03 畜牧业 SHSE.600975 新五丰 2012-12-31
11 04 渔业 SZSE.200992 中鲁B 2012-12-31
12 01 农业 SHSE.600313 农发种业 2015-07-20
13 04 渔业 SHSE.600097 开创国际 2012-12-31
14 01 农业 SHSE.600108 亚盛集团 2012-12-31
15 03 畜牧业 SHSE.600965 福成股份 2012-12-31
16 05 农、林、牧、渔服务业 SZSE.000711 京蓝科技 2016-12-31
17 05 农、林、牧、渔服务业 SZSE.000713 丰乐种业 2012-12-31
18 03 畜牧业 SZSE.000735 罗牛山 2012-12-31
19 02 林业 SZSE.000663 永安林业 2012-12-31
20 01 农业 SZSE.300189 神农科技 2012-12-31
21 04 渔业 SZSE.002069 ST獐子岛 2012-12-31
22 03 畜牧业 SZSE.002234 民和股份 2012-12-31
23 04 渔业 SZSE.002086 ST东洋 2012-12-31
24 01 农业 SHSE.601118 海南橡胶 2012-12-31
25 03 畜牧业 SZSE.002157 正邦科技 2021-09-30
26 03 畜牧业 SZSE.002299 圣农发展 2012-12-31
27 03 畜牧业 SZSE.002458 益生股份 2012-12-31
28 04 渔业 SZSE.300094 国联水产 2012-12-31
29 03 畜牧业 SZSE.300106 西部牧业 2012-12-31
30 02 林业 SZSE.002679 福建金森 2012-12-31
31 04 渔业 SHSE.600257 大湖股份 2012-12-31
32 01 农业 SZSE.000998 隆平高科 2012-12-31
33 01 农业 SZSE.300087 荃银高科 2012-12-31
34 03 畜牧业 SZSE.300313 ST天山 2019-06-30
35 04 渔业 SZSE.002696 百洋股份 2012-12-31
36 03 畜牧业 SZSE.002505 鹏都农牧 2012-12-31
37 03 畜牧业 SZSE.002714 牧原股份 2014-01-09
38 03 畜牧业 SZSE.002746 仙坛股份 2015-02-02
39 01 农业 SZSE.300511 雪榕生物 2016-04-14
40 01 农业 SZSE.002772 众兴菌业 2015-06-10
41 03 畜牧业 SZSE.300498 温氏股份 2015-10-29
42 03 畜牧业 SZSE.002982 湘佳股份 2020-04-03
43 01 农业 SZSE.300143 盈康生命 2012-12-31
44 03 畜牧业 SZSE.300761 立华股份 2019-01-22
45 03 畜牧业 SHSE.605296 神农集团 2021-04-20
46 03 畜牧业 SHSE.603477 巨星农牧 2020-09-30
47 03 畜牧业 SZSE.140006 牧原优01 2014-01-09
48 03 畜牧业 SZSE.001201 东瑞股份 2020-06-05
49 01 农业 SZSE.300970 华绿生物 2015-07-21
50 01 农业 SZSE.300972 万辰生物 2015-08-18
51 03 畜牧业 SZSE.300967 晓鸣股份 2014-10-30
52 03 畜牧业 SZSE.002124 天邦食品 2021-09-30
53 03 畜牧业 SZSE.002321 ST华英 2012-12-31
54 02 林业 SZSE.002200 ST交投 2012-12-31
55 02 林业 SHSE.600265 ST景谷 2012-12-31
注意:
1. 只能指定一个行业代码查询成分股。
# *stk_get_symbol_industry
- 查询股票的所属行业
查询指定股票所属的行业
函数原型:
stk_get_symbol_industry(symbols, source="zjh2012", level=1, date="")
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
symbols | str or list | 股票代码 | Y | 无 | 多个代码可用 ,使用时参考symbol (opens new window) 采用 str 格式时,多个标的代码必须用英文逗号分割如:'SHSE.600008,SZSE.000002' 采用 list 格式时,多个标的代码示例:['SHSE.600008', 'SZSE.000002'] |
source | str | 行业来源 | N | 'zjh2012' | 'zjh2012'- 证监会行业分类 2012(默认), 'sw2021'- 申万行业分类 2021 |
level | int | 行业分级 | N | 1 | 1 - 一级行业(默认),2 - 二级行业,3 - 三级行业 |
date | str | 查询日期 | N | "" | 查询行业分类的指定日期,%Y-%m-%d 格式,默认"" 表示最新时间 |
返回值:dataframe
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
symbol | str | 股票代码 | exchange.sec_id |
sec_name | str | 股票名称 | symbol 对应的股票名称 |
industry_code | str | 行业代码 | 指定行业来源下,symbol 所属的行业代码 |
industry_name | str | 行业名称 | 指定行业来源下,symbol 所属的行业名称 |
示例:
stk_get_symbol_industry(symbols='SHSE.600000, SZSE.000002', source="zjh2012", level=1, date="")
输出:
symbol sec_name industry_code industry_name
0 SHSE.600000 浦发银行 J 金融业
1 SZSE.000002 万科A K 房地产业
注意:
1. 证监会行业分类 2012 没有三级行业,若输入source='zjh2012', level=3
则参数无效,返回空dataframe
# *stk_get_sector_category
- 查询板块分类
查询指定类型的板块列表
函数原型:
stk_get_sector_category(sector_type)
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
sector_type | str | 板块类型 | Y | 无 | 只能选择一种类型,可选择 1001:市场类 1002:地域类 1003:概念类 |
返回值:dataframe
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
sector_code | str | 板块代码 | 所选板块类型的板块代码 |
sector_name | str | 板块名称 | 所选板块类型的板块名称 |
示例:
stk_get_sector_category(sector_type='1001')
输出:
sector_code sector_name
0 001001 沪深AB股
1 001002 上证AB股
2 001003 深证AB股
3 001004 沪深A股
4 001005 上证A股
5 001006 深证A股
6 001007 深证主板A股
7 001008 深证主板
8 001010 全部创业板
9 001011 全部B股
10 001012 上证B股
11 001013 深证B股
12 001014 三板股票
13 001015 已摘牌股票
14 001017 ST
15 001018 *ST
16 001019 正在发行的股票
17 001020 已发行待上市股票
18 001021 首发上会
19 001022 IPO审核未通过股票
20 001023 风险警示股票
21 001024 风险警示股票(上交所)
22 001025 风险警示股票(深交所)
23 001029 IPO审核通过尚未发行股票
24 001030 IPO审核通过暂缓发行
25 001031 深证主板A股(含ST,*ST)
26 001037 首发过会
27 001038 沪股通
28 001039 沪股通AH股
29 001041 深股通
30 001042 深股通AH股
31 001043 首发申报
32 001044 全部A股(非金融石油石化)
33 001045 融资融券标的(含ETF)
34 001046 可转债标的(历史转债变动)
35 001047 沪深股通
36 001048 沪深A股非ST
37 001056 沪股通AL股
38 001057 科创板
39 001058 IPO取消审核的股票
40 001059 科创股票
41 001060 科创CDR
42 001064 科创板(含意向申报)
43 001065 沪深A股(除科创板、创业板)
44 001066 核准制创业板
45 001067 注册制创业板
46 001068 风险警示股票(创业板)
47 001069 可转债标的
48 001070 北证A股
49 001071 全部A股
50 001072 全部AB股
51 001073 退市后再上市
52 001074 IPO终止审查
# *stk_get_sector_constituents
- 查询板块成分股
查询指定某个板块的成分股
函数原型:
stk_get_sector_constituents(sector_code)
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
sector_code | str | 板块代码 | Y | 无 | 需要查询成分股的板块代码,可通过[stk_get_sector_category](#stk_get_sector_category - 查询板块分类)获取 |
返回值:dataframe
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
sector_code | str | 板块代码 | 查询的板块代码 |
sector_name | str | 板块名称 | 查询的板块代码对应的板块名称 |
symbol | str | 成分股票代码 | exchange.sec_id |
sec_name | str | 成分股票名称 | symbol 对应的股票名称 |
示例:
stk_get_sector_constituents(sector_code='007089')
输出:
sector_code sector_name symbol sec_name
0 007089 央视50 SHSE.600196 复星医药
1 007089 央视50 SZSE.000848 承德露露
2 007089 央视50 SZSE.000049 德赛电池
3 007089 央视50 SHSE.600887 伊利股份
4 007089 央视50 SZSE.300003 乐普医疗
5 007089 央视50 SZSE.300024 机器人
6 007089 央视50 SZSE.002008 大族激光
7 007089 央视50 SZSE.000895 双汇发展
8 007089 央视50 SZSE.002410 广联达
9 007089 央视50 SZSE.300183 东软载波
10 007089 央视50 SHSE.601166 兴业银行
11 007089 央视50 SHSE.600563 法拉电子
12 007089 央视50 SZSE.000423 东阿阿胶
13 007089 央视50 SZSE.300244 迪安诊断
14 007089 央视50 SHSE.600522 中天科技
15 007089 央视50 SZSE.300124 汇川技术
16 007089 央视50 SHSE.600398 海澜之家
17 007089 央视50 SHSE.601607 上海医药
18 007089 央视50 SZSE.002294 信立泰
19 007089 央视50 SZSE.300136 信维通信
20 007089 央视50 SHSE.600585 海螺水泥
21 007089 央视50 SHSE.600276 恒瑞医药
22 007089 央视50 SHSE.600036 招商银行
23 007089 央视50 SZSE.002120 韵达股份
24 007089 央视50 SHSE.603986 兆易创新
25 007089 央视50 SHSE.603160 汇顶科技
26 007089 央视50 SZSE.000651 格力电器
27 007089 央视50 SHSE.601088 中国神华
28 007089 央视50 SHSE.601939 建设银行
29 007089 央视50 SHSE.600016 民生银行
30 007089 央视50 SZSE.000538 云南白药
31 007089 央视50 SZSE.000002 万科A
32 007089 央视50 SHSE.601601 中国太保
33 007089 央视50 SHSE.601318 中国平安
34 007089 央视50 SHSE.600535 天士力
35 007089 央视50 SHSE.601398 工商银行
36 007089 央视50 SHSE.601988 中国银行
37 007089 央视50 SHSE.600085 同仁堂
38 007089 央视50 SHSE.600660 福耀玻璃
39 007089 央视50 SHSE.600519 贵州茅台
40 007089 央视50 SHSE.600690 海尔智家
41 007089 央视50 SZSE.002415 海康威视
42 007089 央视50 SZSE.002230 科大讯飞
43 007089 央视50 SZSE.000596 古井贡酒
44 007089 央视50 SZSE.300070 碧水源
45 007089 央视50 SZSE.002038 双鹭药业
46 007089 央视50 SHSE.600104 上汽集团
47 007089 央视50 SHSE.600600 青岛啤酒
48 007089 央视50 SZSE.000333 美的集团
49 007089 央视50 SZSE.000726 鲁泰A
注意:
1. 只能指定一个板块代码查询成分股。
# *stk_get_symbol_sector
- 查询股票的所属板块
查询指定股票所属的板块
函数原型:
stk_get_symbol_sector(symbols, sector_type)
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
symbols | str or list | 股票代码 | Y | 无 | 多个代码可用 ,使用时参考symbol (opens new window) 采用 str 格式时,多个标的代码必须用英文逗号分割如:'SHSE.600008,SZSE.000002' 采用 list 格式时,多个标的代码示例:['SHSE.600008', 'SZSE.000002'] |
sector_type | str | 板块类型 | Y | 无 | 只能选择一种类型,可选择 1001:市场类 1002:地域类 1003:概念类 |
返回值:dataframe
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
symbol | str | 股票代码 | exchange.sec_id |
sec_name | str | 股票名称 | symbol 对应的股票名称 |
sector_code | str | 板块代码 | 指定板块类型下,symbol 所属的板块代码 |
sector_name | str | 板块名称 | 指定板块类型下,symbol 所属的板块名称 |
示例:
stk_get_symbol_sector(symbols='SHSE.600008,SZSE.000002', sector_type='1002')
输出:
symbol sec_name sector_code sector_name
0 SHSE.600008 首创环保 006002001001 北京市
1 SZSE.000002 万科A 006006001015 深圳市
# *stk_get_dividend
- 查询股票分红送股信息
查询指定股票在一段时间内的分红送股信息
函数原型:
stk_get_dividend(symbol, start_date, end_date)
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
symbol | str | 标的代码 | Y | 无 | 必填,只能填一个股票标的,使用时参考symbol (opens new window) |
start_date | str | 开始时间 | Y | 无 | 必填,开始时间日期(除权除息日),%Y-%m-%d 格式 |
end_date | str | 结束时间 | Y | 无 | 必填,结束时间日期(除权除息日),%Y-%m-%d 格式 |
返回值:dataframe
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
symbol | str | 股票代码 | exchange.sec_id |
scheme_type | str | 分配方案 | 现金分红,送股,转增 |
pub_date | datetime.datetime | 公告日 | %Y-%m-%d 格式 |
equity_reg_date | datetime.datetime | 股权登记日 | %Y-%m-%d 格式 |
ex_date | datetime.datetime | 除权除息日 | %Y-%m-%d 格式 |
cash_pay_date | datetime.datetime | 现金红利发放日 | %Y-%m-%d 格式 |
share_acct_date | datetime.datetime | 送转股到账日 | %Y-%m-%d 格式 |
share_lst_date | datetime.datetime | 新增股份上市流通日 | 红股上市日或送(转增)股份上市交易日, %Y-%m-%d 格式 |
cash_af_tax | float | 税后红利 | 单位:元/10 股 |
cash_bf_tax | float | 税前红利 | 单位:元/10 股 |
bonus_ratio | float | 送股比例 | 10:X |
convert_ratio | float | 转增比例 | 10:X |
base_date | datetime.datetime | 股本基准日 | %Y-%m-%d 格式 |
base_share | float | 股本基数 | 基准股本 |
示例:
stk_get_dividend(symbol='SHSE.600000', start_date='2022-07-01', end_date='2022-07-31')
输出:
symbol scheme_type pub_date equity_reg_date ex_date cash_pay_date share_acct_date share_lst_date cash_af_tax cash_bf_tax bonus_ratio convert_ratio base_date base_share
0 SHSE.600000 现金分红 2022-07-13 2022-07-20 2022-07-21 2022-07-21 None None 3.69 4.1 0.0 0.0 2022-07-20 2.9352e+10
注意:
1. 当start_date
小于或等于end_date
时取指定时间段的数据,当start_date
>end_date
时返回报错.
# *stk_get_ration
- 查询股票配股信息
查询指定股票在一段时间内的配股信息
函数原型:
stk_get_ration(symbol, start_date, end_date)
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
symbol | str | 标的代码 | Y | 无 | 必填,只能填一个股票标的,使用时参考symbol (opens new window) |
start_date | str | 开始时间 | Y | 无 | 必填, 开始时间日期(除权除息日),%Y-%m-%d 格式 |
end_date | str | 结束时间 | Y | 无 | 必填, 结束时间日期(除权除息日),%Y-%m-%d 格式 |
返回值:dataframe
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
symbol | str | 股票代码 | exchange.sec_id |
pub_date | datetime.datetime | 公告日 | %Y-%m-%d 格式 |
equity_reg_date | datetime.datetime | 股权登记日 | %Y-%m-%d 格式 |
ex_date | datetime.datetime | 除权除息日 | %Y-%m-%d 格式 |
ration_ratio | float | 配股比例 | 10:X |
ration_price | float | 配股价格 | 单位:元 |
示例:
stk_get_ration(symbol='SZSE.000728', start_date="2005-01-01", end_date="2022-09-30")
输出:
symbol pub_date equity_reg_date ex_date ration_ratio ration_price
0 SZSE.000728 2020-10-09 2020-10-13 2020-10-22 3.0 5.44
注意:
1. 当start_date
小于或等于 end_date
时取指定时间段的数据,当start_date
> end_date
时返回报错.
# *stk_get_adj_factor
- 查询股票的复权因子
查询某只股票在一段时间内的复权因子
函数原型:
stk_get_adj_factor(symbol, start_date="", end_date="", base_date="")
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
symbol | str | 标的代码 | Y | 无 | 必填,只能填一个股票标的,使用时参考symbol (opens new window) |
start_date | str | 开始时间 | N | "" | 开始时间交易日期,%Y-%m-%d 格式,默认"" 表示最新时间 |
end_date | str | 结束时间 | N | "" | 结束时间交易日期,%Y-%m-%d 格式,默认"" 表示最新时间 |
base_date | str | 复权基准日 | N | "" | 前复权的基准日,%Y-%m-%d 格式,默认"" 表示最新时间 |
返回值:dataframe
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
trade_date | datetime.datetime | 交易日期 | 开始时间至结束时间的交易日期 |
adj_factor_bwd | float | 当日后复权因子 | T 日后复权因子=T-1 日的收盘价/T 日昨收价 |
adj_factor_bwd_acc | float | 当日累计后复权因子 | T 日累计后复权因子=T 日后复权因子 ×T-1 日累计后复权因子, ... 第一个累计后复权因子=第一个后复权因子 |
adj_factor_fwd | float | 当日前复权因子 | T 日前复权因子=T 日累计后复权因子/复权基准日累计后复权因子 |
adj_factor_fwd_acc | float | 当日累计前复权因子 | T 日累计前复权因子=1/T 日后复权因子, T-1 日累计前复权因子=1/(T 日后复权因子 ×T-1 日后复权因子), ... 第一个累计前复权因子=1/最新累计后复权因子 |
示例:
stk_get_adj_factor(symbol='SZSE.000651', start_date="2015-01-01", end_date="2022-09-01", base_date="")
输出:
trade_date adj_factor_bwd adj_factor_bwd_acc adj_factor_fwd adj_factor_fwd_acc
0 2015-01-05 1.0 49.1697 0.3315 3.0169
1 2015-01-06 1.0 49.1697 0.3315 3.0169
2 2015-01-07 1.0 49.1697 0.3315 3.0169
3 2015-01-08 1.0 49.1697 0.3315 3.0169
4 2015-01-09 1.0 49.1697 0.3315 3.0169
... ... ... ... ... ...
1862 2022-08-26 1.0 148.3407 1.0000 1.0000
1863 2022-08-29 1.0 148.3407 1.0000 1.0000
1864 2022-08-30 1.0 148.3407 1.0000 1.0000
1865 2022-08-31 1.0 148.3407 1.0000 1.0000
1866 2022-09-01 1.0 148.3407 1.0000 1.0000
[1867 rows x 5 columns]
注意:
1. T+1 日复权因子会二次更新,分别约在 T 日 19:00 和 T+1 日 19:00 更新
2. 复权价格计算:
T日后复权价格 = T日不复权价格 * T日累计后复权因子
T日前复权价格 = T日不复权价格 * T日前复权因子
3. 上市首日后复权因子和累计后复权因子为 1,最近一次除权除息日后的前复权因子为 1
4. 前复权基准日base_date
应不早于设定的结束日期end_date
,不晚于最新交易日。若设定的基准日早于end_date
则等同于end_date
,若设定的基准日晚于最新交易日则等同于最新交易日。
5. 当start_date
小于或等于 end_date
时取指定时间段的数据,当start_date
> end_date
时返回报错.
# *stk_get_shareholder_num
- 查询股东户数
查询上市公司股东总数,A 股股东、B 股股东、H 股股东总数
函数原型:
stk_get_shareholder_num(symbols, start_date="", end_date="")
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
symbol | str | 股票代码 | Y | 无 | 必填,只能填一个股票标的,使用时参考symbol (opens new window) |
start_date | str | 开始时间 | N | "" | 开始时间日期(公告日期),%Y-%m-%d 格式,默认"" 表示最新时间 |
end_date | str | 结束时间 | N | "" | 结束时间日期(公告日期),%Y-%m-%d 格式,默认"" 表示最新时间 |
返回值:dataframe
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
symbol | str | 股票代码 | exchange.sec_id |
sec_name | str | 股票名称 | symbol 对应的股票名称 |
pub_date | datetime.datetime | 公告日期 | |
expiry_date | datetime.datetime | 截止日期 | |
total_share | int | 股东总数 | |
total_share_a | int | A 股股东总数 | |
total_share_b | int | 流通 B 股股东总数 | |
total_share_h | int | 流通 H 股股东总数 | |
other_share | int | 其他股东户数 | |
total_share_pfd | int | 优先股股东总数(表决权恢复) | |
total_share_mgn | int | 股东户数(含融资融券) | 合并普通账户和融资融券信用账户后的股东总户数 |
total_share_no_mgn | int | 股东户数(不含融资融券) | 普通账户的股东总户数 |
示例:
stk_get_shareholder_num(symbol='SZSE.002594', start_date="2022-01-01", end_date="2022-08-01")
输出:
symbol sec_name pub_date expiry_date total_share total_share_a total_share_b total_share_h other_share total_share_pfd total_share_mgn total_share_no_mgn
0 SZSE.002594 比亚迪 2022-03-30 2021-12-31 357227 357109 0 118 0 0 0 0
1 SZSE.002594 比亚迪 2022-03-30 2022-02-28 392631 392511 0 120 0 0 0 0
2 SZSE.002594 比亚迪 2022-04-28 2022-03-31 405607 405486 0 121 0 0 0 0
注意:
当start_date == end_date
时,取离end_date
最近公告日期的一条数据,
当start_dat < end_date
时,取指定时间段的数据,
当start_date > end_date
时,返回报错。
# *stk_get_top_shareholder
- 查询十大股东
查询上市公司前十大股东的持股情况,包括持股数量,所持股份性质等
函数原型:
stk_get_top_shareholder(symbols, start_date="", end_date="", tradable_holder=False)
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
symbol | str | 股票代码 | Y | 无 | 必填,只能填一个股票标的,使用时参考symbol (opens new window) |
start_date | str | 开始时间 | N | "" | 开始时间日期(公告日期),%Y-%m-%d 格式,默认"" 表示最新时间 |
end_date | str | 结束时间 | N | "" | 结束时间日期(公告日期),%Y-%m-%d 格式,默认"" 表示最新时间 |
tradable_holder | bool | 是否流通股东 | N | False | False-十大股东(默认)、True-十大流通股东 默认False 表示十大股东 |
返回值:dataframe
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
symbol | str | 股票代码 | exchange.sec_id |
sec_name | str | 股票名称 | symbol 对应的股票名称 |
pub_date | datetime.datetime | 公告日期 | |
expiry_date | datetime.datetime | 截止日期 | |
holder_name | str | 股东名称 | |
holder_rank | int | 股东序号 | 名次 |
holder_type | str | 股东类型 | |
holder_attr | str | 股东性质 | 十大流通股东不返回 |
share_type | str | 股份类型 | 股份性质 |
share_num | float | 持股数量 | 持有数量(股) |
share_ratio1 | float | 持股比例 1 | 持股占总股本比例(%) |
share_ratio2 | float | 持股比例 2 | 持股占已上市流通股比例(%),仅十大流通股东才返回 |
share_pledge | float | 质押股份数量 | 股权质押涉及股数(股) |
share_freeze | float | 冻结股份数量 | 股权冻结涉及股数(股) |
示例:
stk_get_top_shareholder(symbol='SHSE.603906', start_date="2022-06-01", end_date="2022-08-01", tradable_holder=False)
输出:
symbol sec_name pub_date expiry_date holder_name holder_rank holder_type holder_attr share_type share_num share_ratio1 share_ratio2 share_pledge share_freeze
0 SHSE.603906 龙蟠科技 2022-06-18 2022-06-10 上海歆享资产管理有限公司-歆享盈新1号私募证券投资基金 10 投资公司 境内法人股 流通A股 3.1941e+06 0.66 0.0 0.0 0.0
1 SHSE.603906 龙蟠科技 2022-06-18 2022-06-10 上海迎水投资管理有限公司-迎水日新9号私募证券投资基金 9 投资公司 境内法人股 流通A股 3.2252e+06 0.67 0.0 0.0 0.0
2 SHSE.603906 龙蟠科技 2022-06-18 2022-06-10 中国工商银行股份有限公司-南方卓越优选3个月持有期混合型证券投资基金 5 证券投资基金 境内法人股 流通A股 4.9513e+06 1.03 0.0 0.0 0.0
3 SHSE.603906 龙蟠科技 2022-06-18 2022-06-10 中国工商银行股份有限公司-申万菱信新经济混合型证券投资基金 7 证券投资基金 境内法人股 流通A股 3.7343e+06 0.77 0.0 0.0 0.0
4 SHSE.603906 龙蟠科技 2022-06-18 2022-06-10 中国工商银行股份有限公司-财通资管价值成长混合型证券投资基金 3 证券投资基金 境内法人股 流通A股 8.1342e+06 1.69 0.0 0.0 0.0
5 SHSE.603906 龙蟠科技 2022-06-18 2022-06-10 中国工商银行股份有限公司-财通资管均衡价值一年持有期混合型证券投资基金 8 证券投资基金 境内法人股 流通A股 3.6870e+06 0.76 0.0 0.0 0.0
6 SHSE.603906 龙蟠科技 2022-06-18 2022-06-10 平安基金-中国平安人寿保险股份有限公司-平安人寿-平安基金权益委托投资1号单一资产管理计划 4 基金资产管理计划 境内法人股 流通A股 5.6035e+06 1.16 0.0 0.0 0.0
7 SHSE.603906 龙蟠科技 2022-06-18 2022-06-10 建投嘉驰(上海)投资有限公司 6 投资公司 国有股 流通A股 4.4512e+06 0.92 0.0 0.0 0.0
8 SHSE.603906 龙蟠科技 2022-06-18 2022-06-10 朱香兰 2 个人 自然人股 流通A股 2.3619e+07 4.90 0.0 0.0 0.0
9 SHSE.603906 龙蟠科技 2022-06-18 2022-06-10 石俊峰 1 个人 自然人股 流通A股 2.1266e+08 44.11 0.0 0.0 0.0
10 SHSE.603906 龙蟠科技 2022-06-18 2022-06-16 JPMORGAN CHASE BANK,NATIONAL ASSOCIATION 8 QFII 境外法人股 流通A股 5.5692e+06 0.99 0.0 0.0 0.0
11 SHSE.603906 龙蟠科技 2022-06-18 2022-06-16 中国工商银行股份有限公司-南方卓越优选3个月持有期混合型证券投资基金 10 证券投资基金 境内法人股 流通A股 4.9513e+06 0.88 0.0 0.0 0.0
12 SHSE.603906 龙蟠科技 2022-06-18 2022-06-16 中国工商银行股份有限公司-财通资管价值成长混合型证券投资基金 4 证券投资基金 境内法人股 流通A股 1.1999e+07 2.12 0.0 0.0 0.0
13 SHSE.603906 龙蟠科技 2022-06-18 2022-06-16 中国工商银行股份有限公司-财通资管均衡价值一年持有期混合型证券投资基金 9 证券投资基金 境内法人股 流通A股 5.5354e+06 0.98 0.0 0.0 0.0
14 SHSE.603906 龙蟠科技 2022-06-18 2022-06-16 平安基金-中国平安人寿保险股份有限公司-平安人寿-平安基金权益委托投资1号单一资产管理计划 7 基金资产管理计划 境内法人股 流通A股 5.6035e+06 0.99 0.0 0.0 0.0
15 SHSE.603906 龙蟠科技 2022-06-18 2022-06-16 成都丝路重组股权投资基金管理有限公司-成都振兴嘉业贰号股权投资中心(有限合伙) 5 投资公司 境内法人股 流通A股 5.6582e+06 1.00 0.0 0.0 0.0
16 SHSE.603906 龙蟠科技 2022-06-18 2022-06-16 朱香兰 2 个人 自然人股 流通A股 2.3619e+07 4.18 0.0 0.0 0.0
17 SHSE.603906 龙蟠科技 2022-06-18 2022-06-16 汇添富基金-中信银行理财之乐赢成长周期一年B款理财产品-汇添富中信添富牛170号单一资产管理计划 3 基金资产管理计划 境内法人股 流通A股 1.3203e+07 2.34 0.0 0.0 0.0
18 SHSE.603906 龙蟠科技 2022-06-18 2022-06-16 济南江山投资合伙企业(有限合伙) 5 投资公司 境内法人股 流通A股 5.6582e+06 1.00 0.0 0.0 0.0
19 SHSE.603906 龙蟠科技 2022-06-18 2022-06-16 石俊峰 1 个人 自然人股 流通A股 2.1266e+08 37.63 0.0 0.0 0.0
注意:
当start_date == end_date
时,取离end_date
最近公告日期的一条数据,
当start_dat < end_date
时,取指定时间段的数据,
当start_date > end_date
时,返回报错。
# *stk_get_share_change
- 查询股本变动
查询上市公司的一段时间内公告的股本变动情况
函数原型:
stk_get_share_change(symbols, start_date="", end_date="")
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
symbol | str | 股票代码 | Y | 无 | 必填,只能填一个股票标的,使用时参考symbol (opens new window) |
start_date | str | 开始时间 | N | "" | 开始时间日期(发布日期),%Y-%m-%d 格式,默认"" 表示最新时间 |
end_date | str | 结束时间 | N | "" | 结束时间日期(发布日期),%Y-%m-%d 格式,默认"" 表示最新时间 |
返回值:dataframe
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
symbol | str | 股票代码 | exchange.sec_id |
company_name | str | 公司名称 | symbol 对应的公司名称 |
pub_date | datetime.datetime | 发布日期 | |
chg_date | datetime.datetime | 股本变动日期 | |
chg_reason | str | 股本变动原因 | |
chg_event | str | 股本变动事件 | 未流通股份+已流通股份,单位:股 |
share_total | float | 总股本 | |
share_total_nlf | float | 未流通股份 | 单位:股 |
share_prom | float | 一、发起人股份 | 国有发起人股 + 发起社会法人股 + 其他发起人股份,单位:股 |
share_prom_state | float | 1.国有发起人股 | 国家持股+国有法人股,单位:股 |
share_state | float | (1)国家股 | 单位:股 |
share_state_lp | float | (2)国有法人股 | 单位:股 |
share_prom_soc | float | 2.发起社会法人股 | 境内社会法人股+境外法人股,单位:股 |
share_dc_lp | float | (1)境内社会法人股 | 单位:股 |
share_os_lp | float | (2)境外法人股 | 单位:股 |
share_prom_other | float | 3.其他发起人股份 | 单位:股 |
share_rs | float | 二、募集人股份 | 募集国家股+募集境内法人股+募集境外法人股,单位:股 |
share_rs_state | float | 1.募集国家股 | 单位:股 |
share_rs_dc_lp | float | 2.募集境内法人股 | 募集境内国有法人股+募集境内社会法人股,单位:股 |
share_rs_state_lp | float | (1)募集境内国有法人股 | 单位:股 |
share_rs_soc_lp | float | (2)募集境内社会法人股 | 单位:股 |
share_rs_os_lp | float | 3.募集境外法人股 | 单位:股 |
share_emp_nlf | float | 三、内部职工股 | 单位:股 |
share_pfd_nlf | float | 四、优先股 | 单位:股 |
share_oth_nlf | float | 五、其他未流通股份 | 单位:股 |
share_circ | float | 流通股份 | 单位:股 |
share_ttl_unl | float | 无限售条件股份 | 人民币普通股(A 股)+ 境内上市外资股(B 股)+ 境外上市外资股(H 股)+ 其他已流通股份,单位:股 |
share_a_unl | float | 1.人民币普通股(A 股) | 单位:股 |
share_b_unl | float | 2.境内上市外资股(B 股) | 单位:股 |
share_h_unl | float | 3.境外上市外资股(H 股) | 单位:股 |
share_oth_unl | float | 4.其他已流通股份 | 单位:股 |
share_ttl_ltd | float | 有限售条件股份 | 单位:股 |
share_gen_ltd | float | 一、一般有限售条件股份 | 限售国家持股+ 限售国有法人持股+ 限售其他内资持股+ 限售外资持股+ 锁定股份+ 高管持股,单位:股 |
share_state_ltd | float | 1.限售国家持股 | 单位:股 |
share_state_lp_ltd | float | 2.限售国有法人持股 | 单位:股 |
share_oth_dc_ltd | float | 3.限售其他内资持股 | 限售境内非国有法人持股+限售境内自然人持股,单位:股 |
share_nst_dc_lp_ltd | float | (1)限售境内非国有法人持股 | 单位:股 |
share_dc_np_ltd | float | (2)限售境内自然人持股 | 单位:股 |
share_forn_ltd | float | 4.限售外资持股 | 限售境外法人持股+限售境外自然人持股,单位:股 |
share_os_lp_ltd | float | (1)限售境外法人持股 | 单位:股 |
share_os_np_ltd | float | (2)限售境外自然人持股 | 单位:股 |
share_lk_ltd | float | 5.锁定股份 | 单位:股 |
share_gm_ltd | float | 6.高管持股(原始披露) | 单位:股 |
share_plc_lp_ltd | float | 二、配售法人持股 | 战略投资者配售股份+一般法人投资者配售+ 证券投资基金配售股份,单位:股 |
share_plc_si_ltd | float | 1.战略投资者配售股份 | 单位:股 |
share_plc_lp_gen_ltd | float | 2.一般法人投资者配售股份 | 单位:股 |
share_plc_fnd_ltd | float | 3.证券投资基金配售股份 | 单位:股 |
share_a_ltd | float | 限售流通 A 股 | 单位:股 |
share_b_ltd | float | 限售流通 B 股 | 单位:股 |
share_h_ltd | float | 限售流通 H 股 | 单位:股 |
share_oth_ltd | float | 其他限售股份 | 单位:股 |
share_list_date | datetime.datetime | 变动股份上市日 | %Y-%m-%d 格式 |
示例:
stk_get_share_change(symbol='SHSE.605090', start_date="2020-01-01", end_date="2022-10-01")
输出:
symbol company_name pub_date chg_date chg_reason chg_event share_total share_total_nlf share_prom share_prom_state share_state share_state_lp share_prom_soc share_dc_lp share_os_lp share_prom_other share_rs share_rs_state share_rs_dc_lp share_rs_state_lp share_rs_soc_lp share_rs_os_lp share_emp_nlf share_pfd_nlf share_oth_nlf share_circ share_ttl_unl share_a_unl share_b_unl share_h_unl share_oth_unl share_ttl_ltd share_gen_ltd share_state_ltd share_state_lp_ltd share_oth_dc_ltd share_nst_dc_lp_ltd share_dc_np_ltd share_forn_ltd share_os_lp_ltd share_os_np_ltd share_lk_ltd share_gm_ltd share_plc_lp_ltd share_plc_si_ltd share_plc_lp_gen_ltd share_plc_fnd_ltd share_a_ltd share_b_ltd share_h_ltd share_oth_ltd share_list_date
0 SHSE.605090 江西九丰能源股份有限公司 2021-05-24 2021-05-13 首发A股上市 发行融资 4.4297e+08 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 4.4297e+08 8.2970e+07 8.2970e+07 0.0 0.0 0.0 3.6000e+08 3.6000e+08 0.0 0.0 3.1967e+08 2.1591e+08 1.0376e+08 4.0330e+07 4.0330e+07 0.0 0.0 1.0376e+08 0.0 0.0 0.0 0.0 3.6000e+08 0.0 0.0 0.0 2021-05-25
1 SHSE.605090 江西九丰能源股份有限公司 2022-05-12 2022-05-18 转增股上市 分红派息 6.2016e+08 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 6.2016e+08 1.1616e+08 1.1616e+08 0.0 0.0 0.0 5.0400e+08 5.0400e+08 0.0 0.0 4.4754e+08 3.0228e+08 1.4526e+08 5.6462e+07 5.6462e+07 0.0 0.0 0.0000e+00 0.0 0.0 0.0 0.0 5.0400e+08 0.0 0.0 0.0 2022-05-19
2 SHSE.605090 江西九丰能源股份有限公司 2022-05-25 2022-05-30 首发限售股份上市 限售股解禁 6.2016e+08 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 6.2016e+08 2.5281e+08 2.5281e+08 0.0 0.0 0.0 3.6735e+08 3.6735e+08 0.0 0.0 3.6735e+08 2.2209e+08 1.4526e+08 0.0000e+00 0.0000e+00 0.0 0.0 0.0000e+00 0.0 0.0 0.0 0.0 3.6735e+08 0.0 0.0 0.0 2022-05-30
注意:
当start_date == end_date
时,取离end_date
最近发布日期的一条数据,
当start_dat < end_date
时,取指定时间段的数据,
当start_date > end_date
时,返回报错。
# *stk_get_fundamentals_balance
- 查询资产负债表数据
查询指定时间段某一股票所属上市公司的资产负债表数据
函数原型:
stk_get_fundamentals_balance(symbol, rpt_type=None, data_type=None, start_date=None, end_date=None, fields, df=False)
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
symbol | str | 股票代码 | Y | 无 | 必填,只能填一个股票标的,使用时参考symbol (opens new window) |
fields | str | 返回字段 | Y | 无 | 指定需要返回的财务字段, 如有多个字段,中间用英文逗号分隔 |
rpt_type | int | 报表类型 | N | None | 按报告期查询可指定以下报表类型: 1-一季度报 6-中报 9-前三季报 12-年报 默认 None 为不限 |
data_type | int | 数据类型 | N | None | 在发布原始财务报告以后,上市公司可能会对数据进行修正。 101-合并原始 102-合并调整 201-母公司原始 202-母公司调整 默认 None 返回当期合并调整,如果没有调整返回合并原始 |
start_date | str | 开始时间 | N | None | 开始时间,时间类型为报告日期,%Y-%m-%d 格式, 默认None 表示最新时间 |
end_date | str | 结束时间 | N | None | 结束时间,时间类型为报告日期,%Y-%m-%d 格式, 默认None 表示最新时间 |
df | bool | 返回格式 | N | False | 是否返回 dataframe 格式 , 默认False 返回 list[dict] |
返回值:
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
symbol | str | 股票代码 | |
pub_date | str | 发布日期 | 若数据类型选择合并原始(data_type=101 ),则返回原始发布的发布日期 若数据类型选择合并调整(data_type=102 ),则返回调整后最新发布日期 若数据类型选择母公司原始(data_type=201 ),则返回母公司原始发布的发布日期 若数据类型选择母公司调整( data_type=202 ),则返回母公司调整后最新发布日期 |
rpt_date | str | 报告日期 | 报告截止日期,财报统计的最后一天 在指定时间段[开始时间,结束时间]内的报告截止日期 |
rpt_type | int | 报表类型 | 返回数据的报表类型:1-一季度报, 6-中报, 9-前三季报, 12-年报 |
data_type | int | 数据类型 | 返回数据的数据类型:101-合并原始, 102-合并调整, 201-母公司原始, 202-母公司调整 |
fields | list[float] | 财务字段数据 | 指定返回 fields 字段的数值. 支持的字段名请参考 资产负债表 |
示例:
stk_get_fundamentals_balance(symbol='SHSE.600000', rpt_type=12, data_type=None, start_date='2022-12-31', end_date='2022-12-31', fields='lt_eqy_inv', df=True)
输出:
symbol pub_date rpt_date rpt_type data_type lt_eqy_inv
0 SHSE.600000 2022-10-29 2021-12-31 12 102 2819000000.00
注意:
1. 当start_date
== end_date
时,取离 end_date
最近报告日期的一条数据,
当start_dat
< end_date
时,取指定时间段的数据,
当 start_date
> end_date
时,返回报错。
2. 若在指定历史时间段内,有多个同一类型报表(如不同年份的一季度报表),将按照报告日期顺序返回。
3. 如果fields
参数的财务字段填写不正确,或填写空字段,会报错提示“填写的 fields 不正确”。
资产负债表
字段名 | 类型 | 中文名称 | 量纲 | 说明 |
---|---|---|---|---|
流动资产(资产) | ||||
cash_bal_cb | float | 现金及存放中央银行款项 | 元 | 银行 |
dpst_ob | float | 存放同业款项 | 元 | 银行 |
mny_cptl | float | 货币资金 | 元 | |
cust_cred_dpst | float | 客户信用资金存款 | 元 | 证券 |
cust_dpst | float | 客户资金存款 | 元 | 证券 |
pm | float | 贵金属 | 元 | 银行 |
bal_clr | float | 结算备付金 | 元 | |
cust_rsv | float | 客户备付金 | 元 | 证券 |
ln_to_ob | float | 拆出资金 | 元 | |
fair_val_fin_ast | float | 以公允价值计量且其变动计入当期损益的金融资产 | 元 | |
ppay | float | 预付款项 | 元 | |
fin_out | float | 融出资金 | 元 | |
trd_fin_ast | float | 交易性金融资产 | 元 | |
deriv_fin_ast | float | 衍生金融资产 | 元 | |
note_acct_rcv | float | 应收票据及应收账款 | 元 | |
note_rcv | float | 应收票据 | 元 | |
acct_rcv | float | 应收账款 | 元 | |
acct_rcv_fin | float | 应收款项融资 | 元 | |
int_rcv | float | 应收利息 | 元 | |
dvd_rcv | float | 应收股利 | 元 | |
oth_rcv | float | 其他应收款 | 元 | |
in_prem_rcv | float | 应收保费 | 元 | |
rin_acct_rcv | float | 应收分保账款 | 元 | |
rin_rsv_rcv | float | 应收分保合同准备金 | 元 | 保险 |
rcv_un_prem_rin_rsv | float | 应收分保未到期责任准备金 | 元 | |
rcv_clm_rin_rsv | float | 应收分保未决赔偿准备金 | 元 | 保险 |
rcv_li_rin_rsv | float | 应收分保寿险责任准备金 | 元 | 保险 |
rcv_lt_hi_rin_rsv | float | 应收分保长期健康险责任准备金 | 元 | 保险 |
ph_plge_ln | float | 保户质押贷款 | 元 | 保险 |
ttl_oth_rcv | float | 其他应收款合计 | 元 | |
rfd_dpst | float | 存出保证金 | 元 | 证券、保险 |
term_dpst | float | 定期存款 | 元 | 保险 |
pur_resell_fin | float | 买入返售金融资产 | 元 | |
aval_sale_fin | float | 可供出售金融资产 | 元 | |
htm_inv | float | 持有至到期投资 | 元 | |
hold_for_sale | float | 持有待售资产 | 元 | |
acct_rcv_inv | float | 应收款项类投资 | 元 | 保险 |
invt | float | 存货 | 元 | |
contr_ast | float | 合同资产 | 元 | |
ncur_ast_one_y | float | 一年内到期的非流动资产 | 元 | |
oth_cur_ast | float | 其他流动资产 | 元 | |
cur_ast_oth_item | float | 流动资产其他项目 | 元 | |
ttl_cur_ast | float | 流动资产合计 | 元 | |
非流动资产(资产) | ||||
loan_adv | float | 发放委托贷款及垫款 | 元 | |
cred_inv | float | 债权投资 | 元 | |
oth_cred_inv | float | 其他债权投资 | 元 | |
lt_rcv | float | 长期应收款 | 元 | |
lt_eqy_inv | float | 长期股权投资 | 元 | |
oth_eqy_inv | float | 其他权益工具投资 | 元 | |
rfd_cap_guar_dpst | float | 存出资本保证金 | 元 | 保险 |
oth_ncur_fin_ast | float | 其他非流动金融资产 | 元 | |
amor_cos_fin_ast_ncur | float | 以摊余成本计量的金融资产(非流动) | 元 | |
fair_val_oth_inc_ncur | float | 以公允价值计量且其变动计入其他综合收益的金融资产(非流动) | 元 | |
inv_prop | float | 投资性房地产 | 元 | |
fix_ast | float | 固定资产 | 元 | |
const_prog | float | 在建工程 | 元 | |
const_matl | float | 工程物资 | 元 | |
fix_ast_dlpl | float | 固定资产清理 | 元 | |
cptl_bio_ast | float | 生产性生物资产 | 元 | |
oil_gas_ast | float | 油气资产 | 元 | |
rig_ast | float | 使用权资产 | 元 | |
intg_ast | float | 无形资产 | 元 | |
trd_seat_fee | float | 交易席位费 | 元 | 证券 |
dev_exp | float | 开发支出 | 元 | |
gw | float | 商誉 | 元 | |
lt_ppay_exp | float | 长期待摊费用 | 元 | |
dfr_tax_ast | float | 递延所得税资产 | 元 | |
oth_ncur_ast | float | 其他非流动资产 | 元 | |
ncur_ast_oth_item | float | 非流动资产其他项目 | 元 | |
ttl_ncur_ast | float | 非流动资产合计 | 元 | |
oth_ast | float | 其他资产 | 元 | 银行、证券、保险 |
ast_oth_item | float | 资产其他项目 | 元 | |
ind_acct_ast | float | 独立账户资产 | 元 | 保险 |
ttl_ast | float | 资产总计 | 元 | |
流动负债(负债) | ||||
brw_cb | float | 向中央银行借款 | 元 | |
dpst_ob_fin_inst | float | 同业和其他金融机构存放款项 | 元 | 银行、保险 |
ln_fm_ob | float | 拆入资金 | 元 | |
fair_val_fin_liab | float | 以公允价值计量且其变动计入当期损益的金融负债 | 元 | |
sht_ln | float | 短期借款 | 元 | |
adv_acct | float | 预收款项 | 元 | |
contr_liab | float | 合同负债 | 元 | |
trd_fin_liab | float | 交易性金融负债 | 元 | |
deriv_fin_liab | float | 衍生金融负债 | 元 | |
sell_repo_ast | float | 卖出回购金融资产款 | 元 | |
cust_bnk_dpst | float | 吸收存款 | 元 | 银行、保险 |
dpst_cb_note_pay | float | 存款证及应付票据 | 元 | 银行 |
dpst_cb | float | 存款证 | 元 | 银行 |
acct_rcv_adv | float | 预收账款 | 元 | 保险 |
in_prem_rcv_adv | float | 预收保费 | 元 | 保险 |
fee_pay | float | 应付手续费及佣金 | 元 | |
note_acct_pay | float | 应付票据及应付账款 | 元 | |
stlf_pay | float | 应付短期融资款 | 元 | |
note_pay | float | 应付票据 | 元 | |
acct_pay | float | 应付账款 | 元 | |
rin_acct_pay | float | 应付分保账款 | 元 | |
emp_comp_pay | float | 应付职工薪酬 | 元 | |
tax_pay | float | 应交税费 | 元 | |
int_pay | float | 应付利息 | 元 | |
dvd_pay | float | 应付股利 | 元 | |
ph_dvd_pay | float | 应付保单红利 | 元 | 保险 |
indem_pay | float | 应付赔付款 | 元 | 保险 |
oth_pay | float | 其他应付款 | 元 | |
ttl_oth_pay | float | 其他应付款合计 | 元 | |
ph_dpst_inv | float | 保户储金及投资款 | 元 | 保险 |
in_contr_rsv | float | 保险合同准备金 | 元 | 保险 |
un_prem_rsv | float | 未到期责任准备金 | 元 | 保险 |
clm_rin_rsv | float | 未决赔款准备金 | 元 | 保险 |
li_liab_rsv | float | 寿险责任准备金 | 元 | 保险 |
lt_hi_liab_rsv | float | 长期健康险责任准备金 | 元 | 保险 |
cust_bnk_dpst_fin | float | 吸收存款及同业存放 | 元 | |
inter_pay | float | 内部应付款 | 元 | |
agy_secu_trd | float | 代理买卖证券款 | 元 | |
agy_secu_uw | float | 代理承销证券款 | 元 | |
sht_bnd_pay | float | 应付短期债券 | 元 | |
est_cur_liab | float | 预计流动负债 | 元 | |
liab_hold_for_sale | float | 持有待售负债 | 元 | |
ncur_liab_one_y | float | 一年内到期的非流动负债 | 元 | |
oth_cur_liab | float | 其他流动负债 | 元 | |
cur_liab_oth_item | float | 流动负债其他项目 | 元 | |
ttl_cur_liab | float | 流动负债合计 | 元 | |
非流动负债(负债) | ||||
lt_ln | float | 长期借款 | 元 | |
lt_pay | float | 长期应付款 | 元 | |
leas_liab | float | 租赁负债 | ||
dfr_inc | float | 递延收益 | 元 | |
dfr_tax_liab | float | 递延所得税负债 | 元 | |
bnd_pay | float | 应付债券 | 元 | |
bnd_pay_pbd | float | 其中:永续债 | 元 | |
bnd_pay_pfd | float | 其中:优先股 | 元 | |
oth_ncur_liab | float | 其他非流动负债 | 元 | |
spcl_pay | float | 专项应付款 | 元 | |
ncur_liab_oth_item | float | 非流动负债其他项目 | 元 | |
lt_emp_comp_pay | float | 长期应付职工薪酬 | 元 | |
est_liab | float | 预计负债 | 元 | |
oth_liab | float | 其他负债 | 元 | 银行、证券、保险 |
liab_oth_item | float | 负债其他项目 | 元 | 银行、证券、保险 |
ttl_ncur_liab | float | 非流动负债合计 | 元 | |
ind_acct_liab | float | 独立账户负债 | 元 | 保险 |
ttl_liab | float | 负债合计 | 元 | |
所有者权益(或股东权益) | ||||
paid_in_cptl | float | 实收资本(或股本) | 元 | |
oth_eqy | float | 其他权益工具 | 元 | |
oth_eqy_pfd | float | 其中:优先股 | 元 | |
oth_eqy_pbd | float | 其中:永续债 | 元 | |
oth_eqy_oth | float | 其中:其他权益工具 | 元 | |
cptl_rsv | float | 资本公积 | 元 | |
treas_shr | float | 库存股 | 元 | |
oth_comp_inc | float | 其他综合收益 | 元 | |
spcl_rsv | float | 专项储备 | 元 | |
sur_rsv | float | 盈余公积 | 元 | |
rsv_ord_rsk | float | 一般风险准备 | 元 | |
trd_risk_rsv | float | 交易风险准备 | 元 | 证券 |
ret_prof | float | 未分配利润 | 元 | |
sugg_dvd | float | 建议分派股利 | 元 | 银行 |
eqy_pcom_oth_item | float | 归属于母公司股东权益其他项目 | 元 | |
ttl_eqy_pcom | float | 归属于母公司股东权益合计 | 元 | |
min_sheqy | float | 少数股东权益 | 元 | |
sheqy_oth_item | float | 股东权益其他项目 | 元 | |
ttl_eqy | float | 股东权益合计 | 元 | |
ttl_liab_eqy | float | 负债和股东权益合计 | 元 |
# *stk_get_fundamentals_cashflow
- 查询现金流量表数据
查询指定时间段某一股票所属上市公司的现金流量表数据
函数原型:
stk_get_fundamentals_cashflow(symbol, rpt_type=None, data_type=None, start_date=None, end_date=None, fields, df=False)
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
symbol | str | 股票代码 | Y | 无 | 必填,只能填一个股票标的,使用时参考symbol (opens new window) |
fields | str | 返回字段 | Y | 无 | 指定需要返回的财务字段, 如有多个字段,中间用英文逗号分隔 |
rpt_type | int | 报表类型 | N | None | 按报告期查询可指定以下报表类型: 1-一季度报 6-中报 9-前三季报 12-年报 默认 None 为不限 |
data_type | int | 数据类型 | N | None | 在发布原始财务报告以后,上市公司可能会对数据进行修正。 101-合并原始 102-合并调整 201-母公司原始 202-母公司调整 默认 None 返回当期合并调整,如果没有调整返回合并原始 |
start_date | str | 开始时间 | N | None | 开始时间,时间类型为报告日期,%Y-%m-%d 格式, 默认None 表示最新时间 |
end_date | str | 结束时间 | N | None | 结束时间,时间类型为报告日期,%Y-%m-%d 格式, 默认None 表示最新时间 |
df | bool | 返回格式 | N | False | 是否返回 dataframe 格式 , 默认False 返回 list[dict] |
返回值:
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
symbol | str | 股票代码 | |
pub_date | str | 发布日期 | 若数据类型选择合并原始(data_type=101 ),则返回原始发布的发布日期 若数据类型选择合并调整(data_type=102 ),则返回调整后最新发布日期 若数据类型选择母公司原始(data_type=201 ),则返回母公司原始发布的发布日期 若数据类型选择母公司调整( data_type=202 ),则返回母公司调整后最新发布日期 |
rpt_date | str | 报告日期 | 报告截止日期,财报统计的最后一天 在指定时间段[开始时间,结束时间]内的报告截止日期 |
rpt_type | int | 报表类型 | 返回数据的报表类型:1-一季度报, 6-中报, 9-前三季报, 12-年报 |
data_type | int | 数据类型 | 返回数据的数据类型:101-合并原始, 102-合并调整, 201-母公司原始, 202-母公司调整 |
fields | list[float] | 财务字段数据 | 指定返回 fields 字段的数值. 支持的字段名请参考 现金流量表 |
示例:
stk_get_fundamentals_cashflow(symbol='SHSE.600000', rpt_type=None, data_type=101, start_date='2022-12-31', end_date='2022-12-31', fields='cash_pay_fee', df=True)
输出:
symbol pub_date rpt_date rpt_type data_type cash_pay_fee
0 SHSE.600000 2022-10-29 2022-09-30 9 101 7261000000.00
注意:
1. 当start_date
== end_date
时,取离 end_date
最近报告日期的一条数据,
当start_dat
< end_date
时,取指定时间段的数据,
当 start_date
> end_date
时,返回报错。
2. 若在指定历史时间段内,有多个同一类型报表(如不同年份的一季度报表),将按照报告日期顺序返回。
3. 如果fields
参数的财务字段填写不正确,或填写空字段,会报错提示“填写的 fields 不正确”。
现金流量表
字段名 | 类型 | 中文名称 | 量纲 | 说明 |
---|---|---|---|---|
一、经营活动产生的现金流量 | ||||
cash_rcv_sale | float | 销售商品、提供劳务收到的现金 | 元 | |
net_incr_cust_dpst_ob | float | 客户存款和同业存放款项净增加额 | 元 | |
net_incr_cust_dpst | float | 客户存款净增加额 | 元 | 银行 |
net_incr_dpst_ob | float | 同业及其他金融机构存放款项净增加额 | 元 | 银行 |
net_incr_brw_cb | float | 向中央银行借款净增加额 | 元 | |
net_incr_ln_fm_oth | float | 向其他金融机构拆入资金净增加额 | 元 | |
cash_rcv_orig_in | float | 收到原保险合同保费取得的现金 | 元 | |
net_cash_rcv_rin_biz | float | 收到再保险业务现金净额 | 元 | |
net_incr_ph_dpst_inv | float | 保户储金及投资款净增加额 | 元 | |
net_decrdpst_cb_ob | float | 存放中央银行和同业款项及其他金融机构净减少额 | 元 | 银行、保险 |
net_decr_cb | float | 存放中央银行款项净减少额 | 元 | 银行 |
net_decr_ob_fin_inst | float | 存放同业及其他金融机构款项净减少额 | 元 | 银行 |
net_cert_dpst | float | 存款证净额 | 元 | 银行 |
net_decr_trd_fin | float | 交易性金融资产净减少额 | 元 | 银行 |
net_incr_trd_liab | float | 交易性金融负债净增加额 | 元 | 银行 |
cash_rcv_int_fee | float | 收取利息、手续费及佣金的现金 | 元 | |
cash_rcv_int | float | 其中:收取利息的现金 | 元 | 银行 |
cash_rcv_fee | float | 收取手续费及佣金的现金 | 元 | 银行 |
net_incr_lnfm_sell_repo | float | 拆入资金及卖出回购金融资产款净增加额 | 元 | 银行 |
net_incr_ln_fm | float | 拆入资金净增加额 | 元 | |
net_incr_sell_repo | float | 卖出回购金融资产款净增加额 | 元 | 银行 保险 |
net_decr_lnto_pur_resell | float | 拆出资金及买入返售金融资产净减少额 | 元 | 银行 |
net_decr_ln_cptl | float | 拆出资金净减少额 | 元 | 银行、保险 |
net_dect_pur_resell | float | 买入返售金融资产净减少额 | 元 | 银行、保险 |
net_incr_repo | float | 回购业务资金净增加额 | 元 | |
net_decr_repo | float | 回购业务资金净减少额 | 元 | 证券 |
tax_rbt_rcv | float | 收到的税费返还 | 元 | |
net_cash_rcv_trd | float | 收到交易性金融资产现金净额 | 元 | 保险 |
cash_rcv_oth_oper | float | 收到其他与经营活动有关的现金 | 元 | |
net_cash_agy_secu_trd | float | 代理买卖证券收到的现金净额 | 元 | 证券 |
cash_rcv_pur_resell | float | 买入返售金融资产收到的现金 | 元 | 证券、保险 |
net_cash_agy_secu_uw | float | 代理承销证券收到的现金净额 | 元 | 证券 |
cash_rcv_dspl_debt | float | 处置抵债资产收到的现金 | 元 | 银行 |
canc_loan_rcv | float | 收回的已于以前年度核销的贷款 | 元 | 银行 |
cf_in_oper | float | 经营活动现金流入小计 | 元 | |
cash_pur_gds_svc | float | 购买商品、接受劳务支付的现金 | 元 | |
net_incr_ln_adv_cust | float | 客户贷款及垫款净增加额 | 元 | |
net_decr_brw_cb | float | 向中央银行借款净减少额 | 元 | 银行 |
net_incr_dpst_cb_ob | float | 存放中央银行和同业款项净增加额 | 元 | |
net_incr_cb | float | 存放中央银行款项净增加额 | 元 | 银行 |
net_incr_ob_fin_inst | float | 存放同业及其他金融机构款项净增加额 | 元 | 银行 |
net_decr_dpst_ob | float | 同业及其他机构存放款减少净额 | 元 | 银行 |
net_decr_issu_cert_dpst | float | 已发行存款证净减少额 | 元 | 银行 |
net_incr_lnto_pur_resell | float | 拆出资金及买入返售金融资产净增加额 | 元 | 银行 |
net_incr_ln_to | float | 拆出资金净增加额 | 元 | 银行、保险 |
net_incr_pur_resell | float | 买入返售金融资产净增加额 | 元 | 银行、保险 |
net_decr_lnfm_sell_repo | float | 拆入资金及卖出回购金融资产款净减少额 | 元 | 银行 |
net_decr_ln_fm | float | 拆入资金净减少额 | 元 | 银行、证券 |
net_decr_sell_repo | float | 卖出回购金融资产净减少额 | 元 | 银行、保险 |
net_incr_trd_fin | float | 交易性金融资产净增加额 | 元 | 银行 |
net_decr_trd_liab | float | 交易性金融负债净减少额 | 元 | 银行 |
cash_pay_indem_orig | float | 支付原保险合同赔付款项的现金 | 元 | |
net_cash_pay_rin_biz | float | 支付再保险业务现金净额 | 元 | 保险 |
cash_pay_int_fee | float | 支付利息、手续费及佣金的现金 | 元 | |
cash_pay_int | float | 其中:支付利息的现金 | 元 | 银行 |
cash_pay_fee | float | 支付手续费及佣金的现金 | 元 | 银行 |
ph_dvd_pay | float | 支付保单红利的现金 | 元 | |
net_decr_ph_dpst_inv | float | 保户储金及投资款净减少额 | 元 | 保险 |
cash_pay_emp | float | 支付给职工以及为职工支付的现金 | ||
cash_pay_tax | float | 支付的各项税费 | 元 | |
net_cash_pay_trd | float | 支付交易性金融资产现金净额 | 元 | 保险 |
cash_pay_oth_oper | float | 支付其他与经营活动有关的现金 | 元 | |
net_incr_dspl_trd_fin | float | 处置交易性金融资产净增加额 | 元 | |
cash_pay_fin_leas | float | 购买融资租赁资产支付的现金 | 元 | 银行 |
net_decr_agy_secu_pay | float | 代理买卖证券支付的现金净额(净减少额) | 元 | 证券 |
net_decr_dspl_trd_fin | float | 处置交易性金融资产的净减少额 | 元 | 证券 |
cf_out_oper | float | 经营活动现金流出小计 | 元 | |
net_cf_oper | float | 经营活动产生的现金流量净额 | 元 | |
二、投资活动产生的现金流量: | ||||
cash_rcv_sale_inv | float | 收回投资收到的现金 | 元 | |
inv_inc_rcv | float | 取得投资收益收到的现金 | 元 | |
cash_rcv_dvd_prof | float | 分得股利或利润所收到的现金 | 元 | 银行 |
cash_rcv_dspl_ast | float | 处置固定资产、无形资产和其他长期资产收回的现金净额 | 元 | |
cash_rcv_dspl_sub_oth | float | 处置子公司及其他营业单位收到的现金净额 | 元 | |
cash_rcv_oth_inv | float | 收到其他与投资活动有关的现金 | 元 | |
cf_in_inv | float | 投资活动现金流入小计 | 元 | |
pur_fix_intg_ast | float | 购建固定资产、无形资产和其他长期资产支付的现金 | 元 | |
cash_out_dspl_sub_oth | float | 处置子公司及其他营业单位流出的现金净额 | 元 | 保险 |
cash_pay_inv | float | 投资支付的现金 | 元 | |
net_incr_ph_plge_ln | float | 保户质押贷款净增加额 | 元 | 保险 |
add_cash_pled_dpst | float | 增加质押和定期存款所支付的现金 | 元 | |
net_incr_plge_ln | float | 质押贷款净增加额 | 元 | |
net_cash_get_sub | float | 取得子公司及其他营业单位支付的现金净额 | 元 | |
net_pay_pur_resell | float | 支付买入返售金融资产现金净额 | 元 | 证券、保险 |
cash_pay_oth_inv | float | 支付其他与投资活动有关的现金 | 元 | |
cf_out_inv | float | 投资活动现金流出小计 | ||
net_cf_inv | float | 投资活动产生的现金流量净额 | 元 | |
三、筹资活动产生的现金流量: | ||||
cash_rcv_cptl | float | 吸收投资收到的现金 | 元 | |
sub_rcv_ms_inv | float | 其中:子公司吸收少数股东投资收到的现金 | 元 | |
brw_rcv | float | 取得借款收到的现金 | 元 | |
cash_rcv_bnd_iss | float | 发行债券收到的现金 | 元 | |
net_cash_rcv_sell_repo | float | 收到卖出回购金融资产款现金净额 | 元 | 保险 |
cash_rcv_oth_fin | float | 收到其他与筹资活动有关的现金 | 元 | |
issu_cert_dpst | float | 发行存款证 | 元 | 银行 |
cf_in_fin_oth | float | 筹资活动现金流入其他项目 | 元 | |
cf_in_fin | float | 筹资活动现金流入小计 | 元 | |
cash_rpay_brw | float | 偿还债务支付的现金 | 元 | |
cash_pay_bnd_int | float | 偿付债券利息支付的现金 | 元 | 银行 |
cash_pay_dvd_int | float | 分配股利、利润或偿付利息支付的现金 | 元 | |
sub_pay_dvd_prof | float | 其中:子公司支付给少数股东的股利、利润 | 元 | |
cash_pay_oth_fin | float | 支付其他与筹资活动有关的现金 | 元 | |
net_cash_pay_sell_repo | float | 支付卖出回购金融资产款现金净额 | 元 | 保险 |
cf_out_fin | float | 筹资活动现金流出小计 | 元 | |
net_cf_fin | float | 筹资活动产生的现金流量净额 | 元 | |
efct_er_chg_cash | float | 四、汇率变动对现金及现金等价物的影响 | 元 | |
net_incr_cash_eq | float | 五、现金及现金等价物净增加额 | 元 | |
cash_cash_eq_bgn | float | 加:期初现金及现金等价物余额 | 元 | |
cash_cash_eq_end | float | 六、期末现金及现金等价物余额 | 元 | |
补充资料 1.将净利润调节为经营活动现金流量: | ||||
net_prof | float | 净利润 | 元 | |
ast_impr | float | 资产减值准备 | 元 | |
accr_prvs_ln_impa | float | 计提贷款减值准备 | 元 | 银行 |
accr_prvs_oth_impa | float | 计提其他资产减值准备 | 元 | 银行 |
accr_prem_rsv | float | 提取的保险责任准备金 | 元 | 保险 |
accr_unearn_prem_rsv | float | 提取的未到期的责任准备金 | 元 | 保险 |
defr_fix_prop | float | 固定资产和投资性房地产折旧 | 元 | |
depr_oga_cba | float | 其中:固定资产折旧、油气资产折耗、生产性生物资产折旧 | 元 | |
amor_intg_ast_lt_exp | float | 无形资产及长期待摊费用等摊销 | 元 | 银行、证券、保险 |
amort_intg_ast | float | 无形资产摊销 | 元 | |
amort_lt_exp_ppay | float | 长期待摊费用摊销 | 元 | |
dspl_ast_loss | float | 处置固定资产、无形资产和其他长期资产的损失 | 元 | |
fair_val_chg_loss | float | 固定资产报废损失 | 元 | |
fv_chg_loss | float | 公允价值变动损失 | 元 | |
dfa | float | 固定资产折旧 | 元 | 银行 |
fin_exp | float | 财务费用 | 元 | |
inv_loss | float | 投资损失 | 元 | |
exchg_loss | float | 汇兑损失 | 元 | 银行、证券、保险 |
dest_incr | float | 存款的增加 | 元 | 银行 |
loan_decr | float | 贷款的减少 | 元 | 银行 |
cash_pay_bnd_int_iss | float | 发行债券利息支出 | 元 | 银行 |
dfr_tax | float | 递延所得税 | 元 | |
dfr_tax_ast_decr | float | 其中:递延所得税资产减少 | 元 | |
dfr_tax_liab_incr | float | 递延所得税负债增加 | 元 | |
invt_decr | float | 存货的减少 | 元 | |
decr_rcv_oper | float | 经营性应收项目的减少 | 元 | |
incr_pay_oper | float | 经营性应付项目的增加 | 元 | |
oth | float | 其他 | 元 | |
cash_end | float | 现金的期末余额 | 元 | |
cash_bgn | float | 减:现金的期初余额 | 元 | |
cash_eq_end | float | 加:现金等价物的期末余额 | 元 | |
cash_eq_bgn | float | 减:现金等价物的期初余额 | 元 | |
cred_impr_loss | float | 信用减值损失 | 元 | |
est_liab_add | float | 预计负债的增加 | 元 | |
dr_cnv_cptl | float | 债务转为资本 | 元 | |
cptl_bnd_expr_one_y | float | 一年内到期的可转换公司债券 | 元 | |
fin_ls_fix_ast | float | 融资租入固定资产 | 元 | |
amort_dfr_inc | float | 递延收益摊销 | 元 | |
depr_inv_prop | float | 投资性房地产折旧 | 元 | |
trd_fin_decr | float | 交易性金融资产的减少 | 元 | 证券、保险 |
im_net_cf_oper | float | 间接法-经营活动产生的现金流量净额 | 元 | |
im_net_incr_cash_eq | float | 间接法-现金及现金等价物净增加额 | 元 |
# *stk_get_fundamentals_income
- 查询利润表数据
查询指定时间段某一股票所属上市公司的利润表数据
函数原型:
stk_get_fundamentals_income(symbol, rpt_type=None, data_type=None, start_date=None, end_date=None, fields, df=False)
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
symbol | str | 股票代码 | Y | 无 | 必填,只能填一个股票标的,使用时参考symbol (opens new window) |
fields | str | 返回字段 | Y | 无 | 指定需要返回的财务字段, 如有多个字段,中间用英文逗号分隔 |
rpt_type | int | 报表类型 | N | None | 按报告期查询可指定以下报表类型: 1-一季度报 6-中报 9-前三季报 12-年报 默认 None 为不限 |
data_type | int | 数据类型 | N | None | 在发布原始财务报告以后,上市公司可能会对数据进行修正。 101-合并原始 102-合并调整 201-母公司原始 202-母公司调整 默认 None 返回当期合并调整,如果没有调整返回合并原始 |
start_date | str | 开始时间 | N | None | 开始时间,时间类型为报告日期,%Y-%m-%d 格式, 默认None 表示最新时间 |
end_date | str | 结束时间 | N | None | 结束时间,时间类型为报告日期,%Y-%m-%d 格式, 默认None 表示最新时间 |
df | bool | 返回格式 | N | False | 是否返回 dataframe 格式 , 默认False 返回 list[dict] |
返回值:
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
symbol | str | 股票代码 | |
pub_date | str | 发布日期 | 若数据类型选择合并原始(data_type=101 ),则返回原始发布的发布日期 若数据类型选择合并调整(data_type=102 ),则返回调整后最新发布日期 若数据类型选择母公司原始(data_type=201 ),则返回母公司原始发布的发布日期 若数据类型选择母公司调整( data_type=202 ),则返回母公司调整后最新发布日期 |
rpt_date | str | 报告日期 | 报告截止日期,财报统计的最后一天 在指定时间段[开始时间,结束时间]内的报告截止日期 |
rpt_type | int | 报表类型 | 返回数据的报表类型:1-一季度报, 6-中报, 9-前三季报, 12-年报 |
data_type | int | 数据类型 | 返回数据的数据类型:101-合并原始, 102-合并调整, 201-母公司原始, 202-母公司调整 |
fields | list[float] | 财务字段数据 | 指定返回 fields 字段的数值. 支持的字段名请参考 利润表 |
示例:
stk_get_fundamentals_income(symbol='SHSE.600000', rpt_type=6, data_type=None, start_date='2022-12-31', end_date='2022-12-31', fields='inc_oper', df=True)
输出:
symbol pub_date rpt_date rpt_type data_type inc_oper
0 SHSE.600000 2022-08-27 2022-06-30 6 102 98644000000.00
注意:
1. 当start_date
== end_date
时,取离 end_date
最近报告日期的一条数据,
当start_dat
< end_date
时,取指定时间段的数据,
当 start_date
> end_date
时,返回报错。
2. 若在指定历史时间段内,有多个同一类型报表(如不同年份的一季度报表),将按照报告日期顺序返回。
3. 如果fields
参数的财务字段填写不正确,或填写空字段,会报错提示“填写的 fields 不正确”。
利润表
字段名 | 类型 | 中文名称 | 量纲 | 说明 |
---|---|---|---|---|
ttl_inc_oper | float | 营业总收入 | 元 | |
inc_oper | float | 营业收入 | 元 | |
net_inc_int | float | 利息净收入 | 元 | 证券、银行、保险 |
exp_int | float | 利息支出 | 元 | |
net_inc_fee_comm | float | 手续费及佣金净收入 | 元 | 证券、银行 |
inc_rin_prem | float | 其中:分保费收入 | 元 | 保险 |
net_inc_secu_agy | float | 其中:代理买卖证券业务净收入 | 元 | 证券 |
inc_fee_comm | float | 手续费及佣金收入 | 元 | |
in_prem_earn | float | 已赚保费 | 元 | 保险 |
inc_in_biz | float | 其中:保险业务收入 | 元 | 保险 |
rin_prem_cede | float | 分出保费 | 元 | 保险 |
unear_prem_rsv | float | 提取未到期责任准备金 | 元 | 保险 |
net_inc_uw | float | 证券承销业务净收入 | 元 | 证券 |
net_inc_cust_ast_mgmt | float | 受托客户资产管理业务净收入 | 元 | 证券 |
inc_fx | float | 汇兑收益 | 元 | |
inc_other_oper | float | 其他业务收入 | 元 | |
inc_oper_balance | float | 营业收入平衡项目 | 元 | |
ttl_inc_oper_other | float | 营业总收入其他项目 | 元 | |
ttl_cost_oper | float | 营业总成本 | 元 | |
cost_oper | float | 营业成本 | 元 | |
exp_oper | float | 营业支出 | 元 | 证券、银行、保险 |
biz_tax_sur | float | 营业税金及附加 | 元 | |
exp_sell | float | 销售费用 | 元 | |
exp_adm | float | 管理费用 | 元 | |
exp_rd | float | 研发费用 | 元 | |
exp_fin | float | 财务费用 | 元 | |
int_fee | float | 其中:利息费用 | 元 | |
inc_int | float | 利息收入 | 元 | |
exp_oper_adm | float | 业务及管理费 | 元 | 证券、银行、保险 |
exp_rin | float | 减:摊回分保费用 | 元 | 保险 |
rfd_prem | float | 退保金 | 元 | 保险 |
comp_pay | float | 赔付支出 | 元 | 保险 |
rin_clm_pay | float | 减:摊回赔付支出 | 元 | 保险 |
draw_insur_liab | float | 提取保险责任准备金 | 元 | 保险 |
amor_insur_liab | float | 减:摊回保险责任准备金 | 元 | 保险 |
exp_ph_dvd | float | 保单红利支出 | 元 | 保险 |
exp_fee_comm | float | 手续费及佣金支出 | 元 | |
other_oper_cost | float | 其他业务成本 | 元 | |
oper_exp_balance | float | 营业支出平衡项目 | 元 | 证券、银行、保险 |
exp_oper_other | float | 营业支出其他项目 | 元 | 证券、银行、保险 |
ttl_cost_oper_other | float | 营业总成本其他项目 | 元 | |
其他经营收益 | 元 | |||
inc_inv | float | 投资收益 | 元 | |
inv_inv_jv_p | float | 对联营企业和合营企业的投资收益 | 元 | |
inc_ast_dspl | float | 资产处置收益 | 元 | |
ast_impr_loss | float | 资产减值损失(新) | 元 | |
cred_impr_loss | float | 信用减值损失(新) | 元 | |
inc_fv_chg | float | 公允价值变动收益 | 元 | |
inc_other | float | 其他收益 | 元 | |
oper_prof_balance | float | 营业利润平衡项目 | 元 | |
oper_prof | float | 营业利润 | 元 | |
inc_noper | float | 营业外收入 | 元 | |
exp_noper | float | 营业外支出 | 元 | |
ttl_prof_balance | float | 利润总额平衡项目 | 元 | |
oper_prof_other | float | 营业利润其他项目 | 元 | |
ttl_prof | float | 利润总额 | 元 | |
inc_tax | float | 所得税费用 | 元 | |
net_prof | float | 净利润 | 元 | |
oper_net_prof | float | 持续经营净利润 | 元 | |
net_prof_pcom | float | 归属于母公司股东的净利润 | 元 | |
min_int_inc | float | 少数股东损益 | 元 | |
end_net_prof | float | 终止经营净利润 | 元 | |
net_prof_other | float | 净利润其他项目 | 元 | |
eps_base | float | 基本每股收益 | 元 | |
eps_dil | float | 稀释每股收益 | 元 | |
other_comp_inc | float | 其他综合收益 | 元 | |
other_comp_inc_pcom | float | 归属于母公司股东的其他综合收益 | 元 | |
other_comp_inc_min | float | 归属于少数股东的其他综合收益 | 元 | |
ttl_comp_inc | float | 综合收益总额 | 元 | |
ttl_comp_inc_pcom | float | 归属于母公司所有者的综合收益总额 | 元 | |
ttl_comp_inc_min | float | 归属于少数股东的综合收益总额 | 元 | |
prof_pre_merge | float | 被合并方在合并前实现利润 | 元 | |
net_rsv_in_contr | float | 提取保险合同准备金净额 | 元 | |
net_pay_comp | float | 赔付支出净额 | 元 | |
net_loss_ncur_ast | float | 非流动资产处置净损失 | 元 | |
amod_fin_asst_end | float | 以摊余成本计量的金融资产终止确认收益 | 元 | |
cash_flow_hedging_pl | float | 现金流量套期损益的有效部分 | 元 | |
cur_trans_diff | float | 外币财务报表折算差额 | 元 | |
gain_ncur_ast | float | 非流动资产处置利得 | 元 | |
afs_fv_chg_pl | float | 可供出售金融资产公允价值变动损益 | 元 | |
oth_eqy_inv_fv_chg | float | 其他权益工具投资公允价值变动 | 元 | |
oth_debt_inv_fv_chg | float | 其他债权投资公允价值变动 | 元 | |
oth_debt_inv_cred_impr | float | 其他债权投资信用减值准备 | 元 |
# *stk_get_fundamentals_balance_pt
- 查询资产负债表截面数据
查询指定日期截面的股票所属上市公司的资产负债表数据(point-in-time)
函数原型:
stk_get_fundamentals_balance_pt(symbols, rpt_type=None, data_type=None, date=None, fields, df=False)
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
symbols | str or list | 股票代码 | Y | 无 | 必填,可输入多个,使用时参考symbol (opens new window) 采用 str 格式时,多个标的代码必须用英文逗号分割,如:'SHSE.600008,SZSE.000002' 采用 list 格式时,多个标的代码示例:['SHSE.600008', 'SZSE.000002'] |
fields | str | 返回字段 | Y | 无 | 指定需要返回的财务字段, 如有多个字段,中间用英文逗号分隔 |
rpt_type | int | 报表类型 | N | None | 按报告期查询可指定以下报表类型: 1-一季度报 6-中报 9-前三季报 12-年报 默认 None 为不限 |
data_type | int | 数据类型 | N | None | 在发布原始财务报告以后,上市公司可能会对数据进行修正。 101-合并原始 102-合并调整 201-母公司原始 202-母公司调整 默认 None 返回当期合并调整,如果没有调整返回合并原始 |
date | str | 查询日期 | N | None | 查询时间,时间类型为发布日期,%Y-%m-%d 格式, 默认None 表示最新时间 |
df | bool | 返回格式 | N | False | 是否返回 dataframe 格式 , 默认False 返回 list[dict] |
返回值:
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
symbol | str | 股票代码 | |
pub_date | str | 发布日期 | 距查询日期最近的发布日期 若数据类型选择合并原始( data_type=101 ),则返回原始发布的发布日期 若数据类型选择合并调整( data_type=102 ),则返回调整后最新发布日期 若数据类型选择母公司原始( data_type=201 ),则返回母公司原始发布的发布日期 若数据类型选择母公司调整( data_type=202 ),则返回母公司调整后最新发布日期 |
rpt_date | str | 报告日期 | 报告截止日期,财报统计的最后一天 |
rpt_type | int | 报表类型 | 返回数据的报表类型:1-一季度报, 6-中报, 9-前三季报, 12-年报 |
data_type | int | 数据类型 | 返回数据的数据类型:101-合并原始, 102-合并调整, 201-母公司原始, 202-母公司调整 |
fields | list[float] | 财务字段数据 | 指定查询 fields 字段的数值. 支持的字段名请参考 资产负债表 |
示例:
stk_get_fundamentals_balance_pt(symbols='SHSE.600000, SZSE.000001', rpt_type=None, data_type=None, date='2022-10-01', fields='fix_ast', df=True)
输出:
symbol pub_date rpt_date fix_ast data_type rpt_type
0 SZSE.000001 2022-10-25 2022-09-30 10975000000.00 102 9
1 SHSE.600000 2022-10-29 2022-09-30 42563000000.00 102 9
注意:
1. 为避免未来数据问题,指定查询日期date
后,返回距离此日期最近发布的一条数据。
2. 如果fields
参数的财务字段填写不正确,或填写空字段""
,会报错提示“填写的 fields 不正确”。
# *stk_get_fundamentals_cashflow_pt
- 查询现金流量表截面数据
查询指定日期截面的股票所属上市公司的现金流量表数据(point-in-time)
函数原型:
stk_get_fundamentals_cashflow_pt(symbols, rpt_type=None, data_type=None, date=None, fields, df=False)
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
symbols | str or list | 股票代码 | Y | 无 | 必填,可输入多个,使用时参考symbol (opens new window) 采用 str 格式时,多个标的代码必须用英文逗号分割,如:'SHSE.600008,SZSE.000002' 采用 list 格式时,多个标的代码示例:['SHSE.600008', 'SZSE.000002'] |
fields | str | 返回字段 | Y | 无 | 指定需要返回的财务字段, 如有多个字段,中间用英文逗号分隔 |
rpt_type | int | 报表类型 | N | None | 按报告期查询可指定以下报表类型: 1-一季度报 6-中报 9-前三季报 12-年报 默认 None 为不限 |
data_type | int | 数据类型 | N | None | 在发布原始财务报告以后,上市公司可能会对数据进行修正。 101-合并原始 102-合并调整 201-母公司原始 202-母公司调整 默认 None 返回当期合并调整,如果没有调整返回合并原始 |
date | str | 查询日期 | N | None | 查询时间,时间类型为发布日期,%Y-%m-%d 格式, 默认None 表示最新时间 |
df | bool | 返回格式 | N | False | 是否返回 dataframe 格式 , 默认False 返回 list[dict] |
返回值:
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
symbol | str | 股票代码 | |
pub_date | str | 发布日期 | 距查询日期最近的发布日期 若数据类型选择合并原始( data_type=101 ),则返回原始发布的发布日期 若数据类型选择合并调整( data_type=102 ),则返回调整后最新发布日期 若数据类型选择母公司原始( data_type=201 ),则返回母公司原始发布的发布日期 若数据类型选择母公司调整( data_type=202 ),则返回母公司调整后最新发布日期 |
rpt_date | str | 报告日期 | 报告截止日期,财报统计的最后一天 |
rpt_type | int | 报表类型 | 返回数据的报表类型:1-一季度报, 6-中报, 9-前三季报, 12-年报 |
data_type | int | 数据类型 | 返回数据的数据类型:101-合并原始, 102-合并调整, 201-母公司原始, 202-母公司调整 |
fields | list[float] | 财务字段数据 | 指定查询 fields 字段的数值. 支持的字段名请参考 现金流量表 |
示例:
stk_get_fundamentals_cashflow_pt(symbols='SHSE.600000, SZSE.000001', rpt_type=None, data_type=None, date='2022-10-01', fields='cash_pay_fee', df=True)
输出:
symbol pub_date rpt_date rpt_type data_type cash_pay_fee
0 SZSE.000001 2022-10-25 2022-09-30 9 102 NaN
1 SHSE.600000 2022-10-29 2022-09-30 9 102 7261000000.00
注意:
1. 为避免未来数据问题,指定查询日期date
后,返回距离此日期最近发布的一条数据。
2. 如果fields
参数的财务字段填写不正确,或填写空字段""
,会报错提示“填写的 fields 无效”。
# *stk_get_fundamentals_income_pt
- 查询利润表截面数据
查询指定日期截面的股票所属上市公司的利润表数据(point-in-time)
函数原型:
stk_get_fundamentals_income_pt(symbols, rpt_type=None, data_type=None, date=None, fields, df=False)
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
symbols | str or list | 股票代码 | Y | 无 | 必填,可输入多个,使用时参考symbol (opens new window) 采用 str 格式时,多个标的代码必须用英文逗号分割,如:'SHSE.600008,SZSE.000002' 采用 list 格式时,多个标的代码示例:['SHSE.600008', 'SZSE.000002'] |
fields | str | 返回字段 | Y | 无 | 指定需要返回的财务字段, 如有多个字段,中间用英文逗号分隔 |
rpt_type | int | 报表类型 | N | None | 按报告期查询可指定以下报表类型: 1-一季度报 6-中报 9-前三季报 12-年报 默认 None 为不限 |
data_type | int | 数据类型 | N | None | 在发布原始财务报告以后,上市公司可能会对数据进行修正。 101-合并原始 102-合并调整 201-母公司原始 202-母公司调整 默认 None 返回当期合并调整,如果没有调整返回合并原始 |
date | str | 查询日期 | N | None | 查询时间,时间类型为发布日期,%Y-%m-%d 格式, 默认None 表示最新时间 |
df | bool | 返回格式 | N | False | 是否返回 dataframe 格式 , 默认False 返回 list[dict] |
返回值:
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
symbol | str | 股票代码 | |
pub_date | str | 发布日期 | 距查询日期最近的发布日期 若数据类型选择合并原始( data_type=101 ),则返回原始发布的发布日期 若数据类型选择合并调整( data_type=102 ),则返回调整后最新发布日期 若数据类型选择母公司原始( data_type=201 ),则返回母公司原始发布的发布日期 若数据类型选择母公司调整( data_type=202 ),则返回母公司调整后最新发布日期 |
rpt_date | str | 报告日期 | 报告截止日期,财报统计的最后一天 |
rpt_type | int | 报表类型 | 返回数据的报表类型:1-一季度报, 6-中报, 9-前三季报, 12-年报 |
data_type | int | 数据类型 | 返回数据的数据类型:101-合并原始, 102-合并调整, 201-母公司原始, 202-母公司调整 |
fields | list[float] | 财务字段数据 | 指定查询 fields 字段的数值. 支持的字段名请参考 利润表 |
示例:
stk_get_fundamentals_income_pt(symbols='SHSE.600000, SZSE.000001', rpt_type=None, data_type=None, date='2022-10-01', fields='inc_oper', df=True)
输出:
symbol pub_date rpt_date rpt_type data_type inc_oper
0 SZSE.000001 2022-10-25 2022-09-30 9 102 138265000000.00
1 SHSE.600000 2022-10-29 2022-09-30 9 102 143680000000.00
注意:
1. 为避免未来数据问题,指定查询日期date
后,返回距离此日期最近发布的一条数据。
2. 如果fields
参数的财务字段填写不正确,或填写空字段""
,会报错提示“填写的 fields 不正确”。
# 期货数据函数
python 期货数据 API 包含在 gm3.0.145 版本及以上版本,不需要引入新库
注:*代表增值数据接口,需选择掘金特定版本才可使用,详见版本定义https://www.myquant.cn/version (opens new window)中增值数据包的描述
# fut_get_continuous_contracts
- 查询连续合约对应的真实合约
查询指定时间段连续合约在每个交易日上对应的真实合约
函数原型:
fut_get_continuous_contracts(csymbol, start_date="", end_date="")
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
csymbol | str | 连续合约代码 | Y | 无 | 必填,使用时参考查询代码 (opens new window),只能输入一个 支持主力合约、次主力、前 5 个月份连续合约代码,如: 1000 股指期货主力连续合约:CFFEX.IM, 1000 股指期货次主力连续合约:CFFEX.IM22, 1000 股指期货当月连续合约:CFFEX.IM00, 1000 股指期货下月连续合约:CFFEX.IM01, 1000 股指期货下季连续合约:CFFEX.IM02, 1000 股指期货隔季连续合约:CFFEX.IM03 |
start_date | str | 开始时间 | N | "" | 开始时间日期,%Y-%m-%d 格式,默认"" 表示最新时间 |
end_date | str | 结束时间 | N | "" | 结束时间日期,%Y-%m-%d 格式,默认"" 表示最新时间 |
返回值:list[dict]
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
symbol | str | 标的代码 | exchange.sec_id |
trade_date | str | 交易日期 | 具体合约对应的交易日期 |
示例:
fut_get_continuous_contracts(csymbol='SHFE.NI', start_date="2022-09-01", end_date="2022-09-15")
输出:
[{'symbol': 'SHFE.ni2210', 'trade_date': '2022-09-01'}, {'symbol': 'SHFE.ni2210', 'trade_date': '2022-09-02'}, {'symbol': 'SHFE.ni2210', 'trade_date': '2022-09-05'}, {'symbol': 'SHFE.ni2210', 'trade_date': '2022-09-06'}, {'symbol': 'SHFE.ni2210', 'trade_date': '2022-09-07'}, {'symbol': 'SHFE.ni2210', 'trade_date': '2022-09-08'}, {'symbol': 'SHFE.ni2210', 'trade_date': '2022-09-09'}, {'symbol': 'SHFE.ni2210', 'trade_date': '2022-09-13'}, {'symbol': 'SHFE.ni2210', 'trade_date': '2022-09-14'}, {'symbol': 'SHFE.ni2210', 'trade_date': '2022-09-15'}]
注意:
1. 具体合约(真实合约):交易所.品种名到期月份
对应期货具体合约 symbol,如 CFFEX.IF2206
2. 主力连续合约(虚拟合约,由真实合约拼接):交易所.品种名
对应主力连续合约 symbol,如 CFFEX.IF,CFFEX.IC
- 主力连续合约切换规则 1. 每个品种只选出唯一一个主力合约。 2. 日成交量和持仓量都为最大的合约,确定为新的主力合约,每日收盘结算后判断,于下一交易日进行指向切换,日内不会进行主力合约的切换。 3. 按照第二条规定产生新的主力合约之前,维持原来的主力合约不变。 4. 若出现当前主力合约的成交量和持仓量都不是最大的情况,当前指向合约在下一个交易日必须让出主力合约身份,金融期货新主力指向成交量最大的合约(中金所),商品期货新主力指向持仓量最大的合约(上期所、大商所、郑商所、上期能源)。
3. 次主力连续合约(虚拟合约,由真实合约拼接):交易所.品种名 22
对应次主力连续合约 symbol,如 CFFEX.IF22,CFFEX.IC22
- 次主力连续合约切换规则 1. 每个品种只选出唯一一个次主力合约。 2. 金融期货日成交量第二大、或商品期货日持仓量第二大的合约,确定为新的次主力合约,每日收盘结算后判断,于下一交易日进行指向切换,日内不会进行次主力合约的切换。 3. 按照第二条规定产生新的次主力合约之前,维持原来的次主力合约不变。 4. 若金融期货出现当前次主力合约的成交量、或商品期货出现当前次主力合约持仓量不是第二大的情况,当前指向合约在下一个交易日必须让出次主力合约身份,金融期货新主力指向成交量第二大的合约(中金所),商品期货新主力指向持仓量第二大的合约(上期所、大商所、郑商所、上期能源)。
4. 月份连续合约(虚拟合约,由真实合约拼接):交易所.品种名 月份排序
对应月份连续合约 symbol,如 SHFE.RB00,SHFE.RB01,...,SHFE.RB04(同一品种最多有最近 5 个月的月份连续合约)
- 月份连续合约的切换规则 1. 该品种上市合约按交割月份排序 2. 00 对应最近月份合约,01 对应其后一个合约,02 对应再后一个合约,依次类推 3. 合约最后交易日盘后切换。
5. 当start_date 小于或等于 end_date
时取指定时间段的数据,当start_date > end_date
时返回报错。
# *fut_get_contract_info
- 查询期货标准品种信息
查询交易所披露的期货标准品种的合约规格/合约文本
函数原型:
fut_get_contract_info(product_codes, df=False)
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
product_codes | str or list | 品种代码 | Y | 无 | 必填,交易品种代码,如:IF,AL 多个代码可用 , 采用 str 格式时,多个标的代码必须用英文逗号分割,如:'IF, AL' 采用 list 格式时,多个标的代码示例:['IF', 'AL'] |
df | bool | 返回格式 | N | False | 是否返回 dataframe 格式,默认False 返回字典格式,返回 list[dict],列表每项的 dict 的 key 值见返回字段名 |
返回值:dataframe
或list[dict]
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
product_name | str | 交易品种 | 交易品种名称,如:沪深 300 指数,铝 |
product_code | str | 交易代码 | 交易品种代码,如:IF,AL |
underlying_symbol | str | 合约标的 | 如:SHSE.000300, AL |
multiplier | int | 合约乘数 | 如:200,5 |
trade_unit | str | 交易单位 | 如:每点人民币 200 元,5 吨/手 |
price_unit | str | 报价单位 | 如:指数点,元(人民币)/吨 |
price_tick | str | 价格最小变动单位 | 如:0.2 点,5 元/吨 |
delivery_month | str | 合约月份 | 如:"当月、下月及随后两个季月","1 ~ 12 月" |
trade_time | str | 交易时间 | 如:"9:30-11:30,13:00-15:00", "上午 9:00-11:30 ,下午 1:30-3:00 和交易所规定的其他交易时间" |
price_range | str | 涨跌停板幅度 | 每日价格最大波动限制,如:"上一个交易日结算价的 ±10%", "上一交易日结算价 ±3%" |
minimum_margin | str | 最低交易保证金 | 交易所公布的最低保证金比例,如:"合约价值的 8%","合约价值的 5%" |
last_trade_date | str | 最后交易日 | 如:"合约到期月份的第三个星期五,遇国家法定假日顺延", "合约月份的 15 日(遇国家法定节假日顺延,春节月份等最后交易日交易所可另行调整并通知)" |
delivery_date | str | 交割日 | 如:"同最后交易日","最后交易日后连续三个工作日" |
delivery_method | str | 交割方式 | 如:"现金交割","实物交割" |
exchange_name | str | 交易所名称 | 上市交易所名称,如:"中国金融期货交易所","上海期货交易所" |
exchange | str | 交易所代码 | 交易品种名称,如:"沪深 300 指数","铝" |
示例:
fut_get_contract_info(product_codes='IF')
输出:
[{'product_name': '沪深300股指期货', 'product_code': 'IF', 'underlying_symbol': 'SHSE.000300', 'multiplier': 300, 'trade_unit': '每点300元', 'price_unit': '指数点', 'price_tick': '0.2点', 'delivery_month': '当月、下月及随后两个季月', 'trade_time': '上午9:30-11:30,下午13:00-15:00', 'price_range': '上一个交易日结算价的±10%', 'minimum_margin': '合约价值的8%', 'last_trade_date': '合约到期月份的第三个周五,遇国家法定假日顺延', 'delivery_date': '同最后交易日', 'delivery_method': '现金交割', 'exchange_name': '中国金融期货交易所', 'exchange': 'CFFEX'}]
# *fut_get_transaction_ranking
- 查询期货每日成交持仓排名
查询期货合约每日成交量/持买单量/持卖单量排名
函数原型:
fut_get_transaction_ranking(symbol, trade_date="", indicator="")
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
symbol | str | 期货合约代码 | Y | 无 | 必填,期货真实合约代码,使用时参考symbol (opens new window) |
trade_date | str | 交易日期 | N | "" | 交易日期,%Y-%m-%d 格式,默认"" 表示最新交易日 |
indicator | str | 排名指标 | N | "" | 用于排名的依据,可选: 'volume'-成交量排名(默认"" 表示成交量排名) 'long'-持买单量排名 'short'-持卖单量排名 |
返回值:dataframe
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
symbol | str | 期货合约代码 | 查询排名的期货合约代码 |
trade_date | datetime.datetime | 交易日期 | 查询的交易日期 |
member_name | str | 期货公司会员简称 | |
indicator_number | int | 排名指标数值 | 单位:手。数值视乎指定的排名指标 indicator,分别为: 成交量(indicator='volume' 时) 持买单量(indicator='long' 时) 持卖单量(indicator='short' 时) |
indicator_change | int | 排名指标比上交易日增减 | 单位:手 |
ranking | int | 排名名次 | 指标具体排名 |
ranking_change | float | 排名名次比上交易日增减 | 单位:名次 |
示例:
fut_get_transaction_ranking(symbol='SHFE.ag2212', trade_date="2022-10-10", indicator='volume')
输出:
symbol trade_date member_name indicator_number indicator_change ranking ranking_change
0 SHFE.ag2212 2022-10-10 海通期货 90561 -19632 1 2.0
1 SHFE.ag2212 2022-10-10 东证期货 89284 -74685 2 -1.0
2 SHFE.ag2212 2022-10-10 中信期货 64196 -77571 3 -1.0
3 SHFE.ag2212 2022-10-10 国泰君安 36535 -40570 4 1.0
4 SHFE.ag2212 2022-10-10 新湖期货 22090 -16824 5 1.0
5 SHFE.ag2212 2022-10-10 华闻期货 16531 826 6 10.0
6 SHFE.ag2212 2022-10-10 方正中期 14787 -17407 7 0.0
7 SHFE.ag2212 2022-10-10 华泰期货 14315 -71181 8 -4.0
8 SHFE.ag2212 2022-10-10 银河期货 13333 -9714 9 1.0
9 SHFE.ag2212 2022-10-10 中泰期货 11832 -6380 10 4.0
10 SHFE.ag2212 2022-10-10 国投安信 11041 -10375 11 2.0
11 SHFE.ag2212 2022-10-10 光大期货 9917 -14549 12 -3.0
12 SHFE.ag2212 2022-10-10 中信建投 9653 -12342 13 -2.0
13 SHFE.ag2212 2022-10-10 广发期货 8440 -9462 14 1.0
14 SHFE.ag2212 2022-10-10 东方财富 8166 -21117 15 -7.0
15 SHFE.ag2212 2022-10-10 南华期货 7096 -3422 16 3.0
16 SHFE.ag2212 2022-10-10 平安期货 6835 -8312 17 0.0
17 SHFE.ag2212 2022-10-10 浙商期货 6610 -2008 18 NaN
18 SHFE.ag2212 2022-10-10 中辉期货 6569 -3830 19 1.0
19 SHFE.ag2212 2022-10-10 永安期货 6351 -741 20 NaN
注意:
1. 当上一交易日没有进入前 20 名,ranking_change
返回 NaN.
2. 数据日频更新,当日更新前返回前一交易日的排名数据,约在交易日 20 点左右更新当日数据。
# *fut_get_warehouse_receipt
- 查询期货仓单数据
查询交易所在交易日期货品种的注册仓单数量、有效预报
- 期货仓单是指由期货交易所指定交割仓库,按照期货交易所指定的程序,签发的符合合约规定质量的实物提货凭证。记录了交易所所有期货实物的库存情况以及变更情况。
函数原型:
fut_get_warehouse_receipt(product_code, start_date="", end_date="")
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
product_code | str | 品种代码 | Y | 无 | 必填,只能填写一个交易品种代码,如:AL |
start_date | str | 开始时间 | N | "" | 开始时间日期,%Y-%m-%d 格式,默认"" 表示最新时间 |
end_date | str | 结束时间 | N | "" | 结束时间日期,%Y-%m-%d 格式,默认"" 表示最新时间 |
返回值:dataframe
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
trade_date | datetime.datetime | 交易日期 | |
exchange | str | 期货交易所代码 | 期货品种对应交易所代码,如:CFFEX,SHFE |
exchange_name | str | 期货交易所名称 | 上市交易所名称,如:中国金融期货交易所,上海期货交易所 |
product_code | str | 交易代码 | 交易品种代码,如:IF,AL |
product_name | str | 交易品种 | 交易品种名称,如:沪深 300 指数,铝 |
on_warrant | int | 注册仓单数量 | |
warrant_unit | str | 仓单单位 | |
warehouse | str | 仓库名称 | |
future_inventory | int | 期货库存 | |
future_inventory_change | int | 期货库存增减 | |
future_capacity | int | 可用库容量 | |
future_capacity_change | int | 可用库容量增减 | |
inventory_subtotal | int | 库存小计 | |
inventory_subtotal_change | int | 库存小计增减 | |
effective_forecast | int | 有效预报 | 仅支持郑商所品种 |
premium | int | 升贴水 |
示例:
fut_get_warehouse_receipt(product_code='AL')
输出:
trade_date exchange exchange_name product_code product_name on_warrant warrant_unit warehouse future_inventory future_inventory_change warehouse_capacity warehouse_capacity_change inventory_subtotal inventory_subtotal_change effective_forecast premium
0 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 上海:上海裕强 0 0 0 0 0 0 0 0
1 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 上海:上港物流 3965 -76 0 0 0 0 0 0
2 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 上海:中储临港(保税) 0 0 0 0 0 0 0 0
3 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 上海:中储吴淞 0 0 0 0 0 0 0 0
4 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 上海:中储大场 0 0 0 0 0 0 0 0
5 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 上海:全胜物流 0 0 0 0 0 0 0 0
6 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 上海:合计 3965 -76 0 0 0 0 0 0
7 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 上海:国储外高桥 0 0 0 0 0 0 0 0
8 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 上海:国储天威 0 0 0 0 0 0 0 0
9 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 上海:外运华东张华浜 0 0 0 0 0 0 0 0
10 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 上海:添马行松江 0 0 0 0 0 0 0 0
11 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 上海:裕强闵行 0 0 0 0 0 0 0 0
12 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 保税商品总计 0 0 0 0 0 0 0 0
13 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 天津:中储陆通 0 0 0 0 0 0 0 0
14 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 天津:全程物流 0 0 0 0 0 0 0 0
15 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 天津:合计 0 0 0 0 0 0 0 0
16 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 完税商品总计 109147 -2851 0 0 0 0 0 0
17 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 山东:合计 12379 0 0 0 0 0 0 0
18 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 山东:山东恒欣 7936 0 0 0 0 0 0 0
19 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 山东:山东高通临沂 3028 0 0 0 0 0 0 0
20 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 山东:山东高通泰安 1415 0 0 0 0 0 0 0
21 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 广东:中储晟世 0 -551 0 0 0 0 0 0
22 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 广东:南储仓储 0 0 0 0 0 0 0 0
23 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 广东:合计 0 -873 0 0 0 0 0 0
24 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 广东:广东炬申 0 -322 0 0 0 0 0 0
25 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 广东:广储830 0 0 0 0 0 0 0 0
26 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 总计 109147 -2851 0 0 0 0 0 0
27 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 江苏:上港物流苏州 0 0 0 0 0 0 0 0
28 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 江苏:中储无锡 49760 0 0 0 0 0 0 0
29 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 江苏:五矿无锡 18343 -799 0 0 0 0 0 0
30 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 江苏:合计 69030 -799 0 0 0 0 0 0
31 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 江苏:国能物流常州 0 0 0 0 0 0 0 0
32 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 江苏:常州融达 198 0 0 0 0 0 0 0
33 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 江苏:无锡国联 704 0 0 0 0 0 0 0
34 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 江苏:添马行物流 0 0 0 0 0 0 0 0
35 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 江苏:百金汇物流 25 0 0 0 0 0 0 0
36 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 河南:中储洛阳 0 0 0 0 0 0 0 0
37 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 河南:中部陆港 4199 0 0 0 0 0 0 0
38 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 河南:合计 7585 -1103 0 0 0 0 0 0
39 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 河南:河南国储431 2885 -1103 0 0 0 0 0 0
40 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 河南:河南国储巩义 501 0 0 0 0 0 0 0
41 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 河南:河南国储洛阳 0 0 0 0 0 0 0 0
42 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 浙江:合计 15263 0 0 0 0 0 0 0
43 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 浙江:国储837处 0 0 0 0 0 0 0 0
44 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 浙江:宁波九龙仓 15112 0 0 0 0 0 0 0
45 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 浙江:浙江南湖 0 0 0 0 0 0 0 0
46 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 浙江:浙江田川 151 0 0 0 0 0 0 0
47 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 甘肃:甘肃国通 825 0 0 0 0 0 0 0
48 2022-10-20 SHFE 上海期货交易所 AL 铝 0 吨 重庆:重庆中集 100 0 0 0 0 0 0 0
注意:
1. 支持郑商所、大商所、上期所和上海国际能源交易中心的期货品种。 2. 注册仓单数量每日更新,其余数据上期所一周一披露,郑商所一天一披露。
3. 当start_date
小于或等于 end_date
时, 取指定时间段的数据,当 start_date
> end_date
时, 返回报错。
# 基金数据函数
python 基金数据 API 包含在 gm3.0.145 版本及以上版本
注:*代表增值数据接口,需选择掘金特定版本才可使用,详见版本定义https://www.myquant.cn/version (opens new window)中增值数据包的描述
# *fnd_get_etf_constituents
- 查询 ETF 最新成分股
查询某只 ETF 在最新交易日的成分股持有情况和现金替代信息
函数原型:
fnd_get_etf_constituents(etf)
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
etf | str | ETF 代码 | Y | 无 | 必填,只能输入一个 ETF 的symbol (opens new window),如:'SZSE.159919' |
返回值:dataframe
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
etf | str | ETF 代码 | |
etf_name | str | ETF 名称 | |
trade_date | datetime.datetime | 交易日期 | %Y-%m-%d 格式 |
symbol | str | 成分股代码 | exchange.sec_id |
amount | str | 股票数量 | T 日内容中最小申购赎回单位所对应的各成分股数量 |
cash_subs_type | str | 现金替代标志 | 基金管理人对于每一只成分股使用现金替代情况的态度 1-禁止 2-允许 3-必须 4-退补 |
cash_subs_sum | float | 固定替代金额 | 单位:人民币元 |
cash_premium_rate | float | 现金替代溢价比例 | 单位:% |
示例:
fnd_get_etf_constituents(etf='SHSE.510050')
输出:
etf etf_name trade_date symbol amount cash_subs_type cash_subs_sum cash_premium_rate
0 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.601688 2100.0 禁止 0.0 10.0
1 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.600809 200.0 禁止 0.0 10.0
2 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.600893 500.0 禁止 0.0 10.0
3 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.601398 12700.0 禁止 0.0 10.0
4 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.601166 5300.0 禁止 0.0 10.0
5 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.600196 500.0 禁止 0.0 10.0
6 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.600031 2200.0 禁止 0.0 10.0
7 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.600585 900.0 禁止 0.0 10.0
8 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.600588 600.0 禁止 0.0 10.0
9 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.600900 4100.0 禁止 0.0 10.0
10 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.601288 11600.0 禁止 0.0 10.0
11 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.601633 400.0 禁止 0.0 10.0
12 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.601899 5200.0 禁止 0.0 10.0
13 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.600519 200.0 禁止 0.0 10.0
14 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.600010 8300.0 禁止 0.0 10.0
15 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.600028 4900.0 禁止 0.0 10.0
16 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.600030 3500.0 禁止 0.0 10.0
17 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.600036 4500.0 禁止 0.0 10.0
18 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.600276 1600.0 禁止 0.0 10.0
19 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.600436 100.0 禁止 0.0 10.0
20 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.600309 600.0 禁止 0.0 10.0
21 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.600346 800.0 禁止 0.0 10.0
22 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.600104 1700.0 禁止 0.0 10.0
23 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.600111 800.0 禁止 0.0 10.0
24 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.600690 1400.0 禁止 0.0 10.0
25 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.600745 300.0 禁止 0.0 10.0
26 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.600837 3500.0 禁止 0.0 10.0
27 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.601628 600.0 禁止 0.0 10.0
28 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.601318 4000.0 禁止 0.0 10.0
29 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.601601 1200.0 禁止 0.0 10.0
30 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.600887 1900.0 禁止 0.0 10.0
31 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.601857 3500.0 禁止 0.0 10.0
32 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.600048 2600.0 禁止 0.0 10.0
33 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.601668 7600.0 禁止 0.0 10.0
34 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.601888 400.0 禁止 0.0 10.0
35 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.601012 2200.0 禁止 0.0 10.0
36 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.600570 500.0 禁止 0.0 10.0
37 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.600438 1000.0 禁止 0.0 10.0
38 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.601088 1200.0 禁止 0.0 10.0
39 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.601919 2300.0 禁止 0.0 10.0
40 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.603288 500.0 禁止 0.0 10.0
41 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.601211 1600.0 禁止 0.0 10.0
42 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.603986 200.0 禁止 0.0 10.0
43 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.603799 500.0 禁止 0.0 10.0
44 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.603501 300.0 禁止 0.0 10.0
45 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.601066 500.0 禁止 0.0 10.0
46 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.603259 700.0 禁止 0.0 10.0
47 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.600905 3100.0 禁止 0.0 10.0
48 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.601995 200.0 禁止 0.0 10.0
49 SHSE.510050 华夏上证50ETF 2022-10-20 SHSE.601728 2000.0 禁止 0.0 10.0
注意:
1. 只返回上交所、深交所的成分股,不提供其余交易所的成分股票。
# *fnd_get_portfolio
- 查询基金资产组合
查询某只基金在指定日期的基金资产组合(股票持仓、债券持仓等)
函数原型:
fnd_get_portfolio(fund, report_type, portfolio_type, start_date="", end_date="")
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
fund | str | 基金代码 | Y | 无 | 必填,只能输入一个基金的symbol (opens new window),如:'SZSE.161133' |
report_type | int | 报表类别 | Y | 无 | 公布持仓所在的报表类别,必填,可选: 1:第一季度 2:第二季度 3:第三季报 4:第四季度 6:中报 9:前三季报 12:年报 |
portfolio_type | str | 投资组合类型 | Y | 无 | 必填,可选以下其中一种组合: 'stk' - 股票投资组合 'bnd' - 债券投资组合 'fnd' - 基金投资组合 |
start_date | str | 开始时间 | N | "" | 开始时间日期(公告日),%Y-%m-%d 格式,默认"" 表示最新时间 |
end_date | str | 结束时间 | N | "" | 结束时间日期(公告日),%Y-%m-%d 格式,默认"" 表示最新时间 |
返回值:dataframe
portfolio_type='stk'
时,返回基金持有的股票投资组合信息 portfolio_stock
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
fund | str | 基金代码 | 查询股票资产组合的基金代码 |
fund_name | str | 基金名称 | |
pub_date | datetime.datetime | 公告日期 | 在指定时间段内的公告日期,%Y-%m-%d 格式 |
period_end | datetime.datetime | 报告期 | 持仓截止日期,%Y-%m-%d 格式 |
symbol | str | 股票代码 | exchange.sec_id |
sec_name | str | 股票名称 | |
hold_share | float | 持仓股数 | |
hold_value | float | 持仓市值 | |
nv_rate | float | 占净值比例 | 单位:% |
ttl_share_rate | float | 占总股本比例 | 单位:% |
clrc_share_rate | float | 占流通股比例 | 单位:% |
portfolio_type='bnd'
时,返回基金持有的债券投资组合信息 portfolio_bond
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
fund | str | 基金代码 | 查询债券资产组合的基金代码 |
fund_name | str | 基金名称 | |
pub_date | datetime.datetime | 公告日期 | 在指定时间段内的公告日期,%Y-%m-%d 格式 |
period_end | datetime.datetime | 报告期 | 持仓截止日期,%Y-%m-%d 格式 |
symbol | str | 债券代码 | exchange.sec_id |
sec_name | str | 债券名称 | |
hold_share | float | 持仓数量 | |
hold_value | float | 持仓市值 | |
nv_rate | float | 占净值比例 | 单位:% |
portfolio_type='fnd'
时,返回基金持有的基金投资组合信息 portfolio_fund
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
fund | str | 基金代码 | 查询基金资产组合的基金代码 |
fund_name | str | 基金名称 | |
pub_date | datetime.datetime | 公告日期 | 在指定时间段内的公告日期,%Y-%m-%d 格式 |
period_end | datetime.datetime | 报告期 | 持仓截止日期,%Y-%m-%d 格式 |
symbol | str | 持仓基金代码 | exchange.sec_id |
sec_name | str | 持仓基金名称 | |
hold_share | float | 持有份额 | |
hold_value | float | 期末市值 | |
nv_rate | float | 占净值比例 | 单位:% |
示例:
fnd_get_portfolio(fund='SHSE.510300', start_date='2022-01-01', end_date='2022-10-01', report_type=1, portfolio_type='stk')
输出:
fund fund_name pub_date period_end symbol sec_name hold_share hold_value nv_rate ttl_share_rate circ_share_rate
0 SHSE.510300 华泰柏瑞沪深300ETF 2022-04-22 2022-03-31 SHSE.600519 贵州茅台 1.4424e+06 2.4794e+09 5.54 5.6773 0.1148
1 SHSE.510300 华泰柏瑞沪深300ETF 2022-04-22 2022-03-31 SHSE.600900 长江电力 2.6245e+07 5.7738e+08 1.29 1.3221 0.1154
2 SHSE.510300 华泰柏瑞沪深300ETF 2022-04-22 2022-03-31 SZSE.000333 美的集团 1.1271e+07 6.4247e+08 1.44 1.4711 0.1648
3 SHSE.510300 华泰柏瑞沪深300ETF 2022-04-22 2022-03-31 SZSE.301102 兆讯传媒 6.4140e+03 1.9947e+05 0.00 0.0005 0.0149
4 SHSE.510300 华泰柏瑞沪深300ETF 2022-04-22 2022-03-31 SZSE.301088 戎美股份 7.0360e+03 1.3434e+05 0.00 0.0003 0.0134
5 SHSE.510300 华泰柏瑞沪深300ETF 2022-04-22 2022-03-31 SHSE.600036 招商银行 2.8572e+07 1.3372e+09 2.99 3.0618 0.1385
6 SHSE.510300 华泰柏瑞沪深300ETF 2022-04-22 2022-03-31 SZSE.300750 宁德时代 3.2106e+06 1.6448e+09 3.68 3.7661 0.1575
7 SHSE.510300 华泰柏瑞沪深300ETF 2022-04-22 2022-03-31 SHSE.688223 晶科能源 2.1300e+05 2.1620e+06 0.00 0.0050 0.0161
8 SHSE.510300 华泰柏瑞沪深300ETF 2022-04-22 2022-03-31 SHSE.601166 兴业银行 3.3444e+07 6.9129e+08 1.55 1.5829 0.1705
9 SHSE.510300 华泰柏瑞沪深300ETF 2022-04-22 2022-03-31 SHSE.601318 中国平安 2.4996e+07 1.2110e+09 2.71 2.7730 0.2307
10 SHSE.510300 华泰柏瑞沪深300ETF 2022-04-22 2022-03-31 SHSE.688282 理工导航 3.1850e+03 1.5119e+05 0.00 0.0003 0.0162
11 SHSE.510300 华泰柏瑞沪深300ETF 2022-04-22 2022-03-31 SHSE.603259 药明康德 4.7151e+06 5.2989e+08 1.18 1.2133 0.1851
12 SHSE.510300 华泰柏瑞沪深300ETF 2022-04-22 2022-03-31 SHSE.688234 天岳先进 6.7590e+03 3.4451e+05 0.00 0.0008 0.0200
13 SHSE.510300 华泰柏瑞沪深300ETF 2022-04-22 2022-03-31 SHSE.601012 隆基股份 9.9703e+06 7.1976e+08 1.61 1.6481 0.1842
14 SHSE.510300 华泰柏瑞沪深300ETF 2022-04-22 2022-03-31 SZSE.000858 五粮液 4.4720e+06 6.9342e+08 1.55 1.5878 0.1152
注意:
1. 仅提供场内基金(ETF、LOF、FOF-LOF)的资产组合数据。
2. 当start_date == end_date
时,取离end_date
最近公告日期的一条数据,
当start_dat < end_date
时,取指定时间段的数据,
当start_date > end_date
时,返回报错。
# *fnd_get_net_value
- 查询基金净值数据
查询某只基金在指定时间段的基金净值数据
函数原型:
fnd_get_net_value(fund, start_date="", end_date="")
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
fund | str | 基金代码 | Y | 无 | 必填,只能输入一个基金的symbol (opens new window),如:'SZSE.159919' |
start_date | str | 开始时间 | N | "" | 开始时间日期,%Y-%m-%d 格式,默认"" 表示最新时间 |
end_date | str | 结束时间 | N | "" | 结束时间日期,%Y-%m-%d 格式,默认"" 表示最新时间 |
返回值:dataframe
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
fund | str | 基金代码 | 查询净值的基金代码 |
trade_date | datetime.datetime | 交易日期 | 指定时间段内的交易日期,%Y-%m-%d 格式 |
unit_nv | float | 单位净值 | T 日单位净值是每个基金份额截至 T 日的净值(也是申赎的价格) |
unit_nv_accu | float | 累计单位净值 | T 日累计净值是指,在基金成立之初投资该基金 1 元钱,在现金分红方式下,截至 T 日账户的净值 |
unit_nv_adj | float | 复权单位净值 | T 日复权净值是指,在基金成立之初投资该基金 1 元钱,在分红再投资方式下,截至 T 日账户的净值 |
示例:
fnd_get_net_value(fund='SHSE.510300')
输出:
fund trade_date unit_nv unit_nv_accu unit_nv_adj
0 SHSE.510300 2022-10-19 3.84 1.6233 1.6579
注意:
1. 仅提供场内基金(ETF、LOF、FOF-LOF)的净值数据。
2. 当start_date == end_date
时,取离end_date
最近日期的一条数据,
当start_date < end_date
时,取指定时间段的数据,
当start_date > end_date
时,返回报错。
# *fnd_get_adj_factor
- 查询基金复权因子
查询某只基金在一段时间内的复权因子
函数原型:
fnd_get_adj_factor(fund, start_date="", end_date="", base_date="")
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
fund | str | 基金代码 | Y | 无 | 必填,只能输入一个基金的symbol (opens new window),如:'SZSE.159919' |
start_date | str | 开始时间 | N | "" | 开始时间交易日期,%Y-%m-%d 格式, 默认"" 表示最新时间 |
end_date | str | 结束时间 | N | "" | 结束时间交易日期,%Y-%m-%d 格式, 默认"" 表示最新时间 |
base_date | str | 复权基准日 | N | "" | 前复权的基准日,%Y-%m-%d 格式, 默认"" 表示最新时间 |
返回值:dataframe
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
trade_date | datetime.datetime | 交易日期 | 开始时间至结束时间的交易日期 |
adj_factor_bwd_acc | float | 当日累计后复权因子 | 除权日,T 日累计后复权因子=(T-1 日单位净值/(T-1 日单位净值-本次单位分红))×T-1 日累计后复权因子 × 折算比例 其余情况,T 日累计后复权因子=T-1 日累计后复权因子 |
adj_factor_fwd | float | 当日前复权因子 | T 日前复权因子=T 日累计后复权因子/复权基准日累计后复权因子 |
示例:
fnd_get_adj_factor(fund='SZSE.161725', start_date="2021-12-01", end_date="2022-01-01", base_date="")
输出:
trade_date adj_factor_bwd_acc adj_factor_fwd
0 2021-12-01 3.8359 0.9484
1 2021-12-02 3.8359 0.9484
2 2021-12-03 3.8359 0.9484
3 2021-12-06 3.8359 0.9484
4 2021-12-07 3.8359 0.9484
5 2021-12-08 3.8359 0.9484
6 2021-12-09 3.9113 0.9671
7 2021-12-10 3.9113 0.9671
8 2021-12-13 3.9113 0.9671
9 2021-12-14 3.9113 0.9671
10 2021-12-15 3.9113 0.9671
11 2021-12-16 3.9113 0.9671
12 2021-12-17 3.9113 0.9671
13 2021-12-20 3.9113 0.9671
14 2021-12-21 3.9113 0.9671
15 2021-12-22 3.9113 0.9671
16 2021-12-23 3.9113 0.9671
17 2021-12-24 3.9113 0.9671
18 2021-12-27 3.9113 0.9671
19 2021-12-28 3.9113 0.9671
20 2021-12-29 3.9113 0.9671
21 2021-12-30 3.9113 0.9671
22 2021-12-31 4.0445 1.0000
注意:
1. T+1 日复权因子会二次更新,分别在 T 日 19:00 和 T+1 日 19:00 更新。仅提供场内基金(ETF、LOF、FOF-LOF)的复权因子数据。
2. 复权价格计算:
T日后复权价格 = T日不复权价格 * T日累计后复权因子
T日前复权价格 = T日不复权价格 * T日前复权因子
3. 上市首日后复权因子合累计后复权因子为 1,最近一次除权除息日后的交易日前复权因子为 1
4. 前复权基准日base_date
应不早于设定的结束日期end_date
,不晚于最新交易日。若设定的基准日早于end_date
则等同于end_date
,若设定的基准日晚于最新交易日则等同于最新交易日。
5. 当start_date
小于或等于 end_date
时取指定时间段的数据,当start_date
> end_date
时返回报错.
# *fnd_get_dividend
- 查询基金分红信息
查询指定基金在一段时间内的分红信息
函数原型:
fnd_get_dividend(fund, start_date, end_date)
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
fund | str | 基金代码 | Y | 无 | 必填,只能输入一个基金的symbol (opens new window),如:'SZSE.159919' |
start_date | str | 开始时间 | Y | 无 | 必填,开始时间日期(场内除息日),%Y-%m-%d 格式 |
end_date | str | 结束时间 | Y | 无 | 必填,结束时间日期(场内除息日),%Y-%m-%d 格式 |
返回值:dataframe
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
fund | str | 基金代码 | 查询分红信息的基金代码 |
pub_date | str | 公告日 | %Y-%m-%d 格式 |
event_progress | str | 方案进度 | 正式,预案 |
dvd_ratio | float | 派息比例 | 10:X,每 10 份税前分红 |
dvd_base_date | str | 分配收益基准日 | %Y-%m-%d 格式 |
rt_reg_date | str | 权益登记日 | %Y-%m-%d 格式 |
ex_act_date | str | 实际除息日 | %Y-%m-%d 格式 |
ex_dvd_date | str | 场内除息日 | %Y-%m-%d 格式 |
pay_dvd_date | str | 场内红利发放日 | %Y-%m-%d 格式 |
trans_dvd_date | str | 场内红利款账户划出日 | %Y-%m-%d 格式 |
reinvest_cfm_date | str | 红利再投资确定日 | %Y-%m-%d 格式 |
ri_shr_arr_date | str | 红利再投资份额到账日 | %Y-%m-%d 格式 |
ri_shr_rdm_date | str | 红利再投资赎回起始日 | %Y-%m-%d 格式 |
earn_distr | float | 可分配收益 | 单位:元 |
cash_pay | float | 本期实际红利发放 | 单位:元 |
base_unit_nv | float | 基准日基金份额净值 | 单位:元 |
示例:
fnd_get_dividend(fund='SZSE.161725', start_date="2000-01-01", end_date="2022-09-07")
输出:
fund pub_date event_progress dvd_ratio dvd_base_date rt_reg_date ex_act_date ex_dvd_date pay_dvd_date trans_dvd_date reinvest_cfm_date ri_shr_arr_date ri_shr_rdm_date earn_distr cash_pay base_unit_nv
0 SZSE.161725 2021-09-02 正式 0.12 2021-08-27 2021-09-07 2021-09-07 2021-09-08 2021-09-09 2021-09-09 2021-09-07 2021-09-08 2021-09-09 3.7574e+10 0.0 1.1893
1 SZSE.161725 2021-12-07 正式 0.28 2021-12-02 2021-12-09 2021-12-09 2021-12-10 2021-12-13 2021-12-13 2021-12-09 2021-12-10 2021-12-13 3.3549e+10 0.0 1.3696
2 SZSE.161725 2021-12-29 正式 0.45 2021-12-24 2021-12-31 2021-12-31 2022-01-04 2022-01-05 2022-01-05 2021-12-31 2022-01-04 2022-01-05 3.0723e+10 0.0 1.4178
注意:
1. 仅提供场内基金(ETF、LOF、FOF-LOF)的复权因子数据。
2. start_date 小于或等于 end_date
时取指定时间段的数据,当start_date > end_date
时返回报错。
# *fnd_get_split
- 查询基金拆分折算信息
查询指定基金在一段时间内的拆分折算信息
函数原型:
fnd_get_split(fund, start_date, end_date)
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
fund | str | 基金代码 | Y | 无 | 必填,只能输入一个基金的symbol (opens new window),如:'SZSE.159919' |
start_date | str | 开始时间 | Y | 无 | 必填,开始时间日期(场内除权日),%Y-%m-%d 格式 |
end_date | str | 结束时间 | Y | 无 | 必填,结束时间日期(场内除权日),%Y-%m-%d 格式 |
返回值:dataframe
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
fund | str | 基金代码 | 查询分红信息的基金代码 |
pub_date | str | 公告日 | %Y-%m-%d 格式 |
split_type | str | 拆分折算类型 | 折算,拆分,特殊折算 |
split_ratio | float | 拆分折算比例 | 10:X |
base_date | str | 拆分折算基准日 | %Y-%m-%d 格式 |
ex_date | str | 拆分折算场内除权日 | %Y-%m-%d 格式 |
share_change_reg_date | str | 基金份额变更登记日 | %Y-%m-%d 格式 |
nv_split_pub_date | str | 基金披露净值拆分折算日 | %Y-%m-%d 格式 |
rt_reg_date | str | 权益登记日 | %Y-%m-%d 格式 |
ex_date_close | str | 场内除权日(收盘价) | %Y-%m-%d 格式 |
示例:
fnd_get_split(fund='SZSE.161725', start_date="2000-01-01", end_date="2022-09-07")
输出:
fund pub_date split_type split_ratio base_date ex_date share_change_reg_date nv_split_pub_date rt_reg_date ex_date_close
0 SZSE.161725 2015-12-17 折算 10.1801 2015-12-15 2015-12-17 2015-12-16 2015-12-15 None 2015-12-17
1 SZSE.161725 2016-12-19 折算 10.2300 2016-12-15 2016-12-19 2016-12-16 2016-12-15 None 2016-12-19
2 SZSE.161725 2017-09-28 折算 14.9420 2017-09-26 2017-09-28 2017-09-27 2017-09-26 None 2017-09-28
3 SZSE.161725 2017-12-19 折算 10.0445 2017-12-15 2017-12-19 2017-12-18 2017-12-15 None 2017-12-19
4 SZSE.161725 2018-12-19 折算 10.2547 2018-12-17 2018-12-19 2018-12-18 2018-12-17 None 2018-12-19
5 SZSE.161725 2019-07-04 折算 15.5686 2019-07-02 2019-07-04 2019-07-03 2019-07-02 None 2019-07-04
6 SZSE.161725 2019-12-18 折算 10.1067 2019-12-16 2019-12-18 2019-12-17 2019-12-16 None 2019-12-18
7 SZSE.161725 2020-08-28 折算 14.9817 2020-08-26 2020-08-28 2020-08-27 2020-08-26 None 2020-08-28
8 SZSE.161725 2020-12-17 折算 10.0544 2020-12-15 2020-12-17 2020-12-16 2020-12-15 None 2020-12-17
注意:
1. 仅提供场内基金(ETF、LOF、FOF-LOF)的复权因子数据。
2. start_date 小于或等于 end_date
时取指定时间段的数据,当start_date > end_date
时返回报错。
# 可转债数据函数
python 可转债数据 API 包含在 gm3.0.145 版本及以上版本
注:*代表增值数据接口,需选择掘金特定版本才可使用,详见版本定义https://www.myquant.cn/version (opens new window)中增值数据包的描述
# *bnd_get_conversion_price
- 查询可转债转股价变动信息
查询可转债一段时间的转股价变动和转股结果
函数原型:
bnd_get_conversion_price(symbol, start_date="", end_date="")
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
symbol | str | 可转债代码 | Y | 无 | 必填,只能输入一个可转债的symbol (opens new window) |
start_date | str | 开始时间 | N | "" | 开始时间日期(转股价格生效日),%Y-%m-%d 格式, 默认"" 表示最新时间 |
end_date | str | 结束时间 | N | "" | 结束时间日期(转股价格生效日),%Y-%m-%d 格式, 默认"" 表示最新时间 |
返回值:dataframe
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
pub_date | datetime.datetime | 公告日期 | %Y-%m-%d 格式 |
effective_date | datetime.datetime | 转股价格生效日期 | %Y-%m-%d 格式 |
execution_date | datetime.datetime | 执行日期 | %Y-%m-%d 格式 |
conversion_price | float | 转股价格 | 单位:元 |
conversion_rate | float | 转股比例 | 单位:% |
conversion_volume | float | 本期转股数 | 单位:股 |
conversion_amount_total | float | 累计转股金额 | 单位:万元,累计转债已经转为股票的金额,累计每次转股金额 |
bond_float_amount_remain | float | 债券流通余额 | 单位:万元 |
event_type | str | 事件类型 | 初始转股价,调整转股价,修正转股价 |
change_reason | str | 转股价变动原因 | 发行,股权激励,股权分置,触发修正条款,其它变动原因,换股吸收合并, 配股,增发,上市,派息,送股,转增股,修正 |
示例:
bnd_get_conversion_price(symbol='SZSE.123015')
输出:
pub_date effective_date execution_date conversion_price conversion_rate conversion_volume conversion_amount_total bond_float_amount_remain event_type change_reason
0 2022-07-29 2022-08-01 2022-08-01 2.38 42.0168 0.0 0.0 0.0 修正转股价 修正,触发修正条款
注意:
1. 本期转股数、累计转股金额、债券流通余额在执行日期收盘后才有数据。
2. 当start_date == end_date
时,取离end_date
最近转股价格生效日期的一条数据,
当start_date < end_date
时,取指定时间段的数据,
当start_date > end_date
时,返回报错。
# *bnd_get_call_info
- 查询可转债赎回信息
查询可转债一段时间内的赎回情况
函数原型:
bnd_get_call_info(symbol, start_date="", end_date="")
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
symbol | str | 可转债代码 | Y | 无 | 必填,只能输入一个可转债的symbol (opens new window) |
start_date | str | 开始时间 | N | "" | 开始时间日期(公告日),%Y-%m-%d 格式, 默认"" 表示最新时间 |
end_date | str | 结束时间 | N | "" | 结束时间日期(公告日),%Y-%m-%d 格式, 默认"" 表示最新时间 |
返回值:dataframe
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
pub_date | datetime.datetime | 公告日 | 赎回公告日,%Y-%m-%d 格式 |
call_date | datetime.datetime | 赎回日 | 发行人行权日(实际),%Y-%m-%d 格式 |
record_date | datetime.datetime | 赎回登记日 | 理论登记日,%Y-%m-%d 格式 |
cash_date | datetime.datetime | 赎回资金到账日 | 投资者赎回款到账日 |
call_type | str | 赎回类型 | 部分赎回,全部赎回 |
call_reason | str | 赎回原因 | 满足赎回条件,强制赎回,到期赎回 |
call_price | float | 赎回价格 | 单位:元/张,每百元面值赎回价格,即债券面值加当期应计利息(含税) |
interest_included | bool | 是否包含利息 | False-不包含,True-包含 |
示例:
bnd_get_call_info(symbol='SHSE.110041')
输出:
pub_date call_date record_date cash_date call_type call_reason call_price interest_included
0 2021-10-18 2021-11-05 2021-11-04 None 全部赎回 强制赎回 101.307 True
注意:
当start_date == end_date
时,取离end_date
最近公告日的一条数据,
当start_date < end_date
时,取指定时间段的数据,
当start_date > end_date
时,返回报错。
# *bnd_get_put_info
- 查询可转债回售信息
查询可转债一段时间内的回售情况
函数原型:
bnd_get_put_info(symbol, start_date="", end_date="")
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
symbol | str | 可转债代码 | Y | 无 | 必填,只能输入一个可转债的symbol (opens new window) |
start_date | str | 开始时间 | N | "" | 开始时间日期(公告日),%Y-%m-%d 格式, 默认"" 表示最新时间 |
end_date | str | 结束时间 | N | "" | 结束时间日期(公告日),%Y-%m-%d 格式, 默认"" 表示最新时间 |
返回值:dataframe
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
pub_date | datetime.datetime | 公告日 | 回售公告日,%Y-%m-%d 格式 |
put_start_date | datetime.datetime | 赎回日 | 投资者行权起始日,%Y-%m-%d 格式 |
put_end_date | datetime.datetime | 赎回登记日 | 投资者行权截止日,%Y-%m-%d 格式 |
cash_date | datetime.datetime | 赎回资金到账日 | 投资者回售款到账日 |
put_reason | str | 回售原因 | 满足回售条款,满足附加回售条款 |
put_price | float | 回售价格 | 单位:元/张,每百元面值回售价格(元),即债券面值加当期应计利息(含税) |
interest_included | bool | 是否包含利息 | False-不包含,True-包含 |
示例:
bnd_get_put_info(symbol='SZSE.128015')
输出:
pub_date put_start_date put_end_date cash_date put_reason put_price interest_included
0 2022-06-09 2022-06-16 2022-06-22 2022-06-29 满足回售条款 100.039 True
注意:
当start_date == end_date
时,取离end_date
最近公告日的一条数据,
当start_date < end_date
时,取指定时间段的数据,
当start_date > end_date
时,返回报错。
# *bnd_get_amount_change
- 查询可转债剩余规模变动
查询可转债转股、回售、赎回等事件导致的剩余规模变动的情况
函数原型:
bnd_get_amount_change(symbol, start_date="", end_date="")
参数:
参数名 | 类型 | 中文名称 | 必填 | 默认值 | 参数用法说明 |
---|---|---|---|---|---|
symbol | str | 可转债代码 | Y | 无 | 必填,只能输入一个可转债的symbol (opens new window) |
start_date | str | 开始时间 | N | "" | 开始时间日期(变动日期),%Y-%m-%d 格式, 默认"" 表示最新时间 |
end_date | str | 结束时间 | N | "" | 结束时间日期(变动日期),%Y-%m-%d 格式, 默认"" 表示最新时间 |
返回值:dataframe
字段名 | 类型 | 中文名称 | 说明 |
---|---|---|---|
pub_date | datetime.datetime | 公告日 | %Y-%m-%d 格式 |
change_date | datetime.datetime | 变动日期 | %Y-%m-%d 格式 |
change_type | str | 变动类型 | 首发,增发,转股,赎回,回售(注销),到期 |
change_amount | float | 本次变动金额 | 单位:万元 |
remain_amount | float | 剩余金额 | 变动后金额,单位:万元 |
示例:
bnd_get_amount_change(symbol='SZSE.123015')
输出:
pub_date change_type change_date change_amount remain_amount
0 2022-10-10 转股 2022-09-30 8.91 10004.18
注意:
1. 变动类型指定为首发时,返回的剩余金额为发行金额。
2. 当start_date == end_date
时,取离end_date
最近变动日期的一条数据,
当start_date < end_date
时,取指定时间段的数据,
当start_date > end_date
时,返回报错。
# 交易函数
# order_volume
- 按指定量委托
函数原型:
order_volume(symbol, volume, side, order_type,position_effect, price=0,order_duration=OrderDuration_Unknown, order_qualifier=OrderQualifier_Unknown,account='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
volume | int | 数量(指股数) |
side | int | 参见订单委托方向 |
order_type | int | 参见订单委托类型 |
position_effect | int | 参见开平仓类型 |
price | float | 价格(限价委托的委托价格,市价委托的保护价) |
order_duration | int | 参见 委托时间属性 |
order_qualifier | int | 参见 委托成交属性 |
account | account id or account name or None | 帐户 |
返回值:
类型 | 说明 |
---|---|
list[order] | 委托对象列表,参见order 对象 |
示例:
order_volume(symbol='SHSE.600000', volume=10000, side=OrderSide_Buy, order_type=OrderType_Limit, position_effect=PositionEffect_Open, price=11)
返回:
[{'strategy_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'cl_ord_id': '000000000', 'symbol': 'SHSE.600000', 'side': 1, 'position_effect': 1, 'position_side': 1, 'order_type': 1, 'status': 3, 'price': 11.0, 'order_style': 1, 'volume': 10000, 'value': 110000.0, 'percent': 5.5e-05, 'target_volume': 10000, 'target_value': 110000.0, 'target_percent': 5.5e-05, 'filled_volume': 10000, 'filled_vwap': 11.0011, 'filled_amount': 110010.99999999999, 'created_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'filled_commission': 11.0011, 'account_name': '', 'order_id': '', 'ex_ord_id': '', 'algo_order_id': '', 'order_business': 0, 'order_duration': 0, 'order_qualifier': 0, 'order_src': 0, 'position_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0}]
注意:
1. 仅支持一个标的代码,若交易代码输入有误,终端会拒绝此单,并显示委托代码不正确
。
2. 若下单数量输入有误,终端会拒绝此单,并显示委托量不正确
。股票买入最小单位为100
,卖出最小单位为1
,如存在不足 100 股的持仓一次性卖出;期货买卖最小单位为1
,向下取整
。
3. 若仓位不足,终端会拒绝此单,显示仓位不足
。平仓时股票默认平昨仓
,期货默认平今仓
。应研究需要,股票也支持卖空操作
。
4. Order_type 优先级高于 price,若指定 OrderType_Market 下市价单,使用价格为最新一个 tick 中的最新价,price 参数失效。则 price 参数失效。若 OrderTpye_Limit 限价单,仿真模式价格错误,终端拒绝此单,显示委托价格错误,回测模式下对价格无限制
。
5. 输入无效参数报NameError
错误,缺少参数报TypeError
错误。
6. 关于side
与position_effect
字段的使用说明
做多(买开):side=OrderSide_Buy ,position_effect=PositionEffect_Open
平仓(卖平):side=OrderSide_Sell ,position_effect=PositionEffect_Close
做空(卖开):side=OrderSide_Sell ,position_effect=PositionEffect_Open
平仓(买平):side= OrderSide_Buy ,position_effect=PositionEffect_Close
# order_value
- 按指定价值委托
函数原型:
order_value(symbol, value, side,order_type, position_effect, price=0, order_duration=OrderDuration_Unknown, order_qualifier=OrderQualifier_Unknown,account='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
value | int | 股票价值 |
side | int | 参见订单委托方向 |
order_type | int | 参见订单委托类型 |
position_effect | int | 参见开平仓类型 |
price | float | 价格(限价委托的委托价格,市价委托的保护价) |
order_duration | int | 参见 委托时间属性 |
order_qualifier | int | 参见 委托成交属性 |
account | account id or account name or None | 帐户 |
返回值:
类型 | 说明 |
---|---|
list[order] | 委托对象列表,参见order 对象 |
示例:
下限价单,以 11 元每股的价格买入价值为 100000 的 SHSE.600000,根据 volume = value / price,计算并取整得到 volume = 9000
order_value(symbol='SHSE.600000', value=100000, price=11, side=OrderSide_Buy, order_type=OrderType_Limit, position_effect=PositionEffect_Open)
返回:
[{'strategy_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'cl_ord_id': '000000000', 'symbol': 'SHSE.600000', 'side': 1, 'position_effect': 1, 'position_side': 1, 'order_type': 1, 'status': 3, 'price': 11.0, 'order_style': 1, 'volume': 9000, 'value': 100000.0, 'percent': 5e-05, 'target_volume': 9000, 'target_value': 99000.0, 'target_percent': 4.95e-05, 'filled_volume': 9000, 'filled_vwap': 11.0011, 'filled_amount': 99009.9, 'created_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'filled_commission': 9.90099, 'account_name': '', 'order_id': '', 'ex_ord_id': '', 'algo_order_id': '', 'order_business': 0, 'order_duration': 0, 'order_qualifier': 0, 'order_src': 0, 'position_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0}]
注意:
1. 仅支持一个标的代码,若交易代码输入有误,终端会拒绝此单,并显示委托代码不正确
。
2. 根据指定价值计算购买标的数量,即value/price
。股票买卖最小单位为100
,不足 100 部分向下取整
,如存在不足 100 的持仓一次性卖出;期货买卖最小单位为1
,向下取整
。
3. 若仓位不足,终端会拒绝此单,显示仓位不足
。平仓时股票默认平昨仓
,期货默认平今仓
。应研究需要,股票也支持卖空操作
。
4. Order_type 优先级高于 price,若指定 OrderType_Market 下市价单,计算使用价格为最新一个 tick 中的最新价,price 参数失效。若 OrderTpye_Limit 限价单,仿真模式价格错误,终端拒绝此单,显示委托价格错误,回测模式下对价格无限制
。
5. 输入无效参数报 NameError 错误,缺少参数报 TypeError 错误。
# order_percent
- 按总资产指定比例委托
函数原型:
order_percent(symbol, percent, side,order_type, position_effect, price=0, order_duration=OrderDuration_Unknown, order_qualifier=OrderQualifier_Unknown, account='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
percent | double | 委托占总资产比例 |
side | int | 参见订单委托方向 |
order_type | int | 参见订单委托类型 |
position_effect | int | 参见开平仓类型 |
price | float | 价格(限价委托的委托价格,市价委托的保护价) |
order_duration | int | 参见 委托时间属性 |
order_qualifier | int | 参见 委托成交属性 |
account | account id or account name or None | 帐户 |
返回值:
类型 | 说明 |
---|---|
list[order] | 委托对象列表,参见order 对象 |
示例:
当前总资产为 1000000。下限价单,以 11 元每股的价格买入 SHSE.600000,期望买入比例占总资产的 10%,根据 volume = nav * precent / price 计算取整得出 volume = 9000
order_percent(symbol='SHSE.600000', percent=0.1, side=OrderSide_Buy, order_type=OrderType_Limit, position_effect=PositionEffect_Open, price=11)
返回:
[{'strategy_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'cl_ord_id': '000000000', 'symbol': 'SHSE.600000', 'side': 1, 'position_effect': 1, 'position_side': 1, 'order_type': 1, 'status': 3, 'price': 11.0, 'order_style': 1, 'volume': 18181800, 'value': 200000000.0, 'percent': 0.1, 'target_volume': 18181800, 'target_value': 199999800.0, 'target_percent': 0.0999999, 'filled_volume': 18181800, 'filled_vwap': 11.0011, 'filled_amount': 200019799.98, 'created_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'filled_commission': 20001.979998, 'account_name': '', 'order_id': '', 'ex_ord_id': '', 'algo_order_id': '', 'order_business': 0, 'order_duration': 0, 'order_qualifier': 0, 'order_src': 0, 'position_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0}]
注意:
1. 仅支持一个标的代码,若交易代码输入有误,终端会拒绝此单,并显示委托代码不正确
。
2. 根据指定比例计算购买标的数量,即(nav*precent)/price
,股票买卖最小单位为100
,不足 100 部分向下取整
,如存在不足 100 的持仓一次性卖出;期货买卖最小单位为1
,向下取整
。
3. 若仓位不足,终端会拒绝此单,显示仓位不足
。平仓时股票默认平昨仓
,期货默认平今仓
。应研究需要,股票也支持卖空操作
。
4. Order_type 优先级高于 price,若指定 OrderType_Market 下市价单,计算使用价格为最新一个 tick 中的最新价,price 参数失效。若 OrderTpye_Limit 限价单,仿真模式价格错误,终端拒绝此单,显示委托价格错误,回测模式下对价格无限制
。
5. 输入无效参数报 NameError 错误,缺少参数报 TypeError 错误。
6. 期货实盘时,percent 是以合约上市的初始保证金比例计算得到的,并非实时保证金比例。
# order_target_volume
- 调仓到目标持仓量
函数原型:
order_target_volume(symbol, volume, position_side, order_type, price=0, order_duration=OrderDuration_Unknown, order_qualifier=OrderQualifier_Unknown, account='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
volume | int | 期望的最终数量 |
position_side | int | 表示将多仓还是空仓调到目标持仓量,参见 持仓方向 |
order_type | int | 参见订单委托类型 |
price | float | 价格(限价委托的委托价格,市价委托的保护价) |
order_duration | int | 参见 委托时间属性 |
order_qualifier | int | 参见 委托成交属性 |
account | account id or account name or None | 帐户 |
返回值:
类型 | 说明 |
---|---|
list[order] | 委托对象列表,参见order 对象 |
示例:
当前 SHSE.600000 多方向持仓量为 0,期望持仓量为 10000,下单量为期望持仓量 - 当前持仓量 = 10000
order_target_volume(symbol='SHSE.600000', volume=10000, position_side=PositionSide_Long, order_type=OrderType_Limit, price=13)
返回:
[{'strategy_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'cl_ord_id': '000000000', 'symbol': 'SHSE.600000', 'side': 1, 'position_effect': 1, 'position_side': 1, 'order_type': 1, 'status': 3, 'price': 13.0, 'order_style': 1, 'volume': 10000, 'value': 130000.0, 'percent': 6.5e-05, 'target_volume': 10000, 'target_value': 130000.0, 'target_percent': 6.5e-05, 'filled_volume': 10000, 'filled_vwap': 13.0013, 'filled_amount': 130013.0, 'created_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'filled_commission': 13.0013, 'account_name': '', 'order_id': '', 'ex_ord_id': '', 'algo_order_id': '', 'order_business': 0, 'order_duration': 0, 'order_qualifier': 0, 'order_src': 0, 'position_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0}]
注意:
1. 仅支持一个标的代码,若交易代码输入有误,订单会被拒绝,终端无显示,无回报
。回测模式可参看 order_reject_reason。
2. 根据目标数量计算下单数量,系统判断开平仓类型。若下单数量有误,终端拒绝此单,并显示委托量不正确
。若实际需要买入数量为 0,则订单会被拒绝,终端无显示,无回报
。股票买卖最小单位为100
,不足 100 部分向下取整
,如存在不足 100 的持仓一次性卖出;期货买卖最小单位为1
,向下取整
。
3. 若仓位不足,终端拒绝此单,显示仓位不足
。平仓时股票默认平昨仓
,期货默认平今仓
,上期所昨仓不能平掉。应研究需要,股票也支持卖空操作。
4. Order_type 优先级高于 price,若指定 OrderTpye_Market 下市价单,使用价格为最新一个 tick 中的最新价,price 参数失效。若 OrderTpye_Limit 限价单价格错误,终端拒绝此单,显示委托价格错误。回测模式下对价格无限制
。
5. 输入无效参数报 NameError 错误,缺少参数报 Typeerror 错误。
# order_target_value
- 调仓到目标持仓额
函数原型:
order_target_value(symbol, value, position_side, order_type, price=0, order_duration=OrderDuration_Unknown, order_qualifier=OrderQualifier_Unknown, account='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
value | int | 期望的股票最终价值 |
position_side | int | 表示将多仓还是空仓调到目标持仓量,参见 持仓方向 |
order_type | int | 参见订单委托类型 |
price | float | 价格(限价委托的委托价格,市价委托的保护价) |
order_duration | int | 参见 委托时间属性 |
order_qualifier | int | 参见 委托成交属性 |
account | account id or account name or None | 帐户 |
返回值:
类型 | 说明 |
---|---|
list[order] | 委托对象列表,参见order 对象 |
示例:
当前 SHSE.600000 多方向当前持仓量为 0,目标持有价值为 100000 的该股票,根据 value / price 计算取整得出目标持仓量 volume 为 9000,目标持仓量 - 当前持仓量 = 下单量为 9000
order_target_value(symbol='SHSE.600000', value=100000, position_side=PositionSide_Long, order_type=OrderType_Limit, price=11)
返回:
[{'strategy_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'cl_ord_id': '000000000', 'symbol': 'SHSE.600000', 'side': 1, 'position_effect': 1, 'position_side': 1, 'order_type': 1, 'status': 3, 'price': 11.0, 'order_style': 1, 'volume': 9000, 'value': 100000.0, 'percent': 5e-05, 'target_volume': 9000, 'target_value': 100000.0, 'target_percent': 5e-05, 'filled_volume': 9000, 'filled_vwap': 11.0011, 'filled_amount': 99009.9, 'created_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'filled_commission': 9.90099, 'account_name': '', 'order_id': '', 'ex_ord_id': '', 'algo_order_id': '', 'order_business': 0, 'order_duration': 0, 'order_qualifier': 0, 'order_src': 0, 'position_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0}]
注意:
1. 仅支持一个标的代码,若交易代码输入有误,订单会被拒绝,终端无显示,无回报
。回测模式可参看 order_reject_reason。
2. 根据目标价值计算下单数量,系统判断开平仓类型。若下单数量有误,终端拒绝此单,并显示委托量不正确
。若实际需要买入数量为 0,则本地拒绝此单,终端无显示,无回报
。股票买卖最小单位为100
,不足 100 部分向下取整
,如存在不足 100 的持仓一次性卖出;期货买卖最小单位为1
,向下取整
。
3. 若仓位不足,终端拒绝此单,显示仓位不足
。平仓时股票默认平昨仓
,期货默认平今仓
,目前不可修改。应研究需要,股票也支持卖空操作
。
4. Order_type 优先级高于 price,若指定 OrderType_Market 下市价单,计算使用价格为最新一个 tick 中的最新价,price 参数失效。若 OrderTpye_Limit 限价单价格错误,终端拒绝此单,显示委托价格错误。回测模式下对价格无限制
。
5. 输入无效参数报 NameError 错误,缺少参数报 Typeerror 错误。
# order_target_percent
- 调仓到目标持仓比例(总资产的比例)
函数原型:
order_target_percent(symbol, percent, position_side, order_type, price=0, order_duration=OrderDuration_Unknown, order_qualifier=OrderQualifier_Unknown, account='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
percent | double | 期望的最终占总资产比例 |
position_side | int | 表示将多仓还是空仓调到目标持仓量,参见 持仓方向 |
order_type | int | 参见订单委托类型 |
price | float | 价格(限价委托的委托价格,市价委托的保护价) |
order_duration | int | 参见 委托时间属性 |
order_qualifier | int | 参见 委托成交属性 |
account | account id or account name or None | 帐户 |
返回值:
类型 | 说明 |
---|---|
list[order] | 委托对象列表,参见order 对象 |
示例:
当前总资产价值为 1000000,目标为以 11 元每股的价格买入 SHSE.600000 的价值占总资产的 10%,根据 volume = nav * percent / price 计算取整得出应持有 9000 股。当前该股持仓量为零,因此买入量为 9000
order_target_percent(symbol='SHSE.600000', percent=0.1, position_side=PositionSide_Long, order_type=OrderType_Limit, price=11)
返回:
[{'strategy_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'cl_ord_id': '000000000', 'symbol': 'SHSE.600000', 'side': 1, 'position_effect': 1, 'position_side': 1, 'order_type': 1, 'status': 3, 'price': 11.0, 'order_style': 1, 'volume': 18181800, 'value': 200000000.0, 'percent': 0.1, 'target_volume': 18181800, 'target_value': 199999800.0, 'target_percent': 0.1, 'filled_volume': 18181800, 'filled_vwap': 11.0011, 'filled_amount': 200019799.98, 'created_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'filled_commission': 20001.979998, 'account_name': '', 'order_id': '', 'ex_ord_id': '', 'algo_order_id': '', 'order_business': 0, 'order_duration': 0, 'order_qualifier': 0, 'order_src': 0, 'position_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0}]
注意:
1. 仅支持一个标的代码,若交易代码输入有误,订单会被拒绝,终端无显示,无回报
。回测模式可参看 order_reject_reason。
2. 根据目标比例计算下单数量,为占总资产(nav)
比例,系统判断开平仓类型。若下单数量有误,终端拒绝此单,并显示委托量不正确
。若实际需要买入数量为 0,则本地拒绝此单,终端无显示,无回报
。股票买卖最小单位为100
,不足 100 部分向下取整
,如存在不足 100 的持仓一次性卖出;期货买卖最小单位为1
,向下取整
。
3. 若仓位不足,终端拒绝此单,显示仓位不足
。平仓时股票默认平昨仓
,期货默认平今仓
,目前不可修改。应研究需要,股票也支持卖空操作
。
4. Order_type 优先级高于 price,若指定 OrderType_Market 下市价单,计算使用价格为最新一个 tick 中的最新价,price 参数失效。若 OrderTpye_Limit 限价单价格错误,终端拒绝此单,显示委托价格错误。回测模式下对价格无限制
。
5. 输入无效参数报 NameError 错误,缺少参数报 Typeerror 错误。
6. 期货实盘时,percent 是以合约上市的初始保证金比例计算得到的,并非实时保证金比例。
# order_batch
- 批量委托接口
函数原型:
order_batch(orders, combine=False, account='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
orders | list[order] | 委托对象列表,其中委托至少包含交易接口的必选参数,参见order 对象 |
combine | bool | 是否是组合单, 默认不是(预留字段,目前无效) |
account | account id or account name or None | 帐户 |
返回值:
类型 | 说明 |
---|---|
list[order] | 委托对象列表,参见order 对象 |
示例:
order_1 = {'symbol': 'SHSE.600000', 'volume': 100, 'price': 11, 'side': 1,
'order_type': 2, 'position_effect':1}
order_2 = {'symbol': 'SHSE.600004', 'volume': 100, 'price': 11, 'side': 1,
'order_type': 2, 'position_effect':1}
orders = [order_1, order_2]
batch_orders = order_batch(orders, combine=True)
for order in batch_orders:
print(order)
返回:
{'strategy_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'cl_ord_id': '000000000', 'symbol': 'SHSE.600000', 'side': 1, 'position_effect': 1, 'order_type': 2, 'status': 3, 'price': 10.280000686645508, 'order_style': 1, 'volume': 100, 'filled_volume': 100, 'filled_vwap': 10.281028686714173, 'filled_amount': 1028.1028686714174, 'created_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'filled_commission': 0.10281028686714173, 'account_name': '', 'order_id': '', 'ex_ord_id': '', 'algo_order_id': '', 'position_side': 0, 'order_business': 0, 'order_duration': 0, 'order_qualifier': 0, 'order_src': 0, 'position_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0, 'value': 0.0, 'percent': 0.0, 'target_volume': 0, 'target_value': 0.0, 'target_percent': 0.0}
{'strategy_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'cl_ord_id': '000000001', 'symbol': 'SHSE.600004', 'side': 1, 'position_effect': 1, 'order_type': 2, 'status': 3, 'price': 15.050000190734863, 'order_style': 1, 'volume': 100, 'filled_volume': 100, 'filled_vwap': 15.051505190753936, 'filled_amount': 1505.1505190753935, 'created_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'filled_commission': 0.15051505190753936, 'account_name': '', 'order_id': '', 'ex_ord_id': '', 'algo_order_id': '', 'position_side': 0, 'order_business': 0, 'order_duration': 0, 'order_qualifier': 0, 'order_src': 0, 'position_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0, 'value': 0.0, 'percent': 0.0, 'target_volume': 0, 'target_value': 0.0, 'target_percent': 0.0}
{'strategy_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'cl_ord_id': '000000002', 'symbol': 'SHSE.600000', 'side': 1, 'position_effect': 1, 'order_type': 2, 'status': 3, 'price': 10.180000305175781, 'order_style': 1, 'volume': 100, 'filled_volume': 100, 'filled_vwap': 10.1810183052063, 'filled_amount': 1018.10183052063, 'created_at': datetime.datetime(2020, 9, 2, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 2, 9, 40, tzinfo=tzfile('PRC')), 'filled_commission': 0.101810183052063, 'account_name': '', 'order_id': '', 'ex_ord_id': '', 'algo_order_id': '', 'position_side': 0, 'order_business': 0, 'order_duration': 0, 'order_qualifier': 0, 'order_src': 0, 'position_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0, 'value': 0.0, 'percent': 0.0, 'target_volume': 0, 'target_value': 0.0, 'target_percent': 0.0}
{'strategy_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'cl_ord_id': '000000003', 'symbol': 'SHSE.600004', 'side': 1, 'position_effect': 1, 'order_type': 2, 'status': 3, 'price': 14.819999694824219, 'order_style': 1, 'volume': 100, 'filled_volume': 100, 'filled_vwap': 14.8214816947937, 'filled_amount': 1482.14816947937, 'created_at': datetime.datetime(2020, 9, 2, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 2, 9, 40, tzinfo=tzfile('PRC')), 'filled_commission': 0.148214816947937, 'account_name': '', 'order_id': '', 'ex_ord_id': '', 'algo_order_id': '', 'position_side': 0, 'order_business': 0, 'order_duration': 0, 'order_qualifier': 0, 'order_src': 0, 'position_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0, 'value': 0.0, 'percent': 0.0, 'target_volume': 0, 'target_value': 0.0, 'target_percent': 0.0}
注意:
1. 每个 order 的 symbol 仅支持一个标的代码,若交易代码输入有误,终端会拒绝此单,并显示委托代码不正确
。
2. 若下单数量输入有误,终端会拒绝此单,并显示委托量不正确
。下单数量严格按照指定数量下单
,需注意股票买入最小单位为 100。
3. 若仓位不足,终端会拒绝此单,显示仓位不足
。应研究需要,股票也支持卖空操作
。
4. Order_type 优先级高于 price,若指定 OrderType_Market 下市价单,则 price 参数失效。若 OrderTpye_Limit 限价单,仿真模式价格错误,终端拒绝此单,显示委托价格错误,回测模式下对价格无限制
。
5. 输入无效参数报 NameError 错误,缺少参数不报错,可能会出现下单被拒。
# order_cancel
- 撤销委托
函数原型:
order_cancel(wait_cancel_orders)
参数:
参数名 | 类型 | 说明 |
---|---|---|
wait_cancel_orders | list[dict] | 传入单个字典. 或者 list 字典. 每个字典包含 key: cl_ord_id, account_id, 参见order 对象 |
示例:
order_1 = {'cl_ord_id': order1['cl_ord_id'], 'account_id': order1['account_id']}
order_2 = {'cl_ord_id': order2['cl_ord_id'], 'account_id': order2['account_id']}
orders = [order_1, order_2]
order_cancel(wait_cancel_orders=orders)
# order_cancel_all
- 撤销所有委托
函数原型:
order_cancel_all()
示例:
order_cancel_all()
# order_close_all
- 平当前所有可平持仓
**注意:**不支持市价委托类型的委托,会被柜台拒绝
函数原型:
order_close_all()
示例:
order_close_all()
# get_unfinished_orders
- 查询日内全部未结委托
函数原型:
get_unfinished_orders()
返回值:
类型 | 说明 |
---|---|
list[order] | 委托对象列表,参见order 对象 |
示例:
get_unfinished_orders()
返回:
[{'strategy_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'cl_ord_id': '000000000', 'symbol': 'SHSE.600519', 'side': 1, 'position_effect': 1, 'position_side': 1, 'order_type': 2, 'status': 3, 'price': 1792.0, 'order_style': 1, 'volume': 100, 'value': 179200.0, 'percent': 8.96e-05, 'target_volume': 100, 'target_value': 179200.0, 'target_percent': 8.96e-05, 'filled_volume': 100, 'filled_vwap': 1792.1792, 'filled_amount': 179217.92, 'created_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'filled_commission': 17.921792000000003, 'account_name': '', 'order_id': '', 'ex_ord_id': '', 'algo_order_id': '', 'order_business': 0, 'order_duration': 0, 'order_qualifier': 0, 'order_src': 0, 'position_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0}]
# get_orders
- 查询日内全部委托
函数原型:
get_orders()
返回值:
类型 | 说明 |
---|---|
list[order] | 委托对象列表,参见order 对象 |
示例:
get_orders()
返回:
[{'strategy_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'cl_ord_id': '000000000', 'symbol': 'SHSE.600519', 'side': 1, 'position_effect': 1, 'position_side': 1, 'order_type': 2, 'status': 3, 'price': 1792.0, 'order_style': 1, 'volume': 100, 'value': 179200.0, 'percent': 8.96e-05, 'target_volume': 100, 'target_value': 179200.0, 'target_percent': 8.96e-05, 'filled_volume': 100, 'filled_vwap': 1792.1792, 'filled_amount': 179217.92, 'created_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'filled_commission': 17.921792000000003, 'account_name': '', 'order_id': '', 'ex_ord_id': '', 'algo_order_id': '', 'order_business': 0, 'order_duration': 0, 'order_qualifier': 0, 'order_src': 0, 'position_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0}]
# get_execution_reports
- 查询日内全部执行回报
函数原型:
get_execution_reports()
返回值:
类型 | 说明 |
---|---|
list[execrpt] | 回报对象列表, 参见ExecRpt 回报对象 |
示例:
get_execution_reports()
返回:
[{'strategy_id': '004beb61-1282-11eb-9313-00ff5a669ee2', 'account_id': '3acc8b6e-af54-11e9-b2de-00163e0a4100', 'account_name': '3acc8b6e-af54-11e9-b2de-00163e0a4100', 'cl_ord_id': '49764a82-14fb-11eb-89df-00ff5a669ee2', 'order_id': '4a06f925-14fb-11eb-9e8a-00163e0a4100', 'exec_id': '573b108b-14fb-11eb-9e8a-00163e0a4100', 'symbol': 'SHSE.600714', 'position_effect': 1, 'side': 1, 'exec_type': 15, 'price': 5.579999923706055, 'volume': 900, 'amount': 5021.999931335449, 'created_at': datetime.datetime(2020, 10, 23, 14, 45, 29, 776756, tzinfo=tzfile('PRC')), 'commission': 5.0, 'cost': 5021.999931335449, 'ord_rej_reason': 0, 'ord_rej_reason_detail': ''}]
# 交易查询函数
# context.account().positions() - 查询当前账户全部持仓
原型:
context.account(account_id=None).positions()
参数:
参数名 | 类型 | 说明 |
---|---|---|
account_id | str | 账户信息,默认返回默认账户, 如多个账户需指定 account_id |
返回值:
类型 | 说明 |
---|---|
list[position] | Position 持仓对象列表 |
**注意:**没有持仓时,返回空列表
示例-获取当前持仓:
# 所有持仓
Account_positions = context.account().positions()
输出
% 所有持仓输出
[{'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'symbol': 'SHSE.600419', 'side': 1, 'volume': 2200, 'volume_today': 100, 'vwap': 16.43391600830338, 'amount': 36154.61521826744, 'fpnl': -2362.6138754940007, 'cost': 36154.61521826744, 'available': 2200, 'available_today': 100, 'created_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 30, 9, 40, tzinfo=tzfile('PRC')), 'account_name': '', 'vwap_diluted': 0.0, 'price': 0.0, 'order_frozen': 0, 'order_frozen_today': 0, 'available_now': 0, 'market_value': 0.0, 'last_price': 0.0, 'last_volume': 0, 'last_inout': 0, 'change_reason': 0, 'change_event_id': '', 'has_dividend': 0}, {'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'symbol': 'SHSE.600519', 'side': 1, 'volume': 1100, 'vwap': 1752.575242219682, 'amount': 1927832.7664416502, 'fpnl': -110302.84700805641, 'cost': 1927832.7664416502, 'available': 1100, 'created_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 15, 9, 40, tzinfo=tzfile('PRC')), 'account_name': '', 'volume_today': 0, 'vwap_diluted': 0.0, 'price': 0.0, 'order_frozen': 0, 'order_frozen_today': 0, 'available_today': 0, 'available_now': 0, 'market_value': 0.0, 'last_price': 0.0, 'last_volume': 0, 'last_inout': 0, 'change_reason': 0, 'change_event_id': '', 'has_dividend': 0}]
# context.account().position(symbol, side) - 查询当前账户指定持仓
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
side | int | 持仓方向,取值参考[PositionSide 持仓方向]http://docs-test.myquant.cn:3000/sdk/python/枚举常量.html#PositionSide持仓方向 |
返回值:
类型 | 说明 |
---|---|
dict[position] | Position 持仓对象列表 |
** 注意:** 当指定标的没有持仓时,返回 None 示例-获取当前持仓:
# 指定持仓
Account_position = context.account().position(symbol='SHSE.600519',side = PositionSide_Long)
输出
# 指定持仓输出
{'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'symbol': 'SHSE.600519', 'side': 1, 'volume': 1100, 'vwap': 1752.575242219682, 'amount': 1927832.7664416502, 'fpnl': -110302.84700805641, 'cost': 1927832.7664416502, 'available': 1100, 'created_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 15, 9, 40, tzinfo=tzfile('PRC')), 'account_name': '', 'volume_today': 0, 'vwap_diluted': 0.0, 'price': 0.0, 'order_frozen': 0, 'order_frozen_today': 0, 'available_today': 0, 'available_now': 0, 'market_value': 0.0, 'last_price': 0.0, 'last_volume': 0, 'last_inout': 0, 'change_reason': 0, 'change_event_id': '', 'has_dividend': 0}
# context.account().cash - 查询当前账户资金
原型:
context.account(account_id=None).cash
参数:
参数名 | 类型 | 说明 |
---|---|---|
account_id | str | 账户信息,默认返回默认账户, 如多个账户需指定 account_id |
返回值:
类型 | 说明 |
---|---|
dict[cash] | Cash 资金对象列表 |
示例-获取当前账户资金:
context.account().cash
输出
{'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'nav': 1905248.2789094353, 'pnl': -94751.72109056474, 'fpnl': -94555.35135529494, 'frozen': 1963697.3526980684, 'available': 36106.277566661825, 'cum_inout': 2000000.0, 'cum_trade': 1963697.3526980684, 'cum_commission': 196.3697352698069, 'last_trade': 1536.1536610412597, 'last_commission': 0.153615366104126, 'created_at': datetime.datetime(2020, 9, 1, 8, 0, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 30, 9, 40, tzinfo=tzfile('PRC')), 'account_name': '', 'currency': 0, 'order_frozen': 0.0, 'balance': 0.0, 'market_value': 0.0, 'cum_pnl': 0.0, 'last_pnl': 0.0, 'last_inout': 0.0, 'change_reason': 0, 'change_event_id': ''}
# 两融交易函数
# 两融 SDK
python 两融 SDK 包含在 gm3.0.126 版本及以上版本,不需要引入新库 融资融券暂时仅支持实盘委托,不支持仿真交易
# credit_buying_on_margin
- 融资买入
函数原型:
credit_buying_on_margin(position_src, symbol, volume, price, order_type=OrderType_Limit, order_duration=OrderDuration_Unknown,
order_qualifier=OrderQualifier_Unknown, account_id='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
volume | int | 数量 |
price | float | 价格 |
position_src | int | 头寸来源 取值参考 PositionSrc |
order_type | int | 委托类型 取值参考 OrderType |
order_duration | int | 委托时间属性 取值参考 OrderDuration |
order_qualifier | int | 委托成交属性 取值参考 OrderQualifier |
account_id | str | 账号 id,不填或留空,表示使用默认账号,否则使用指定账号 |
返回值:
请参考 order 对象 返回值字段说明
示例代码
credit_buying_on_margin(position_src=PositionSrc_L1, symbol='SHSE.600000', volume=100, price=10.67)
示例返回值
strategy_id account_id cl_ord_id symbol order_type status price volume created_at order_business account_name order_id ex_ord_id algo_order_id side position_effect position_side order_duration order_qualifier order_src ord_rej_reason ord_rej_reason_detail stop_price order_style value percent target_volume target_value target_percent filled_volume filled_vwap filled_amount filled_commission updated_at
------------------------------------ ------------------------------------ ------------------------------------ ----------- ---------- ------ ----- ------ ----------------------------------------------------------------------- -------------- ------------ -------- --------- ------------- ---- --------------- ------------- -------------- --------------- --------- -------------- --------------------- ---------- ----------- ----- ------- ------------- ------------ -------------- ------------- ----------- ------------- ----------------- ----------
3af55cb8-a7c5-11ea-b510-309c231d28bd 8f30e83f-a7c5-11ea-b510-309c231d28bd 2b853062-a7c9-11ea-b510-309c231d28bd SHSE.600000 1 10 10.67 100 datetime.datetime(2020, 6, 6, 15, 41, 44, 863549, tzinfo=tzfile('PRC')) 200 0 0 0 0 0 0 0 0 0 0.0 0.0 0 0.0 0.0 0 0.0 0.0 0.0 None
# credit_short_selling
- 融券卖出
函数原型
credit_short_selling(position_src, symbol, volume, price, order_type=OrderType_Limit, order_duration=OrderDuration_Unknown,
order_qualifier=OrderQualifier_Unknown, account_id='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
volume | int | 数量 |
price | float | 价格 |
position_src | int | 头寸来源 取值参考 PositionSrc |
order_type | int | 委托类型 取值参考 OrderType |
order_duration | int | 委托时间属性 取值参考 OrderDuration |
order_qualifier | int | 委托成交属性 取值参考 OrderQualifier |
account_id | str | 账号 id,不填或留空,表示使用默认账号,否则使用指定账号 |
返回值:
请参考 order 对象 返回值字段说明
示例代码
credit_short_selling(position_src=PositionSrc_L1, symbol='SHSE.600000', volume=100, price=10.67, order_type=OrderType_Limit,
order_duration=OrderDuration_Unknown,
order_qualifier=OrderQualifier_Unknown, account_id='')
示例返回值
strategy_id account_id cl_ord_id symbol order_type status price volume created_at order_business account_name order_id ex_ord_id algo_order_id side position_effect position_side order_duration order_qualifier order_src ord_rej_reason ord_rej_reason_detail stop_price order_style value percent target_volume target_value target_percent filled_volume filled_vwap filled_amount filled_commission updated_at
------------------------------------ ------------------------------------ ------------------------------------ ----------- ---------- ------ ----- ------ ----------------------------------------------------------------------- -------------- ------------ -------- --------- ------------- ---- --------------- ------------- -------------- --------------- --------- -------------- --------------------- ---------- ----------- ----- ------- ------------- ------------ -------------- ------------- ----------- ------------- ----------------- ----------
3af55cb8-a7c5-11ea-b510-309c231d28bd 8f30e83f-a7c5-11ea-b510-309c231d28bd 2b853062-a7c9-11ea-b510-309c231d28bd SHSE.600000 1 10 10.67 100 datetime.datetime(2020, 6, 6, 15, 41, 44, 863549, tzinfo=tzfile('PRC')) 201 0 0 0 0 0 0 0 0.0 0 0.0 0.0 0 0.0 0.0 0 0.0 0.0 0.0 None
# credit_repay_cash_directly
- 直接还款
函数原型:
credit_repay_cash_directly(amount, account_id='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
amount | float | 还款金额 |
account_id | str | 账号 id,不填或留空,表示使用默认账号,否则使用指定账号 |
**返回值:dict
**
字段 | 类型 | 说明 |
---|---|---|
actual_repay_amount | float | 实际还款金额 |
account_id | str | 账号 id |
account_name | str | 账户名称 |
示例代码:
credit_repay_cash_directly(amount=10000.00, account_id='')
示例返回值:
actual_repay_amount account_id account_name
------------------- ------------------------------------ ------------
10000.0 8f30e83f-a7c5-11ea-b510-309c231d28bd 001515018318
# credit_repay_share_directly
- 直接还券
函数原型
credit_repay_share_directly(symbol, volume, account_id='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
volume | int | 数量 |
account_id | str | 账号 id,不填或留空,表示使用默认账号,否则使用指定账号 |
返回值:[dict]
请参考 order 对象 返回值字段说明
示例代码
credit_repay_share_directly(symbol='SHSE.600000', volume=100, account_id='')
示例返回值
strategy_id account_id cl_ord_id symbol order_type status volume created_at order_business account_name order_id ex_ord_id algo_order_id side position_effect position_side order_duration order_qualifier order_src ord_rej_reason ord_rej_reason_detail price stop_price order_style value percent target_volume target_value target_percent filled_volume filled_vwap filled_amount filled_commission updated_at
------------------------------------ ------------------------------------ ------------------------------------ ----------- ---------- ------ ------ ----------------------------------------------------------------------- -------------- ------------ -------- --------- ------------- ---- --------------- ------------- -------------- --------------- --------- -------------- --------------------- ----- ---------- ----------- ----- ------- ------------- ------------ -------------- ------------- ----------- ------------- ----------------- ----------
3af55cb8-a7c5-11ea-b510-309c231d28bd 8f30e83f-a7c5-11ea-b510-309c231d28bd 2b86685e-a7c9-11ea-b510-309c231d28bd SHSE.600000 1 10 100 datetime.datetime(2020, 6, 6, 15, 41, 44, 871536, tzinfo=tzfile('PRC')) 204 0 0 0 0 0 0 0 0.0 0.0 0 0.0 0.0 0 0.0 0.0 0 0.0 0.0 0.0 None
........ ......
# credit_get_collateral_instruments
- 查询担保证券
查询担保证券,可做担保品股票列表
函数原型:
credit_get_collateral_instruments(account_id='', df=False)
参数:
参数名 | 类型 | 说明 |
---|---|---|
account_id | str | 账号 id,不填或留空,表示使用默认账号,否则使用指定账号 |
df | bool | 是否返回dataframe 格式数据。默认 False, 返回 list[dict] |
返回值:
字段 | 类型 | 说明 |
---|---|---|
symbol | str | 标的 |
pledge_rate | float | 折算率 |
示例代码
credit_get_collateral_instruments(account_id='', df=False)
示例返回值
symbol pledge_rate
----------- -----------
SHSE.010107 0.9
SHSE.010303 0.9
.......... ...
# credit_get_borrowable_instruments
- 查询可融标的证券
查询标的证券,可做融券标的股票列表
函数原型:
credit_get_borrowable_instruments(position_src, account_id='', df=False)
参数:
参数名 | 类型 | 说明 |
---|---|---|
position_src | int | 头寸来源 取值参考 PositionSrc |
account_id | str | 账号 id,不填或留空,表示使用默认账号,否则使用指定账号 |
df | bool | 是否返回dataframe 格式数据。默认 False, 返回 list[dict] |
返回值:list[dict]
字段 | 类型 | 说明 |
---|---|---|
symbol | str | 标的 |
margin_rate_for_cash | float | 融资保证金比率 |
margin_rate_for_security | float | 融券保证金比率 |
示例代码
credit_get_borrowable_instruments(position_src=PositionSrc_L1, account_id='', df=False)
示例返回值
symbol margin_rate_for_cash margin_rate_for_security
----------- -------------------- ------------------------
SHSE.510050 1.0 0.6
SHSE.510160 1.0 0.6
........... ... ...
# credit_get_borrowable_instruments_positions
- 查询券商融券账户头寸
查询券商融券账户头寸,可用融券的数量
函数原型:
credit_get_borrowable_instruments_positions(position_src, account_id='', df=False)
参数:
参数名 | 类型 | 说明 |
---|---|---|
position_src | int | 头寸来源 取值参考 PositionSrc |
account_id | str | 账号 id,不填或留空,表示使用默认账号,否则使用指定账号 |
df | bool | 是否返回dataframe 格式数据。默认 False, 返回 list[dict] |
返回值:
当 df = True 时, 返回dataframe
当 df = False 时, 返回list[dict]
字段 | 类型 | 说明 |
---|---|---|
symbol | str | 标的 |
balance | float | 证券余额 |
available | float | 证券可用金额 |
示例代码
credit_get_borrowable_instruments_positions(position_src=PositionSrc_L1, account_id='', df=False)
示例返回值
symbol balance available
----------- ------- -----------
SHSE.600166 700.0 700.0
SHSE.688002 2000.0 2000.0
.......... ...... ......
# credit_get_contracts
- 查询融资融券合约
函数原型:
credit_get_contracts(position_src, account_id='', df=False)
参数:
参数名 | 类型 | 说明 |
---|---|---|
position_src | int | 头寸来源 取值参考 PositionSrc |
account_id | str | 账号 id,不填或留空,表示使用默认账号,否则使用指定账号 |
df | bool | 是否返回dataframe 格式数据。默认 False, 返回 list[dict] |
返回值:
当 df = True 时, 返回dataframe
当 df = False 时, 返回list[dict]
字段 | 类型 | 说明 |
---|---|---|
symbol | str | 标的 |
ordersno | str | 委 托 号 |
creditdirect | str | 融资融券方向, '0'表示融资, '1'表示融券 |
orderqty | float | 委托数量 |
matchqty | float | 成交数量 |
orderamt | float | 委托金额 |
orderfrzamt | float | 委托冻结金额 |
matchamt | float | 成交金额 |
clearamt | float | 清算金额 |
lifestatus | str | 合约状态 |
creditrepay | float | T 日之前归还金额 |
creditrepayunfrz | float | T 日归还金额 |
fundremain | float | 应还金额 |
stkrepay | float | T 日之前归还数量 |
stkrepayunfrz | float | T 日归还数量 |
stkremain | float | 应还证券数量 |
stkremainvalue | float | 应还证券市值 |
fee | float | 融资融券息、费 |
overduefee | float | 逾期未偿还息、费 |
fee_repay | float | 己偿还息、费 |
punifee | float | 利息产生的罚息 |
punifee_repay | float | 己偿还罚息 |
rights | float | 未偿还权益金额 |
overduerights | float | 逾期未偿还权益 |
rights_repay | float | 己偿还权益 |
lastprice | float | 最新价 |
profitcost | float | 浮动盈亏 |
sno | str | 合约编号 |
punidebts | float | 逾期本金罚息 |
punidebts_repay | float | 本金罚息偿还 |
punidebtsunfrz | float | 逾期本金罚息 |
punifeeunfrz | float | 逾期息费罚息 |
punirights | float | 逾期权益罚息 |
punirights_repay | float | 权益罚息偿还 |
punirightsunfrz | float | 逾期权益罚息 |
feeunfrz | float | 实时偿还利息 |
overduefeeunfrz | float | 实时偿还逾期利息 |
rightsqty | float | 未偿还权益数量 |
overduerightsqty | float | 逾期未偿还权益数量 |
orderdate | int | 委托日期,时间戳类型 |
lastdate | int | 最后一次计算息费日期,时间戳类型 |
closedate | int | 合约全部偿还日期,时间戳类型 |
sysdate | int | 系统日期,时间戳类型 |
enddate | int | 负债截止日期,时间戳类型 |
oldenddate | int | 原始的负债截止日期,时间戳类型 |
示例代码
credit_get_contracts(position_src=PositionSrc_L1, account_id='', df=False)
示例返回值
symbol ordersno creditdirect orderqty matchamt clearamt lifestatus enddate fundremain fee rights profitcost sno rightsqty orderdate matchqty orderamt orderfrzamt oldenddate creditrepay creditrepayunfrz stkrepay stkrepayunfrz stkremain stkremainvalue overduefee fee_repay punifee punifee_repay overduerights rights_repay lastprice sysdate lastdate closedate punidebts punidebts_repay punidebtsunfrz punifeeunfrz punirights punirights_repay punirightsunfrz feeunfrz overduefeeunfrz overduerightsqty
----------- -------- ------------ -------- -------- -------- ---------- -------- ---------- ----- --------- ---------- -------- --------- --------- -------- -------- ----------- ---------- ----------- ---------------- -------- ------------- --------- -------------- ---------- --------- ------- ------------- ------------- ------------ --------- ------- -------- --------- --------- --------------- -------------- ------------ ---------- ---------------- --------------- -------- --------------- ----------------
SZSE.159937 115906 0 59600.0 217957.2 217957.2 0 20200823 220666.32 32.69 220666.32 11112.52 15211131 59600.0 0 0.0 0.0 0.0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
........... ......
# credit_get_cash
- 查询融资融券资金
函数原型:
credit_get_cash(account_id='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
account_id | str | 账号 id,不填或留空,表示使用默认账号,否则使用指定账号 |
返回值:dict
字段 | 类型 | 名称 |
---|---|---|
fundintrrate | float | 融资利率 |
stkintrrate | float | 融券利率 |
punishintrrate | float | 罚息利率 |
creditstatus | str | 信用状态 |
marginrates | float | 维持担保比例 |
realrate | float | 实时担保比例 |
asset | float | 总资产 |
liability | float | 总负债 |
marginavl | float | 保证金可用数 |
fundbal | float | 资金余额 |
fundavl | float | 资金可用数 |
dsaleamtbal | float | 融券卖出所得资金 |
guaranteeout | float | 可转出担保资产 |
gagemktavl | float | 担保证券市值 |
fdealavl | float | 融资本金 |
ffee | float | 融资息费 |
ftotaldebts | float | 融资负债合计 |
dealfmktavl | float | 应付融券市值 |
dfee | float | 融券息费 |
dtotaldebts | float | 融券负债合计 |
fcreditbal | float | 融资授信额度 |
fcreditavl | float | 融资可用额度 |
fcreditfrz | float | 融资额度冻结 |
dcreditbal | float | 融券授信额度 |
dcreditavl | float | 融券授信额度 |
dcreditfrz | float | 融券额度冻结 |
rights | float | 红利权益 |
serviceuncomerqrights | float | 红利权益(在途) |
rightsqty | float | 红股权益 |
serviceuncomerqrightsqty | float | 红股权益(在途) |
acreditbal | float | 总额度 |
acreditavl | float | 总可用额度 |
acashcapital | float | 所有现金资产(所有资产、包括融券卖出) |
astkmktvalue | float | 所有证券市值(包含融资买入、非担保品) |
withdrawable | float | 可取资金 |
netcapital | float | 净资产 |
fcreditpnl | float | 融资盈亏 |
dcreditpnl | float | 融券盈亏 |
fcreditmarginoccupied | float | 融资占用保证金 |
dcreditmarginoccupied | float | 融券占用保证金 |
collateralbuyableamt | float | 可买担保品资金 |
repayableamt | float | 可还款金额 |
dcreditcashavl | float | 融券可用资金 |
示例代码
credit_get_cash(account_id='')
示例返回值
marginrates realrate asset liability marginavl fundbal fundavl guaranteeout gagemktavl fdealavl ffee ftotaldebts dfee fcreditbal fcreditavl dcreditbal dcreditavl acreditbal acreditavl account_id account_name rid fundintrrate stkintrrate punishintrrate creditstatus dsaleamtbal dealfmktavl dtotaldebts fcreditfrz dcreditfrz rights serviceuncomerqrights rightsqty serviceuncomerqrightsqty acashcapital astkmktvalue withdrawable netcapital fcreditpnl dcreditpnl fcreditmarginoccupied dcreditmarginoccupied collateralbuyableamt repayableamt dcreditcashavl
----------- -------- ------------- ---------- ----------------- ------------- ------------- ------------ ----------- ---------- ------ ----------- ---- ---------- ------------------ ---------- ---------- ---------- ----------- ------------------------------------ ---------------- ------------------------------------ ------------- ----------- -------------- ------------ ----------- ----------- ----------- ---------- ------------ --------- --------------------- --------- ------------------------ ------------ ------------ ------------ ---------- ---------- ---------- --------------------- --------------------- -------------------- ------------ --------------
229.5157 229.5157 1001926287.62 4356531.11 1994995956.360447 1002066280.62 2002149925.25 988838893.26 -4483562.29 4307241.23 668.89 4307910.12 1.28 8000000.0 3683189.8499999996 8000000.0 8000001.0 16000000.0 11683190.85 8f30e83f-a7c5-11ea-b510-309c231d28bd 001515018318 3978e606-0fc0-43ec-87b0-01887fa280c5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
# credit_repay_share_by_buying_share
- 买券还券
函数原型
credit_repay_share_by_buying_share(symbol, volume, price, order_type=OrderType_Limit,
order_duration=OrderDuration_Unknown,
order_qualifier=OrderQualifier_Unknown, account_id='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
volume | int | 数量 |
price | float | 价格 |
order_type | int | 委托类型 取值参考 OrderType |
order_duration | int | 委托时间属性 取值参考 OrderDuration |
order_qualifier | int | 委托成交属性 取值参考 OrderQualifier |
account_id | str | 账号 id,不填或留空,表示使用默认账号,否则使用指定账号 |
返回值:
请参考 order 对象 返回值字段说明
示例代码
credit_repay_share_by_buying_share(symbol='SHSE.600000', volume=100, price=10.67, order_type=OrderType_Limit,
order_duration=OrderDuration_Unknown,
order_qualifier=OrderQualifier_Unknown,
account_id='')
示例返回值
strategy_id account_id cl_ord_id symbol order_type status price volume created_at order_business account_name order_id ex_ord_id algo_order_id side position_effect position_side order_duration order_qualifier order_src ord_rej_reason ord_rej_reason_detail stop_price order_style value percent target_volume target_value target_percent filled_volume filled_vwap filled_amount filled_commission updated_at
------------------------------------ ------------------------------------ ------------------------------------ ----------- ---------- ------ ----- ------ ----------------------------------------------------------------------- -------------- ------------ -------- --------- ------------- ---- --------------- ------------- -------------- --------------- --------- -------------- --------------------- ---------- ----------- ----- ------- ------------- ------------ -------------- ------------- ----------- ------------- ----------------- ----------
3af55cb8-a7c5-11ea-b510-309c231d28bd 8f30e83f-a7c5-11ea-b510-309c231d28bd 2b857e02-a7c9-11ea-b510-309c231d28bd SHSE.600000 1 10 10.67 100 datetime.datetime(2020, 6, 6, 15, 41, 44, 865536, tzinfo=tzfile('PRC')) 202 0 0 0 0 0 0 0 0.0 0 0.0 0.0 0 0.0 0.0 0 0.0 0.0 0.0 None
# credit_repay_cash_by_selling_share
- 卖券还款
函数原型
credit_repay_cash_by_selling_share(symbol, volume, price, order_type=OrderType_Limit,
order_duration=OrderDuration_Unknown,
order_qualifier=OrderQualifier_Unknown, account_id='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
volume | int | 数量 |
price | float | 价格 |
order_type | int | 委托类型 取值参考 OrderType |
order_duration | int | 委托时间属性 取值参考 OrderDuration |
order_qualifier | int | 委托成交属性 取值参考 OrderQualifier |
account_id | str | 账号 id,不填或留空,表示使用默认账号,否则使用指定账号 |
返回值:
请参考 order 对象 返回值字段说明
示例代码
credit_repay_cash_by_selling_share(symbol='SHSE.600000', volume=100, price=10.67, order_type=OrderType_Limit,
order_duration=OrderDuration_Unknown,
order_qualifier=OrderQualifier_Unknown,
account_id='')
示例返回值
strategy_id account_id cl_ord_id symbol order_type status price volume created_at order_business account_name order_id ex_ord_id algo_order_id side position_effect position_side order_duration order_qualifier order_src ord_rej_reason ord_rej_reason_detail stop_price order_style value percent target_volume target_value target_percent filled_volume filled_vwap filled_amount filled_commission updated_at
------------------------------------ ------------------------------------ ------------------------------------ ----------- ---------- ------ ----- ------ ----------------------------------------------------------------------- -------------- ------------ -------- --------- ------------- ---- --------------- ------------- -------------- --------------- --------- -------------- --------------------- ---------- ----------- ----- ------- ------------- ------------ -------------- ------------- ----------- ------------- ----------------- ----------
3af55cb8-a7c5-11ea-b510-309c231d28bd 8f30e83f-a7c5-11ea-b510-309c231d28bd 2b85a50a-a7c9-11ea-b510-309c231d28bd SHSE.600000 1 10 10.67 100 datetime.datetime(2020, 6, 6, 15, 41, 44, 866535, tzinfo=tzfile('PRC')) 203 0 0 0 0 0 0 0 0.0 0 0.0 0.0 0 0.0 0.0 0 0.0 0.0 0.0 None
# credit_buying_on_collateral
- 担保品买入
函数原型
credit_buying_on_collateral(symbol, volume, price,
order_type=OrderType_Limit,
order_duration=OrderDuration_Unknown,
order_qualifier=OrderQualifier_Unknown, account_id='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
volume | int | 数量 |
price | float | 价格, (限价委托的委托价格,市价委托的保护价) |
order_type | int | 委托类型 取值参考 OrderType |
order_duration | int | 委托时间属性 取值参考 OrderDuration |
order_qualifier | int | 委托成交属性 取值参考 OrderQualifier |
account_id | str | 账号 id,不填或留空,表示使用默认账号,否则使用指定账号 |
返回值:list[dict]
请参考 order 对象 返回值字段说明
示例代码
credit_buying_on_collateral(symbol='SHSE.600000', volume=100, price=10.67, order_type=OrderType_Limit,
order_duration=OrderDuration_Unknown,
order_qualifier=OrderQualifier_Unknown,
account_id='')
示例返回值
strategy_id account_id cl_ord_id symbol order_type status price volume created_at order_business account_name order_id ex_ord_id algo_order_id side position_effect position_side order_duration order_qualifier order_src ord_rej_reason ord_rej_reason_detail stop_price order_style value percent target_volume target_value target_percent filled_volume filled_vwap filled_amount filled_commission updated_at
------------------------------------ ------------------------------------ ------------------------------------ ----------- ---------- ------ ----- ------ ----------------------------------------------------------------------- -------------- ------------ -------- --------- ------------- ---- --------------- ------------- -------------- --------------- --------- -------------- --------------------- ---------- ----------- ----- ------- ------------- ------------ -------------- ------------- ----------- ------------- ----------------- ----------
3af55cb8-a7c5-11ea-b510-309c231d28bd 8f30e83f-a7c5-11ea-b510-309c231d28bd 2b861a31-a7c9-11ea-b510-309c231d28bd SHSE.600000 1 10 10.67 100 datetime.datetime(2020, 6, 6, 15, 41, 44, 869534, tzinfo=tzfile('PRC')) 207 0 0 0 0 0 0 0 0.0 0 0.0 0.0 0 0.0 0.0 0 0.0 0.0 0.0 None
# credit_selling_on_collateral
- 担保品卖出
函数原型
credit_selling_on_collateral(symbol, volume, price,
order_type=OrderType_Limit,
order_duration=OrderDuration_Unknown,
order_qualifier=OrderQualifier_Unknown, account_id='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
volume | int | 数量 |
price | float | 价格, (限价委托的委托价格,市价委托的保护价) |
order_type | int | 委托类型 取值参考 OrderType |
order_duration | int | 委托时间属性 取值参考 OrderDuration |
order_qualifier | int | 委托成交属性 取值参考 OrderQualifier |
account_id | str | 账号 id,不填或留空,表示使用默认账号,否则使用指定账号 |
返回值:list[dict]
请参考order 对象 返回值字段说明
示例代码
credit_selling_on_collateral(symbol='SHSE.600000', volume=100, price=10.67, order_type=OrderType_Limit,
order_duration=OrderDuration_Unknown,
order_qualifier=OrderQualifier_Unknown,
account_id='')
示例返回值
strategy_id account_id cl_ord_id symbol order_type status price volume created_at order_business account_name order_id ex_ord_id algo_order_id side position_effect position_side order_duration order_qualifier order_src ord_rej_reason ord_rej_reason_detail stop_price order_style value percent target_volume target_value target_percent filled_volume filled_vwap filled_amount filled_commission updated_at
------------------------------------ ------------------------------------ ------------------------------------ ----------- ---------- ------ ----- ------ ----------------------------------------------------------------------- -------------- ------------ -------- --------- ------------- ---- --------------- ------------- -------------- --------------- --------- -------------- --------------------- ---------- ----------- ----- ------- ------------- ------------ -------------- ------------- ----------- ------------- ----------------- ----------
3af55cb8-a7c5-11ea-b510-309c231d28bd 8f30e83f-a7c5-11ea-b510-309c231d28bd 2b861a31-a7c9-11ea-b510-309c231d28bd SHSE.600000 1 10 10.67 100 datetime.datetime(2020, 6, 6, 15, 41, 44, 869534, tzinfo=tzfile('PRC')) 208 0 0 0 0 0 0 0 0.0 0 0.0 0.0 0 0.0 0.0 0 0.0 0.0 0.0 None
# credit_collateral_in
- 担保品转入
函数原型
credit_collateral_in(symbol, volume, account_id='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
volume | int | 数量 |
account_id | str | 账号 id,不填或留空,表示使用默认账号,否则使用指定账号 |
返回值:list[dict]
请参考 order 对象 返回值字段说明
示例代码
credit_collateral_in(symbol='SHSE.600000', volume=100, account_id='')
示例返回值
strategy_id account_id cl_ord_id symbol order_type status volume created_at order_business account_name order_id ex_ord_id algo_order_id side position_effect position_side order_duration order_qualifier order_src ord_rej_reason ord_rej_reason_detail price stop_price order_style value percent target_volume target_value target_percent filled_volume filled_vwap filled_amount filled_commission updated_at
------------------------------------ ------------------------------------ ------------------------------------ ----------- ---------- ------ ------ ----------------------------------------------------------------------- -------------- ------------ -------- --------- ------------- ---- --------------- ------------- -------------- --------------- --------- -------------- --------------------- ----- ---------- ----------- ----- ------- ------------- ------------ -------------- ------------- ----------- ------------- ----------------- ----------
3af55cb8-a7c5-11ea-b510-309c231d28bd 8f30e83f-a7c5-11ea-b510-309c231d28bd 2b868f72-a7c9-11ea-b510-309c231d28bd SHSE.600000 1 10 100 datetime.datetime(2020, 6, 6, 15, 41, 44, 872536, tzinfo=tzfile('PRC')) 209 0 0 0 0 0 0 0 0.0 0.0 0 0.0 0.0 0 0.0 0.0 0 0.0 0.0 0.0 None
...... ......
# credit_collateral_out
- 担保品转出
函数原型
credit_collateral_out(symbol, volume, account_id='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
volume | int | 数量 |
account_id | str | 账号 id,不填或留空,表示使用默认账号,否则使用指定账号 |
返回值:list[dict]
请参考 order 对象 返回值字段说明
示例代码
credit_collateral_out(symbol='SHSE.600000', volume=100, account_id='')
示例返回值
strategy_id account_id cl_ord_id symbol order_type status volume created_at order_business account_name order_id ex_ord_id algo_order_id side position_effect position_side order_duration order_qualifier order_src ord_rej_reason ord_rej_reason_detail price stop_price order_style value percent target_volume target_value target_percent filled_volume filled_vwap filled_amount filled_commission updated_at
------------------------------------ ------------------------------------ ------------------------------------ ----------- ---------- ------ ------ ----------------------------------------------------------------------- -------------- ------------ -------- --------- ------------- ---- --------------- ------------- -------------- --------------- --------- -------------- --------------------- ----- ---------- ----------- ----- ------- ------------- ------------ -------------- ------------- ----------- ------------- ----------------- ----------
3af55cb8-a7c5-11ea-b510-309c231d28bd 8f30e83f-a7c5-11ea-b510-309c231d28bd 2b868f72-a7c9-11ea-b510-309c231d28bd SHSE.600000 1 10 100 datetime.datetime(2020, 6, 6, 15, 41, 44, 872536, tzinfo=tzfile('PRC')) 210 0 0 0 0 0 0 0 0.0 0.0 0 0.0 0.0 0 0.0 0.0 0 0.0 0.0 0.0 None
...... ......
# 算法交易函数
# 算法 SDK
python 算法 SDK 包含在 gm3.0.126 版本及以上版本,不需要引入新库 仅支持实时模式,部分券商版本可用
# algo_order
算法交易委托
委托算法母单
函数原型:
algo_order(symbol, volume, side, order_type,position_effect, price, algo_name, algo_param)
参数:
参数 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
volume | int | 数量 |
side | int | OrderSide_Buy = 1 买入 OrderSide_Sell = 2 卖出 |
order_type | int | OrderType_Limit = 1 限价委托,OrderType_Market = 2 市价委托 |
position_effect | int | PositionEffect_Open = 1 开仓 PositionEffect_Close = 2 平仓, |
price | int | 基准价格(ATS-SMART 算法不生效) |
algo_name | str | 算法名称,ATS-SMART、ZC-POV |
algo_param | dict | 算法参数 |
返回值:
类型 | 说明 |
---|---|
list[order] | 委托对象列表,参见order 对象 |
当 algo_name = 'ATS-SMART'时 algo_param 的参数为
参数 | 类型 | 说明 |
---|---|---|
start_time | str | 开始时间 |
end_time_referred | str | 结束参考时间(不能超过 14:55:00) |
time_end | str | 结束时间(不能超过 14:55:00) |
end_time_valid | int | 结束时间是否有效,如设为无效,则以收盘时间为结束时间, 1 为有效, 0 为无效 |
stop_sell_when_DL | int | 涨停时是否停止卖出, 1 为是,0 为否 |
cancel_when_PL | int | 跌停时是否撤单, 1 为是, 0 为否 |
min_trade_amount | int | 最小交易金额 |
示例:
# 下算法母单,设定母单的执行参数
algo_param = {'start_time': '09:00:00', 'end_time_referred':'14:55:00', 'end_time': '14:55:00', 'end_time_valid': 1, 'stop_sell_when_dl': 1,
'cancel_when_pl': 0, 'min_trade_amount': 100000}
aorders = algo_order(symbol='SHSE.600000', volume=20000, side=OrderSide_Buy, order_type=OrderType_Limit,
position_effect=PositionEffect_Open, price=5, algo_name='ATS-SMART', algo_param=algo_param)
print(aorders)
输出:
[{'strategy_id': '6f534238-2883-11eb-a8fe-fa163ef85f63', 'account_id': '927f9095-27e5-11eb-bb81-fa163ef85f63', 'account_name': '1001000002', 'cl_ord_id': '03f13690-2d64-11eb-9e36-fa163ef85f63', 'symbol': 'SHSE.600000', 'side': 1, 'position_effect': 1, 'order_type': 1, 'status': 10, 'price': 5.0, 'order_style': 1, 'volume': 20000, 'created_at': datetime.datetime(2020, 11, 23, 16, 15, 15, 105141, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 11, 23, 16, 15, 15, 105141,tzinfo=tzfile('PRC')), 'algo_name': 'ATS-SMART', 'algo_param': 'start_time&&1606093200||end_time_referred&&1606114500||end_time&&1606114500||end_time_valid&&1||stop_sell_when_dl&&1||cancel_when_pl&&0||min_trade_amount&&100000', 'order_id': '', 'ex_ord_id': '', 'position_side': 0, 'order_business': 0, 'order_duration': 0, 'order_qualifier': 0, 'order_src': 0, 'position_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0, 'value': 0.0, 'percent': 0.0, 'target_volume': 0, 'target_value': 0.0, 'target_percent': 0.0, 'filled_volume': 0, 'filled_vwap': 0.0, 'filled_amount': 0.0, 'filled_commission': 0.0, 'algo_status': 0, 'algo_comment': ''}]
当 algo_name = 'ZC-POV'时 algo_param 的参数为
参数 | 类型 | 说明 |
---|---|---|
part_rate | float | 市场参与率(0~45),单位%,默认 30,即 30% |
示例:
# 下算法母单,设定母单的执行参数
algo_param = {"participation_rate" : 15}
aorder = algo_order(symbol=symbol, volume=1000, side=OrderSide_Buy, order_type=OrderSide_Buy,
position_effect=PositionEffect_Open, price=price, algo_name=algo_name, algo_param=algo_param)
print(aorder)
输出:
[{'strategy_id': '6f534238-2883-11eb-a8fe-fa163ef85f63', 'account_id': '15b7afb1-e91d-11eb-953b-025041000001', 'account_name': 'b6b2819b-e864-11eb-b146-00163e0a4100', 'cl_ord_id': 'e0f4ca3f-f97a-11eb-acee-165afc004509', 'symbol': 'SHSE.600007', 'side': 1, 'position_effect': 1, 'order_type': 1, 'status': 10, 'price': 15.470000267028809, 'order_style': 1, 'volume': 1000, 'created_at': datetime.datetime(2021, 8, 10, 9, 32, 52, 39737, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2021, 8, 10, 9, 32, 52, 42738, tzinfo=tzfile('PRC')), 'algo_name': 'ZC-POV', 'algo_param': 'TimeStart&&1628559000||TimeEnd&&1628578800||PartRate&&0.150000||MinAmount&&1000', 'order_id': '', 'ex_ord_id': '', 'position_side': 0, 'order_business': 0, 'order_duration': 0, 'order_qualifier': 0, 'order_src': 0, 'position_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0, 'value': 0.0, 'percent': 0.0, 'target_volume': 0, 'target_value': 0.0, 'target_percent': 0.0, 'filled_volume': 0, 'filled_vwap': 0.0, 'filled_amount': 0.0, 'filled_commission': 0.0, 'algo_status': 0, 'algo_comment': '', 'properties': {}]
注意: 回测模式不支持算法单
# algo_order_cancel
撤销算法委托
撤销母单委托
函数原型:
algo_order_cancel(wait_cancel_orders)
参数:
参数 | 类型 | 说明 |
---|---|---|
wait_cancel_orders | str | 撤单算法委托. 传入单个字典. 或者 list 字典. 每个字典包含 key:cl_ord_id key:account_id |
cl_ord_id 为委托 id, account_id 为账户 id
返回值:
类型 | 说明 |
---|---|
list[order] | 委托对象列表,参见order 对象 |
示例:
aorders = get_algo_orders(account='')
wait_cancel_orders = [{'cl_ord_id': aorders[0]['cl_ord_id'], 'account_id': aorders[0]['account_id']}]
algo_order_cancel(wait_cancel_orders)
# get_algo_orders
查询算法委托
查询母单委托
函数原型:
algo_order_cancel(account)
参数:
参数 | 类型 | 说明 |
---|---|---|
account | str | account_id 默认帐号时为 '' |
返回值:
类型 | 说明 |
---|---|
list[order] | 委托对象列表,参见order 对象 |
示例:
get_algo_orders(account='')
输出:
[{'strategy_id': '6f534238-2883-11eb-a8fe-fa163ef85f63', 'account_id': '927f9095-27e5-11eb-bb81-fa163ef85f63', 'account_name': '1001000002', 'cl_ord_id': 'fe0ec2d3-2d50-11eb-9e36-fa163ef85f63', 'symbol': 'SHSE.510300', 'side': 1, 'position_effect': 1, 'order_type': 1, 'status': 10, 'price': 5.0, 'order_style': 1, 'volume': 20000, 'created_at': datetime.datetime(2020, 11, 23, 13, 59, 4,794594, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 11, 23, 13, 59, 4, 795571, tzinfo=tzfile('PRC')), 'algo_name': 'ATS-SMART', 'algo_param': 'start_time&&1606093200||end_time_referred&&1606114500||end_time&&1606114500||end_time_valid&&1||stop_sell_when_dl&&1||cancel_when_pl&&0||min_trade_amount&&100000', 'order_id': '', 'ex_ord_id': '', 'position_side': 0, 'order_business': 0, 'order_duration': 0, 'order_qualifier': 0, 'order_src': 0, 'position_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0, 'value': 0.0, 'percent': 0.0, 'target_volume': 0, 'target_value': 0.0, 'target_percent': 0.0, 'filled_volume': 0, 'filled_vwap': 0.0, 'filled_amount': 0.0, 'filled_commission': 0.0, 'algo_status': 0, 'algo_comment': ''}]
# algo_order_pause
暂停或重启或者撤销算法委托
函数原型:
algo_order_pause(alorders)
参数:
参数 | 类型 | 说明 |
---|---|---|
alorders | str | 传入单个字典. 或者 list 字典. 每个字典包含 key:cl_ord_id, key:account_id key:algo_status |
cl_ord_id 为委托 id, account_id 为账户 id,algo_status 为算法单状态(1 - 重启 2 - 暂停 3 -暂停并撤子单)
返回值:
类型 | 说明 |
---|---|
list[order] | 委托对象列表,参见order 对象 |
aorders = get_algo_orders(account='')
# 暂停订单,修改订单结构的母单状态字段
alorders01 = [{'cl_ord_id': aorders[0]['cl_ord_id'], 'account_id': aorders[0]['account_id'], 'algo_status': 3}]
algo_order_pause(alorders01)
注意: ATS-SMART 算法暂不支持此接口
# get_algo_child_orders
查询算法委托的所有子单
函数原型:
get_algo_child_orders(cl_ord_id, account='')
参数:
参数 | 类型 | 说明 |
---|---|---|
cl_ord_id | str | 传入单个字典. 或者 list 字典. 每个字典包含 key:cl_ord_id |
account | str | account_id 默认帐号时为 '' |
返回值:
类型 | 说明 |
---|---|
list[order] | 委托对象列表,参见order 对象 |
示例:
aorders = get_algo_orders(account='')
child_order= get_algo_child_orders(aorders[0]['cl_ord_id'], account='')
print(child_order[0])
输出:
[{'account_id': '17ceec74-2efb-11eb-b437-00ff5a669ee2', 'account_name': '0000001', 'cl_ord_id': '1606294231_9', 'order_id': '1606294231_9', 'symbol': 'SZSE.000001', 'side': 1, 'position_effect': 1, 'order_type': 1, 'status': 3, 'price': 19.06, 'volume': 100, 'filled_volume': 100, 'filled_vwap': 19.06, 'filled_amount': 1905.9999999999998, 'algo_order_id': '453b3064-2efb-11eb-b437-00ff5a669ee2', 'strategy_id': '', 'ex_ord_id': '', 'position_side': 0, 'order_business': 0, 'order_duration': 0, 'order_qualifier': 0, 'order_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0, 'order_style': 0, 'value': 0.0, 'percent': 0.0, 'target_volume': 0, 'target_value': 0.0, 'target_percent': 0.0, 'filled_commission': 0.0, 'created_at': None, 'updated_at': None}]
# on_algo_order_status
算法单状态事件
响应算法单状态更新事情,下算法单后状态更新时被触发
函数原型:
on_algo_order_status(context, algo_order)
参数:
参数名 | 类型 | 说明 |
---|---|---|
context | context | 上下文 |
algo_order | order 对象 | 委托 |
示例:
def on_algo_order_status(context, algo_order):
print(algo_order)
输出:
{'strategy_id': '6f534238-2883-11eb-a8fe-fa163ef85f63', 'account_id': '927f9095-27e5-11eb-bb81-fa163ef85f63', 'account_name': '1001000002', 'cl_ord_id': '09baa735-2e01-11eb-ab6f-fa163ef85f63','symbol': 'SHSE.600000', 'side': 1, 'position_effect': 1,'order_type': 1, 'status':1, 'price': 5.0, 'order_style': 1, 'volume': 20000, 'created_at':datetime.datetime(2020,11, 24, 10, 59, 15, 800453, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 11, 24, 10, 59, 17, 922523, tzinfo=tzfile('PRC')), 'algo_name': 'ATS-SMART', 'algo_param': 'start_time&&1606179600||end_time_referred&&1606200900||end_time&&1606200900||end_time_valid&&1|stop_sell_when_dl&&1||cancel_when_pl&&0||min_trade_amount&&100000', 'order_id': '', 'ex_ord_id':'', 'position_side': 0, 'order_business': 0, 'order_duration': 0, 'order_qualifier':0, 'order_src': 0, 'position_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0, 'value': 0.0, 'percent': 0.0, 'target_volume': 0, 'target_value': 0.0, 'target_percent': 0.0, 'filled_volume': 0, 'filled_vwap': 0.0, 'filled_amount': 0.0, 'filled_commission': 0.0, 'algo_status':0, 'algo_comment': ''}
# 新股交易函数
# 新股 SDK
# ipo_buy
- 新股申购
仅在实盘中可以使用
函数原型:
ipo_buy(symbol, volume, price, account_id='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
volume | int | 申购数量 |
price | float | 新股发行价 |
account_id | str | 账户 ID,不指定则使用默认账户 |
返回值 List[Dict]
# ipo_get_quota
- 查询新股申购额度
仅在实盘中可以使用
函数原型:
ipo_get_quota(account_id='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
account_id | str | 账户 ID,不指定则使用默认账户 |
返回值:
List[Dict[str, Any]]
key | value 类型 | 说明 |
---|---|---|
quota | float | 可申购数量 |
# ipo_get_instruments
- 查询当日新股清单
仅在实盘中可以使用
函数原型:
ipo_get_instruments(sec_type, account_id='', df=False)
参数:
参数名 | 类型 | 说明 |
---|---|---|
sec_type | int | 标的类型,用以区别获取新股还是新债 |
account_id | str | 账户 ID,不指定则使用默认账户 |
df | bool | 是否返回 DataFrame |
返回值:
List[Dict]
key | value 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
price | float | 申购价格 |
min_vol | int | 申购最小数量 |
max_vol | int | 申购最大数量 |
# ipo_get_match_number
- 查询配号
仅在实盘中可以使用
函数原型:
ipo_get_match_number(start_time, end_time, account_id='', df=False)
参数:
参数名 | 类型 | 说明 |
---|---|---|
start_time | str | 开始时间, (%Y-%m-%d %H:%M:%S 格式) |
end_time | str | 结束时间, (%Y-%m-%d %H:%M:%S 格式) |
account_id | str | 账户 ID,不指定则使用默认账户 |
df | bool | 是否返回 DataFrame |
返回值:
List[Dict]
key | value 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
order_id | str | 委托号 |
volume | int | 成交数量 |
match_number | str | 申购配号 |
order_at | datetime.datetime | 委托日期 |
match_at | datetime.datetime | 配号日期 |
# ipo_get_lot_info
- 中签查询
仅在实盘中可以使用
函数原型:
ipo_get_lot_info(account_id='', df=False)
参数:
参数名 | 类型 | 说明 |
---|---|---|
account_id | str | 账户 ID,不指定则使用默认账户 |
df | bool | 是否返回 DataFrame |
返回值:
List[Dict]
key | value 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
order_at | datetime.datetime | 委托日期 |
lot_at | datetime.datetime | 中签日期 |
lot_volume | int | 中签数量 |
give_up_volume | int | 放弃数量 |
price | float | 中签价格 |
amount | float | 中签金额 |
pay_volume | float | 已缴款数量 |
pay_amount | float | 已缴款金额 |
# 基金交易函数
# 基金业务 SDK
# fund_etf_buy
- ETF 申购
仅在实盘中可以使用
fund_etf_buy(symbol, volume, price, account_id='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
volume | int | 申购数量 |
price | float | 申购价格 |
account_id | str | 账户 ID,不指定则使用默认账户 |
返回值 List[Dict]
# fund_etf_redemption
- ETF 赎回
仅在实盘中可以使用
fund_etf_redemption(symbol, volume, price, account_id='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
volume | int | 赎回数量 |
price | float | 赎回价格 |
account_id | str | 账户 ID,不指定则使用默认账户 |
返回值 List[Dict]
# fund_subscribing
- 基金认购
仅在实盘中可以使用
fund_subscribing(symbol, volume, account_id='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
volume | int | 认购数量 |
account_id | str | 账户 ID,不指定则使用默认账户 |
返回值 List[Dict]
# fund_buy
- 基金申购
仅在实盘中可以使用
fund_buy(symbol, volume, account_id='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
volume | int | 申购数量 |
account_id | str | 账户 ID,不指定则使用默认账户 |
返回值 List[Dict]
# fund_redemption
- 基金赎回
仅在实盘中可以使用
fund_redemption(symbol, volume, account_id='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
volume | int | 认购数量 |
account_id | str | 账户 ID,不指定则使用默认账户 |
返回值 List[Dict]
# 债券交易函数
# 债券业务 SDK
# bond_reverse_repurchase_agreement
- 国债逆回购
仅在实盘中可以使用
bond_reverse_repurchase_agreement(symbol, volume, price, order_type=OrderType_Limit,
order_duration=OrderQualifier_Unknown, order_qualifier=OrderQualifier_Unknown, account_id='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
volume | int | 认购数量 |
price | float | 价格 |
order_type | int | 委托类型 |
order_duration | int | 委托时间属性 |
order_qualifier | int | 委托成交属性 |
account_id | str | 账户 ID,不指定则使用默认账户 |
返回值 List[Dict]
**注意:**逆回购 1 张为 100 元。上海市场最少交易 1000 张,深圳最少交易 10 张。且上海数量必须是 1000 张的整数倍,深圳数量必须是 10 张的整数倍,也即上海要 10 万元一个单位的买,深圳一千元一个单位的买。
# bond_convertible_call
- 可转债转股
仅在实盘中可以使用
bond_convertible_call(symbol, volume, price=0.0, account_id='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
volume | int | 认购数量 |
price | float | 价格 |
account_id | str | 账户 ID,不指定则使用默认账户 |
返回值 List[Dict[Text, Any]]
# bond_convertible_put
- 可转债回售
仅在实盘中可以使用
bond_convertible_put(symbol, volume, price=0.0, account_id='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
volume | int | 认购数量 |
price | float | 价格 |
account_id | str | 账户 ID,不指定则使用默认账户 |
返回值 List[Dict[Text, Any]]
# bond_convertible_put_cancel
- 可转债回售撤销
仅在实盘中可以使用
bond_convertible_put_cancel(symbol, volume, account_id='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
volume | int | 认购数量 |
account_id | str | 账户 ID,不指定则使用默认账户 |
返回值 List[Dict[Text, Any]]
# 交易事件
# on_order_status
- 委托状态更新事件
响应委托状态更新事情,下单后及委托状态更新时被触发。 注意: 1. 交易账户重连后,会重新推送一遍交易账户登录成功后查询回来的所有委托 2. 撤单拒绝,会推送撤单委托的最终状态
函数原型:
on_order_status(context, order)
参数:
参数名 | 类型 | 说明 |
---|---|---|
context | context | 上下文 |
order | order 对象 | 委托 |
示例:
def init(context):
# 记录委托id
context.cl_ord_id = {}
order_list = get_orders()
if order_list:
context.cl_ord_id = {i['cl_ord_id']: {'status': i['status'], 'filled_volume': i['filled_volume']} for i in order_list}
def on_bar(context, bars):
# 记录下单后对应的委托id,方便在on_order_status里追踪,实时模式下下单后会立刻返回10待报状态,其他状态需要通过on_order_status事件监控
order = order_volume(symbol=symbol, volume=volume, side=OrderSide_Sell, order_type=OrderType_Limit,
position_effect=PositionEffect_CloseToday,
price=price_1)
context.cl_ord_id[order[0]['cl_ord_id']] = {}
context.cl_ord_id[order[0]['cl_ord_id']]['status'] = order[0]['status']
context.cl_ord_id[order[0]['cl_ord_id']]['filled_volume'] = order[0]['filled_volume']
def on_order_status(context, order):
# 过滤非此策略下单的委托和重复状态的委托
if order.strategy_id == context.strategy_id and order.cl_ord_id in context.cl_ord_id.keys():
if order.status != context.cl_ord_id[order.cl_ord_id]['status']:
context.cl_ord_id[order.cl_ord_id]['status'] = order['status']
context.cl_ord_id[order.cl_ord_id]['filled_volume'] = order['filled_volume']
else:
# 部分成交状态时,根据已成交量判断order是不是最新的
if order.status == 2 and order.filled_volume != context.cl_ord_id[order.cl_ord_id]['filled_volume']:
context.cl_ord_id[order.cl_ord_id]['filled_volume'] = order['filled_volume']
else:
return
# 可在后面执行其他处理逻辑
print(order)
输出:
{'strategy_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'cl_ord_id': '000000000', 'symbol': 'SHSE.600000', 'side': 1, 'position_effect': 1, 'position_side': 1, 'order_type': 1, 'status': 3, 'price': 11.0, 'order_style': 1, 'volume': 18181800, 'value': 200000000.0, 'percent': 0.1, 'target_volume': 18181800, 'target_value': 199999800.0, 'target_percent': 0.1, 'filled_volume': 18181800, 'filled_vwap': 11.0011, 'filled_amount': 200019799.98, 'created_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'filled_commission': 20001.979998, 'account_name': '', 'order_id': '', 'ex_ord_id': '', 'algo_order_id': '', 'order_business': 0, 'order_duration': 0, 'order_qualifier': 0, 'order_src': 0, 'position_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0}
# on_execution_report
- 委托执行回报事件
响应委托被执行事件,委托成交或者撤单拒绝后被触发。 注意: 1. 交易账户重连后,会重新推送一遍交易账户登录成功后查询回来的所有执行回报 2. 撤单拒绝后,会推送撤单拒绝执行回报,可以根据 exec_id 区分
函数原型:
on_execution_report(context, execrpt)
参数:
参数名 | 类型 | 说明 |
---|---|---|
context | context | 上下文 |
execrpt | execrpt | 回报 |
示例:
def init(context):
# 记录成交id
context.exec_id = []
exec_rpt_list = get_execution_reports()
if exec_rpt_list:
context.exec_id = [i['exec_id'] for i in exec_rpt_list]
def on_execution_report(context, execrpt):
# 过滤掉非此策略和成交类型不是15成交的回报
if execrpt.exec_type == 15 and execrpt.exec_id not in context.exec_id and execrpt.strategy_id == context.strategy_id:
context.exec_id.append(execrpt.exec_id)
# 后面可以执行其他处理逻辑
print(execrpt)
输出:
{'strategy_id': 'e41dec22-2d72-11eb-b043-00ff5a669ee2', 'cl_ord_id': '000000247', 'symbol': 'SHSE.600000', 'position_effect': 1, 'side': 1, 'exec_type': 15, 'price': 12.640000343322754, 'volume': 200, 'amount': 2528.000068664551, 'account_id': '', 'account_name': '', 'order_id': '', 'exec_id': '', 'order_business': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'commission': 0.0, 'cost': 0.0, 'created_at': None}
# on_account_status
- 交易账户状态更新事件
响应交易账户状态更新事件,交易账户状态变化时被触发。 函数原型:
def on_account_status(context, account):
print(account)
参数:
参数名 | 类型 | 说明 |
---|---|---|
context | context | 上下文 |
account | account, 包含 account_id(账户 id), account_name(账户名),status(账户状态) | 交易账户状态对象,仅响应 已连接,已登录,已断开 和 错误 事件。 |
示例:
def on_account_status(context, account):
print(account)
输出:
{'account_id': '4946cc09-fefd-11ea-ac6a-52560acd7da0', 'account_name': '', 'status': {'state': 5, 'error': {'code': 0, 'type': '', 'info': ''}}}
# 动态参数
动态参数仅在仿真交易和实盘交易下生效, 可在终端设置和修改。
动态参数通过策略调用接口实现策略和掘金界面参数交互, 在不停止策略运行的情况下,界面修改参数(移开光标,修改就会生效)会对策略里的指定变量做修改
# add_parameter
- 增加动态参数
函数原型:
add_parameter(key, value, min=0, max=0, name='', intro='', group='', readonly=False)
参数:
参数名 | 类型 | 说明 |
---|---|---|
key | str | 参数的键 |
value | double | 参数的值 |
min | double | 最小值 |
max | double | 最大值 |
name | str | 参数名称 |
intro | str | 参数说明 |
group | str | 参数的组 |
readonly | bool | 是否为只读参数 |
返回值:
None
示例:
context.k_value = 80
add_parameter(key='k_value', value=context.k_value, min=0, max=100, name='k值阀值', intro='调整k值', group='1', readonly=False)
# set_parameter
- 修改已经添加过的动态参数
**注意:**需要保持 key 键名和添加过的动态参数的 key 一致,否则不生效,无报错
函数原型:
set_parameter(key, value, min=0, max=0, name='', intro='', group='', readonly=False)
参数:
参数名 | 类型 | 说明 |
---|---|---|
key | str | 参数的键 |
value | double | 参数的值 |
min | double | 最小值 |
max | double | 最大值 |
name | str | 参数名称 |
intro | str | 参数说明 |
group | str | 参数的组 |
readonly | bool | 是否为只读参数 |
返回值:
None
示例:
context.k_xl = 0.3
set_parameter(key='k_value', value=context.k_xl, min=0, max=1, name='k值斜率', intro='调整k值斜率', group='1', readonly=False)
# on_parameter
- 动态参数修改事件推送
函数原型:
on_parameter(context, parameter)
参数:
参数名 | 类型 | 说明 |
---|---|---|
context | context | 上下文 |
parameter | dict | 当前被推送的动态参数对象 |
示例:
def on_parameter(context, parameter):
print(parameter)
输出:
{'key': 'k_value', 'value': 80.0, 'max': 100.0, 'name': 'k值阀值', 'intro': '调整k值', 'group': '1', 'min': 0.0, 'readonly': False}
# context.parameters - 获取所有动态参数
返回数据类型为字典, key 为动态参数的 key, 值为动态参数对象
示例:
print(context.parameters)
输出:
{'k_value': {'key': 'k_value', 'value': 80.0, 'max': 100.0, 'name': 'k值阀值', 'intro': 'k值阀值', 'group': '1', 'min': 0.0, 'readonly': False}, 'd_value': {'key': 'd_value', 'value': 20.0, 'max': 100.0, 'name': 'd值阀值', 'intro': 'd值阀值', 'group': '1', 'min': 0.0, 'readonly': False}}
# 其他函数
# set_token
- 设置 token
用户有时只需要提取数据, set_token 后就可以直接调用数据函数, 无需编写策略结构。如果 token 不合法, 访问需要身份验证的函数会抛出异常。
token 位置参见终端-系统设置界面-密钥管理(token)
函数原型:
set_token(token)
参数:
参数名 | 类型 | 说明 |
---|---|---|
token | str | 身份标识 |
返回值:
None
示例:
set_token('your token')
history_data = history(symbol='SHSE.000300', frequency='1d', start_time='2010-07-28', end_time='2017-07-30', df=True)
注意: token 输入错误会报错“错误或无效的 token”。
# set_option
- 系统设置函数
设置策略单次运行时的系统选项。
函数原型:
set_option(max_wait_time=3600000, backtest_thread_num=1, ...)
参数:
参数名 | 类型 | 说明 |
---|---|---|
max_wait_time | int | api 调用触发流控(超出单位时间窗口的调用次数)时,允许系统冷却的最大等待时间(单位:毫秒)。 若系统当次冷却需要的时间>max_wait_time,api 调用失败会返回流控错误,需要策略自行处理(例如捕获错误提示中的需等待时间,自行等待相应时间)。 默认max_wait_time=3600000 ,即最大 3600000 毫秒,可设范围[0,3600000]. |
backtest_thread_num | int | 回测运行的最大线程个数。默认backtest_thread_num=1 ,即回测运行最多使用 1 个线程,可设范围[1,32]. |
返回值:
None
示例:
def init(context):
set_option(max_wait_time=3000)
set_option(backtest_thread_num=4)
def init(context):
set_option(max_wait_time=3000, backtest_thread_num=4)
注意:
- 设置
max_wait_time
,在回测模式/实时模式均可生效,与 run()中设定的策略模式 mode 一致。- 用户策略触发流控规则后,掘金系统默认会自动冷却,等待下一时间窗口再请求下一轮,不会中止策略;只有系统当次冷却需要的时间超出
max_wait_time
时,才会返回流控错误并终止策略。 - 如果自定义最大等待时间
max_wait_time=0
,触发流控规则后会返回流控错误并中止策略。如果不想中止策略,可根据流控错误提示中的等待时间,自行冷却,再次发起调用请求。
- 用户策略触发流控规则后,掘金系统默认会自动冷却,等待下一时间窗口再请求下一轮,不会中止策略;只有系统当次冷却需要的时间超出
- 设置
backtest_thread_num
,只对回测模式生效。
# log - 日志函数
函数原型:
log(level, msg, source)
参数:
参数名 | 类型 | 说明 |
---|---|---|
level | str | 日志级别 debug , info , warning , error |
msg | str | 信息 |
source | str | 来源 |
返回值:
None
示例:
log(level='info', msg='平安银行信号触发', source='strategy')
注意:
1. log 函数仅支持实时模式,输出到终端策略日志处。
2. level 输入无效参数不会报错,终端日志无显示。
3. 参数类型报 NameError 错误,缺少参数报 TypeError 错误。
4. 重启终端日志记录会自动清除,需要记录日志到本地的,可以使用 Python 的 logging 库
# get_strerror
- 查询错误码的错误描述信息
函数原型:
get_strerror(error_code)
参数:
参数名 | 类型 | 说明 |
---|---|---|
error_code | int | 错误码 |
全部 错误码详细信息
返回值:
错误原因描述信息字符串
示例:
err = get_strerror(error_code=1010)
print(err)
输出:
b'\xe6\x97\xa0\xe6\xb3\x95\xe8\x8e\xb7\xe5\x8f\x96\xe6\x8e\x98\xe9\x87\x91\xe6\x9c\x8d\xe5\x8a\xa1\xe5\x99\xa8\xe5\x9c\xb0\xe5\x9d\x80\xe5\x88\x97\xe8\xa1\xa8'
注意:
error_code 值输入错误无报错,返回值为空。
# get_version
- 查询 api 版本
函数原型:
get_version()
返回值:
字符串 当前 API 版本号
示例:
version = get_version()
print(version)
输出:
3.0.127
# 其他事件
# on_backtest_finished
- 回测结束事件
描述: 在回测模式下,回测结束后会触发该事件,并返回回测得到的绩效指标对象
函数原型:
on_backtest_finished(context, indicator)
参数:
参数名 | 类型 | 说明 |
---|---|---|
context | context | 上下文 |
indicator | indicator | 绩效指标 |
示例:
def on_backtest_finished(context, indicator):
print(indicator)
返回:
{'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'pnl_ratio': -0.007426408687162637, 'pnl_ratio_annual': -1.3553195854071813, 'sharp_ratio': -15.034348187048744, 'max_drawdown': 0.0009580714324989177, 'risk_ratio': 0.10010591267452242, 'open_count': 1, 'close_count': 1, 'lose_count': 1, 'calmar_ratio': -1414.6331259164358, 'win_count': 0, 'win_ratio': 0.0, 'created_at': None, 'updated_at': None}
# on_error
- 错误事件
描述: 当发生异常情况,比如断网时、终端服务崩溃是会触发
函数原型:
on_error(context, code, info)
参数:
参数名 | 类型 | 说明 |
---|---|---|
context | context | 上下文 |
code | int | 错误码 |
info | str | 错误信息 |
示例:
def on_error(context, code, info):
print('code:{}, info:{}'.format(code, info))
stop()
返回:
code:1201, info:实时行情服务连接断开
# on_market_data_connected
- 实时行情网络连接成功事件
描述: 实时行情网络连接时触发,比如策略实时运行启动后会触发、行情断连又重连后会触发
函数原型:
on_market_data_connected(context)
参数:
参数名 | 类型 | 说明 |
---|---|---|
context | context | 上下文 |
示例:
def on_market_data_connected(context):
print ('实时行情网络连接成功')
# on_trade_data_connected
- 交易通道网络连接成功事件
描述: 目前监控 SDK 的交易和终端的链接情况,终端之后部分暂未做在内。账号连接情况可通过终端内账户连接指示灯查看
函数原型:
on_trade_data_connected(context)
参数:
参数名 | 类型 | 说明 |
---|---|---|
context | context | 上下文 |
示例:
def on_trade_data_connected(context):
print ('交易通道网络连接')
# on_market_data_disconnected
- 实时行情网络连接断开事件
函数原型:
描述: 实时行情网络断开时触发,比如策略实时运行行情断连会触发
on_market_data_disconnected(context)
参数:
参数名 | 类型 | 说明 |
---|---|---|
context | context | 上下文 |
示例:
def on_market_data_disconnected(context):
print ('实时行情网络连接')
# on_trade_data_disconnected
- 交易通道网络连接断开事件
描述: 目前监控 SDK 的交易和终端的链接情况,终端交易服务崩溃后会触发,终端之后部分暂未做在内。账号连接情况可通过终端内账户连接指示灯查看
函数原型:
on_trade_data_disconnected(context)
参数:
参数名 | 类型 | 说明 |
---|---|---|
context | context | 上下文 |
示例:
def on_trade_data_disconnected(context):
print ('交易通道网络连接失败')