# 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.目前暂时支持1d1w1m,其中1w1m仅用于回测

# 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)

注意:

  1. 仿真、实盘场景适用,回测模式下不生效
  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)

注意:

  1. subscribe 支持多次调用,并可以重复订阅同一代码。订阅后的数据储存在本地,需要通过 context.data 接口调用或是直接在 on_tick 或 on_bar 中获取。

  2. 在实时模式下,最新返回的数据是不复权的。

# 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]

返回值:参考tick 对象bar 对象

当 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]

返回值:参考tick 对象bar 对象

当 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 对象

返回值:参考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.6000022017-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.0000012016-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_datecount 条记录

函数原型:

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]

返回值:

  1. 参数 fields 为 None 时, 返回 list[str] , 成分股列表

  2. 参数 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 值constituentstrade_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_dateend_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_dateend_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_dateend_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_dateend_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_dateend_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 值见返回字段名

返回值:dataframelist[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            吨    浙江:国储8370                        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. 关于sideposition_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)

注意:

  1. 设置max_wait_time,在回测模式/实时模式均可生效,与 run()中设定的策略模式 mode 一致。
    • 用户策略触发流控规则后,掘金系统默认会自动冷却,等待下一时间窗口再请求下一轮,不会中止策略;只有系统当次冷却需要的时间超出max_wait_time时,才会返回流控错误并终止策略。
    • 如果自定义最大等待时间max_wait_time=0,触发流控规则后会返回流控错误并中止策略。如果不想中止策略,可根据流控错误提示中的等待时间,自行冷却,再次发起调用请求。
  2. 设置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 ('交易通道网络连接失败')
上次更新: 4/6/2023, 5:37:18 PM