掘金量化—Python SDK文档—5.API 介绍(1)

Python SDK文档

5.API 介绍


5.1基本函数

init - 初始化策略

初始化策略, 策略启动时自动执行。可以在这里初始化策略配置参数。

函数原型:

init(context)

参数:

参数名类型说明
contextcontext上下文,全局变量可存储在这里

示例:

def init(context):# 订阅barsubscribe(symbols='SHSE.600000,SHSE.600004', frequency='30s', count=5)# 增加对象属性,如:设置一个股票资金占用百分比context.percentage_stock = 0.8

注意: 回测模式下init函数里不支持交易操作,仿真模式和实盘模式支持

schedule - 定时任务配置

在指定时间自动执行策略算法, 通常用于选股类型策略

函数原型:

schedule(schedule_func, date_rule, time_rule)

参数:

参数名类型说明
schedule_funcfunction策略定时执行算法
date_rulestrn + 时间单位, 可选'd/w/m' 表示 n 天/n 周/n 月
time_rulestr执行算法的具体时间 (%H:%M:%S 格式)

返回值:

None

示例:

def init(context):#每天的19:06:20执行策略algo_1schedule(schedule_func=algo_1, date_rule='1d', time_rule='19:06:20')#每月的第一个交易日的09:40:00执行策略algo_2schedule(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_idstr策略 id
filenamestr策略文件名称
modeint策略模式 MODE_LIVE(实时)=1 MODE_BACKTEST(回测) =2
tokenstr用户标识
backtest_start_timestr回测开始时间 (%Y-%m-%d %H:%M:%S 格式)
backtest_end_timestr回测结束时间 (%Y-%m-%d %H:%M:%S 格式)
backtest_initial_cashdouble回测初始资金, 默认 1000000
backtest_transaction_ratiodouble回测成交比例, 默认 1.0, 即下单 100%成交
backtest_commission_ratiodouble回测佣金比例, 默认 0
backtest_slippage_ratiodouble回测滑点比例, 默认 0
backtest_adjustint回测复权方式(默认不复权) ADJUST_NONE(不复权)=0 ADJUST_PREV(前复权)=1 ADJUST_POST(后复权)=2
backtest_check_cacheint回测是否使用缓存:1 - 使用, 0 - 不使用;默认使用
serv_addrstr终端服务地址, 默认本地地址, 可不填,若需指定应输入 ip+端口号,如"127.0.0.1:7001"
backtest_match_modeint回测市价撮合模式: 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_funcfunction在 timer 设置的时间到达时触发的事件函数
periodint定时事件间隔毫秒数,设定每隔多少毫秒触发一次定时器,范围在 [1,43200000]
start_delayint等待秒数(毫秒),设定多少毫秒后启动定时器,范围在[0,43200000]

返回值: dict

字段类型说明
timer_statusint定时器设置是否成功,成功=0,失败=非 0 错误码(timer_id 无效)。
timer_idint设定好的定时器 id

#timer_stop - 停止定时器

停止已设置的定时器

函数原型:

timer_stop(timer_id)

复制成功

参数:

字段类型说明
timer_idint要停止的定时器 id

返回值:

字段类型说明
is_stopbool是否成功停止,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=300000, start_delay=0)print('启动定时器2:', context.now)context.counter_2 = 0def ontimer_1(context):# 定时器执行次数计数context.counter_1 += 1# 定时器执行逻辑print('定时器1:', context.now)def ontimer_2(context):# 定时器执行次数计数context.counter_2 += 1# 定时器执行逻辑(如查询账户资金)cash = context.account().cashprint('定时器2:', context.now)# 按执行次数条件停止定时器if context.counter_1 >= 5:ret1 = timer_stop(context.timerid_1['timer_id'])if ret1:print("结束1分钟定时器")if context.counter_2 >= 10:ret2 = timer_stop(context.timerid_2['timer_id'])

注意:

  1. 仿真、实盘场景适用,回测模式下不生效
  2. period 从前一次事件函数开始执行时点起算,若下一次事件函数需要执行时,前一次事件函数没运行完毕,等待上一个事件执行完毕再执行下一个事件。

5.2数据订阅

subscribe - 行情订阅

订阅行情, 可以指定 symbol, 数据滑窗大小, 以及是否需要等待全部代码的数据到齐再触发事件。

函数原型:

subscribe(symbols, frequency='1d', count=1, unsubscribe_previous=False)

参数:

参数名类型说明
symbolsstr or list订阅标的代码, 注意大小写,支持字串格式,如有多个代码, 中间用 , (英文逗号) 隔开, 也支持 ['symbol1', 'symbol2'] 这种列表格式
frequencystr频率, 支持 'tick', '60s', '300s', '900s' 等, 默认'1d', 详情见股票行情数据和期货行情数据, 实时行情支持的频率
countint订阅数据滑窗大小, 默认1 ,详情见数据滑窗
unsubscribe_previousbool是否取消过去订阅的 symbols, 默认False不取消, 输入True则取消所有原来的订阅。

返回值:

None

示例:

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)

注意:

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

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

unsubscribe - 取消订阅

取消行情订阅, 默认取消所有已订阅行情

函数原型:

unsubscribe(symbols='*', frequency='60s')

参数:

参数名类型说明
symbolsstr or list订阅标的代码, 支持字串格式,如有多个代码, 中间用 , (英文逗号) 隔开, 也支持 ['symbol1', 'symbol2'] 这种列表格式
frequencystr频率, 支持 'tick', '60s', '300s', '900s' 等, 默认'1d', 详情见股票行情数据和期货行情数据, 实时行情支持的频率

返回值:

None

示例:

unsubscribe(symbols='SHSE.600000,SHSE.600004', frequency='60s')

注意: 如示例所示代码,取消SHSE.600000,SHSE.600004两只代码60s行情的订阅,若SHSE.600000同时还订阅了"300s"频度的行情,该代码不会取消该标的此频度的订阅


5.3数据事件

数据事件是阻塞回调事件函数,通过 subscribe 函数订阅, 主动推送

on_tick - tick 数据推送事件

接收 tick 分笔数据, 通过 subscribe 订阅 tick 行情,行情服务主动推送 tick 数据

函数原型:

on_tick(context, tick)

参数:

参数名类型说明
contextcontext 对象上下文
ticktick 对象当前被推送的 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)

参数:

参数名类型说明
contextcontext 对象上下文对象
barslist(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)

参数:

参数名类型说明
contextcontext 对象上下文对象
transactionL2Transaction 对象收到的逐笔成交行情

示例:

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)

参数:

参数名类型说明
contextcontext 对象上下文对象
l2orderL2Order 对象收到的逐笔委托行情

示例:

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'}


5.4行情数据查询函数

current - 查询当前行情快照

查询当前行情快照,返回 tick 数据。实时模式,返回当前最新 tick 数据,回测模式,返回回测当前时间点的最近一分钟的收盘价

函数原型:

current(symbols, fields='')

参数:

参数名类型说明
symbolsstr or list查询代码,如有多个代码, 中间用 , (英文逗号) 隔开, 也支持 ['symbol1', 'symbol2'] 这种列表格式 ,使用参考symbol
fieldsstr查询字段, 默认所有字段 具体字段见: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)

参数:

参数名类型说明
symbolstr or list标的代码, 如有多个代码, 中间用 , (英文逗号) 隔开, 也支持 ['symbol1', 'symbol2'] 这种列表格式 ,使用参考symbol
frequencystr频率, 支持 'tick', '1d', '60s' 等, 默认 '1d', 详情见股票行情数据和期货行情数据, 实时行情支持的频率
start_timestr or datetime.datetime开始时间 (%Y-%m-%d %H:%M:%S 格式), 也支持 datetime.datetime 格式
end_timestr or datetime.datetime结束时间 (%Y-%m-%d %H:%M:%S 格式), 也支持 datetime.datetime 格式
fieldsstr指定返回对象字段, 如有多个字段, 中间用, 隔开, 默认所有, 具体字段见:tick 对象 和 bar 对象
skip_suspendedbool是否跳过停牌, 默认跳过
fill_missingstr or None填充方式, None - 不填充, 'NaN' - 用空值填充, 'Last' - 用上一个值填充, 默认 None
adjustintADJUST_NONE or 0: 不复权ADJUST_PREV or 1: 前复权ADJUST_POST or 2: 后复权 默认不复权 , 目前只支持股票
adjust_end_timestr复权基点时间, 默认当前时间
dfbool是否返回 dataframe 格式, 默认 False, 返回 list[dict]

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

当 df = True 时, 返回

类型说明
dataframetick 的 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 时, 返回

类型说明
listtick 列表 或者 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)

参数:

参数名类型说明
symbolstr标的代码(只允许单个标的的代码字符串),使用时参考symbol
frequencystr频率, 支持 'tick', '1d', '60s' 等, 默认 '1d', 详情见股票行情数据和期货行情数据, 实时行情支持的频率
countint数量(正整数)
end_timestr or datetime.datetime结束时间 (%Y-%m-%d %H:%M:%S 格式), 也支持 datetime.datetime 格式,默认 None 时,用了实际当前时间,非回测当前时间
fieldsstr指定返回对象字段, 如有多个字段, 中间用, 隔开, 默认所有, 具体字段见:tick 对象 和 bar 对象
skip_suspendedbool是否跳过停牌, 默认跳过
fill_missingstr or None填充方式, None - 不填充, 'NaN' - 用空值填充, 'Last' - 用上一个值填充, 默认 None
adjustintADJUST_NONE or 0: 不复权ADJUST_PREV or 1: 前复权ADJUST_POST or 2: 后复权 默认不复权 , 目前只支持股票
adjust_end_timestr复权基点时间, 默认当前时间
dfbool是否返回 dataframe 格式, 默认 False, 返回 list[dict]

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

当 df = True 时,返回

类型说明
dataframetick 的 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 时, 返回

类型说明
listtick 列表 或者 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)

参数:

参数名类型说明
symbolstr标的代码(只允许单个标的的代码字符串),使用时参考symbol
frequencystr频率, 支持 'tick', '1d', '60s' 等, 默认 '1d', 详情见股票行情数据和期货行情数据, 实时行情支持的频率
countint滑窗大小(正整数),需小于等于 subscribe 函数中 count 值
fieldsstr指定返回对象字段, 如有多个字段, 中间用, 隔开, 默认所有, 具体字段见:tick 对象 和 bar 对象

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

类型说明
dataframetick 的 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)

参数:

参数名类型说明
symbolsstr标的代码,使用时参考symbol
start_timestr开始时间 (%Y-%m-%d %H:%M:%S 格式)
end_timestr结束时间 (%Y-%m-%d %H:%M:%S 格式)
fieldsstr指定返回对象字段, 如有多个字段, 中间用, 隔开, 默认所有
skip_suspendedbool是否跳过停牌, 默认跳过
fill_missingstr or None填充方式, None - 不填充, 'NaN' - 用空值填充, 'Last' - 用上一个值填充, 默认 None
adjustintADJUST_NONE or 0: 不复权ADJUST_PREV or 1: 前复权ADJUST_POST or 2: 后复权 默认不复权
adjust_end_timestr复权基点时间, 默认当前时间
dfbool是否返回 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}

注意: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)

参数:

参数名类型说明
symbolsstr标的代码,使用时参考symbol
frequencystr频率, 支持 '1d', '60s'等
start_timestr开始时间 (%Y-%m-%d %H:%M:%S 格式)
end_timestr结束时间 (%Y-%m-%d %H:%M:%S 格式)
fieldsstr指定返回对象字段, 如有多个字段, 中间用, 隔开, 默认所有
skip_suspendedbool是否跳过停牌, 默认跳过
fill_missingstr or None填充方式, None - 不填充, 'NaN' - 用空值填充, 'Last' - 用上一个值填充, 默认 None
adjustintADJUST_NONE or 0: 不复权ADJUST_PREV or 1: 前复权ADJUST_POST or 2: 后复权 默认不复权
adjust_end_timestr复权基点时间, 默认当前时间
dfbool是否返回 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)

参数:

参数名类型说明
symbolsstr标的代码,使用时参考symbol
start_timestr开始时间 (%Y-%m-%d %H:%M:%S 格式)
end_timestr结束时间 (%Y-%m-%d %H:%M:%S 格式)
fieldsstr指定返回对象字段, 如有多个字段, 中间用, 隔开, 默认所有
dfbool是否返回 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)

参数:

参数名类型说明
symbolsstr标的代码,使用时参考symbol
start_timestr开始时间 (%Y-%m-%d %H:%M:%S 格式)
end_timestr结束时间 (%Y-%m-%d %H:%M:%S 格式)
fieldsstr指定返回对象字段, 如有多个字段, 中间用, 隔开, 默认所有
dfbool是否返回 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)

参数:

参数名类型说明
symbolsstr标的代码,使用时参考symbol
start_timestr开始时间 (%Y-%m-%d %H:%M:%S 格式)
end_timestr结束时间 (%Y-%m-%d %H:%M:%S 格式)
fieldsstr指定返回对象字段, 如有多个字段, 中间用, 隔开, 默认所有
dfbool是否返回 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接口每次只能提取一天的数据, 如果取数时间超过一天,则返回按照开始时间的最近有一个交易日数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/3755.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据分析之Matplotlib

文章目录 1. 认识数据可视化和Matplotlib安装2. 类型目录3. 图标名称title4. 处理图形中的中文问题5. 设置坐标轴名称,字体大小,线条粗细6. 绘制多个线条和zorder叠加顺序7. 设置x轴刻度xticks和y轴刻度yticks8. 显示图表show9. 设置图例legend10. 显示线…

vue 项目优化

去除冗余的css 消除框架中未使用的CSS,初步达到按需引入的效果 使用背景:vue2.x, webpack3.x 使用插件:purifycss-webpack 安装: npm i purifycss-webpack purify-css glob-all -D安装后各个插件的版本: “glob-all”: “^3.3.…

从小白到大神之路之学习运维第64天--------Zabbix监控mysql、ftp服务以及自定义配置

第三阶段基础 时 间:2023年7月19日 参加人:全班人员 内 容: Zabbix监控mysql、ftp服务以及自定义 目录 一、Zabbix监控mysql数据库 二、Zabbix监控ftp服务 三、Zabbix自定义监控项 整体zabbix搭建完成,server端huyang1监…

吴恩达机器学习2022-Jupyter-Scikit-Learn教学

1可选实验室: 线性回归使用 Scikit-Learn 有一个开源的、商业上可用的机器学习工具包,叫做 scikit-learn。本工具包包含您将在本课程中使用的许多算法的实现。 1.1目标 在这个实验室里: 利用 scikit-学习使用线性回归梯度下降法来实现 1.2工具 您将利用 sciki…

Navidrome - 开源音乐服务器【打造属于自己的音乐播放器】「端口映射」随时随地想听就听

转载自cpolar极点云文章:Navidrome - 开源音乐服务器【打造属于自己的音乐播放器】「端口映射」随时随地想听就听 1. 前言 不知从何时开始,我们能用的音乐软件越来越少,笔者使用小米手机很久了,自从小米手机的自带音乐播放器变成…

RabbitMQ到底为什么要使用它?

导入 一个技术的衍生必然是为了解决现实出现的问题,在讲这个问题之前我们先了解一下传统开发中关于服务调用出现的问题(痛点)有哪些? 我们为什么要使用MQ? ①、同步——超时 在多服务体系架构中,必然存在…

Kyuubi的介绍优势(官网链接)

官网链接:https://kyuubi.apache.org/ Apache Kyuubi™ 是一个分布式多租户网关,用于在数据仓库和 Lakehouse 上提供无服务器 SQL。 Kyuubi 在各种现代计算框架(例如 Apache Spark、 Flink、 Doris、 Hive和Trino等)之上构建分布…

全志F1C200S嵌入式驱动开发(GPIO输出)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 和v3s一样,f1c200s本身的外部引脚比较少。所以这个时候,不可避免地,很多引脚的功能就会重叠在一起。这种情况下,我们就要学会取舍了。比如说,如果是学习sd卡的时候,那么spi的…

CSS——基础知识及使用

CSS 是什么 CSS是层叠样式表 (Cascading Style Sheets)的简写.CSS 能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果. 能够做到页面的样式和结构分离。 基本语法规范 选择器 { 一条/N条声明 } 选择器决定针对谁修改 (找谁)声明决定修改啥. (干啥)声明的…

css3的新特性

动画效果 过渡 transition 鼠标放上去瞬间变大 过渡是变大的过程慢慢变化 第一个参数:对哪些值进行过渡。all为hover中所有,也可以指定属性 第二个参数:让动画过渡多长时间。要添加单位(s秒) 第三个参数&#xff1…

D354周赛复盘:特殊元素平方和+数组最大美丽值(滑动窗口)+合法分割最小下标

文章目录 6889.特殊元素平方和思路完整版取模注意:不能对0取余/取模解答错误:本题的数组最后一个下标是nums[nums.size()] 6929.数组的最大美丽值(排序滑动窗口)思路1:排序滑动窗口注意点 6927. 合法分割的最小下标&am…

SpringBoot+actuator和admin-UI实现监控中心

使用SpringBoot很久了&#xff0c;但是很少使用到SpringBoot的查看和监控&#xff0c;将来八成也不会用到&#xff0c;万一有机会用到呢&#xff1f;所以记录一下以前学习SpringBootactuator和adminUI实现监控中心的方式 Springboot的版本2.0.x <parent><groupId>…

Spring学习记录---回顾反射机制

目录 10.回顾反射机制 10.1 分析方法四要素 //不使用反射机制调用这些方法 使用反射机制调用方法 代码&#xff1a; 运行结果&#xff1a; 10.4 假设你知道属性名 测试代码 运行结果 10.回顾反射机制 10.1 分析方法四要素 package com.dong.reflect;public class Som…

【java爬虫】将优惠券数据存入数据库排序查询

本文是在之前两篇文章的基础上进行写作的 (1条消息) 【java爬虫】使用selenium爬取优惠券_haohulala的博客-CSDN博客 (1条消息) 【java爬虫】使用selenium获取某宝联盟淘口令_haohulala的博客-CSDN博客 前两篇文章介绍了如何获取优惠券的基础信息&#xff0c;本文将获取到的…

PyTorch 1.13简介

# 1.  PyTorch 1.13 据官方介绍&#xff0c;PyTorch 1.13 中包括了 BetterTransformer 的稳定版&#xff0c;且不再支持 CUDA 10.2 及 11.3&#xff0c;并完成了向 CUDA 11.6 及 11.7 的迁移。此外 Beta 版还增加了对 Apple M1 芯片及 functorch 的支持。 1.1 主要更新 Be…

C++第四讲

思维导图 仿照string类&#xff0c;实现myString类 /* ---------------------------------author&#xff1a;YoungZorncreated on 2023/7/19 19:20.--------------------------------- */ #include<iostream> #include<cstring>using namespace std;class myStri…

【数据结构】时间复杂度---OJ练习题

目录 &#x1f334;时间复杂度练习 &#x1f4cc;面试题--->消失的数字 题目描述 题目链接&#xff1a;面试题 17.04. 消失的数字 &#x1f334;解题思路 &#x1f4cc;思路1&#xff1a; malloc函数用法 &#x1f4cc;思路2&#xff1a; &#x1f4cc;思路3&…

如何使用DiskPart命令行格式化分区?

想要格式化磁盘分区&#xff0c;您可以使用磁盘管理工具&#xff0c;或在Windows文件资源管理器中右键单击驱动器并选择“格式化”。如果您更想使用命令行来格式化磁盘&#xff0c;那么Windows自带的DiskPart将是首选。 DiskPart有很多优点&#xff0c;例如&#xff0c;如果您想…

活动页服务端渲染探索

目标 通过采用在服务端渲染激励页的方式&#xff0c;降低页面加载白屏时间&#xff0c;从而提升激励 H5 渲染体验。 架构设计 前端服务框架调研选型 只对比分析以下两种方案&#xff1a; Vue3 Nuxt3 WebpackNext.js React Node.js ’Nuxt3Next.js介绍Nuxt是一个基于Vu…

Clickhouse基础和基本优化

CK基础和基本优化 一、ClickHouse的特点列式存储高吞吐写入能力数据分区与线程级并行表引擎的使用MergeTreeReplacingMergeTreeSummingMergeTree 二、SQL操作1.Insert2.Update 和 Delete3.查询操作4.alter操作5.导出数据 三、基于表的分布式集群集群写入流程&#xff08; 3分片…