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

news2024/11/26 4:35:57

Python SDK文档

5.API 介绍


5.1基本函数

init - 初始化策略

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

函数原型:

init(context)

参数:

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

示例:

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_funcfunction策略定时执行算法
date_rulestrn + 时间单位, 可选'd/w/m' 表示 n 天/n 周/n 月
time_rulestr执行算法的具体时间 (%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_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 = 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['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.coloradmin.cn/o/771461.html

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

相关文章

vue2watch监听遇到的问题

1 vue 父组件里引入子组件 显示与隐藏是v-if控制时 父传入子的参数通过watch 监听请求接口时 watch 时而监听不到 请求接口的参数就不对 如图 父组件这么引入子组件v-show 和v-if 是有区别的 2 子组件通过watch 监听后 清空页面要展示的列表数据 重新从第一页加载数据&#x…

程序员如何准备技术面试

程序员如何准备技术面试 😇博主简介:我是一名正在攻读研究生学位的人工智能专业学生,我可以为计算机、人工智能相关本科生和研究生提供排忧解惑的服务。如果您有任何问题或困惑,欢迎随时来交流哦!😄 ✨座右…

Redis常见须知

介绍一下redis数据库 Redis 是一种基于内存的数据库,对数据的读写操作都是在内存中完成,因此读写速度非常快,常用于缓存,消息队列、分布式锁等场景。 Redis 提供了多种数据类型来支持不同的业务场景,比如 String(字符…

【后端面经-Java】JVM垃圾回收机制

【后端面经-Java】JVM垃圾回收机制 1. Where:回收哪里的东西?——JVM内存分配2. Which:内存对象中谁会被回收?——GC分代思想2.1 年轻代/老年代/永久代2.2 内存细分 3. When:什么时候回收垃圾?——GC触发条…

【汉诺塔问题分析】

一、背景 汉诺塔问题是一种经典的递归问题,它由法国数学家Huygens在1665年发现,也是一道有趣的数学难题。这道问题的主要目的是将三根柱子上的一堆盘子移动到另一根柱子上,移动过程中每次只能移动一个盘子,并且大盘子不能放在小盘…

【LeetCode热题100】打卡第40天:翻转二叉树回文链表

文章目录 【LeetCode热题100】打卡第40天:翻转二叉树&回文链表⛅前言 翻转二叉树🔒题目🔑题解 回文链表🔒题目🔑题解 【LeetCode热题100】打卡第40天:翻转二叉树&回文链表 ⛅前言 大家好&#xff…

高数-第一章-函数-极限 连续

目录 第一章 函数 极限 连续第一节 函数第二节 极限一、极限的概念与性质(1)数列的极限例1例2 (2)函数的极限(3)极限的性质(保号性重点 有界性)例12例13例14 (4&#xff…

Python 3 拷贝、浅拷贝、直接引用

诸神缄默不语-个人CSDN博文目录 复杂的以后再补。 总的来说,像常数、字符串这种比较简单的变量无所谓,但是对于一些复杂对象(比如list等),如果直接使ba,相当于直接把a的路径给了b,b这个对象的…

stb_image简单使用

简介stb_image stb_image 是一个非常轻量级的、单文件的图像加载库,用于加载和解码多种图像格式(如BMP、JPEG、PNG、GIF等)的图像数据。它由Sean T. Barrett开发,并以公共领域(Public Domain)许可发布&…

【软件测试】web测试bug定位思路总结,“我“不再背锅...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 需要掌握的知识 …

LabVIEW - 采集声音并保存 wav 文件

1. 题目 编写程序,实现用户点击按钮时,采集声音,显示声音波形,对于采集的声音进行低频段、中频段、高频段分别进行适当的比例放大或者衰减,然后重新合成(三段相加即可),并将合成的声音下入wav格式的文件保存…

【ROS】ROS1人机界面开发:第一个最简ROS+QtGui程序(按钮启动发布者)

【ROS】郭老二博文之:ROS目录 1、创建工程 1)新建工程:Other Project --> ROS Workspace 2)设置工程名称、路径 3)可以通过点击“Browse”来创建目录 注意:使用自带ros插件的qtcreator-ros,无法创建目录、也不能选择目录,这是个bug,因此需要在终端手动创建目录…

江南大学轴承数据故障诊断(利用连续小波变换转换为二维图像,再利用CNN进行故障诊断)

1.江南大学轴承数据集介绍 采样频率:50khz,采样时间:10s 转速:600 800 1000/rpm 内圈:ib 外圈:ob 滚动体:tb 正常:N 以600转速下的内圈故障数据为例展示: 开始数据…

【云原生】Prometheus 之PromQL

前言 当 Prometheus 通过 Exporter 采集到相应的监控指标样本数据后,我们就可以通过PromQL 对监控样本数据进行查询,从而对相应的数据样本进行分析以及制定报警规则。 1. PromQL的简介 PromQL(Prometheus Query Language)是 Prome…

SaleSmartly,客户满意度调查的绝对好助手

企业使用客户满意度调查来收集反馈并评估客户满意度水平,包括有关产品质量、服务、支持和整体满意度的问题。客户满意度调查的主要目标是直接从客户那里收集有价值的见解,以了解他们的需求、偏好和期望。这种反馈可以帮助企业确定需要改进的领域&#xf…

STM32案例学习 GY-39环境监测传感器模块

STM32案例学习 GY-39环境监测传感器模块 硬件平台 野火STM32F1系列开发板正点STM32F1系列开发板STM32F103ZET6核心板GY-39环境监测传感器模块 GY-39环境监测传感器模块 GY-39 是一款低成本,气压,温湿度,光强度传感器模块。工作电压 3-5v…

JS-27 前端数据请求方式;HTTP协议的解析;JavaScript XHR、Fetch的数据请求与响应函数;前端文件上传XHR、Fetch

目录 1_前端数据请求方式1.1_前后端分离的优势1.2_网页的渲染过程 – 服务器端渲染1.3_网页的渲染过程 – 前后端分离 2_HTTP协议的解析2.1_HTTP概念2.2_网页中资源的获取2.3_HTTP的组成2.4_HTTP的版本2.5_HTTP的请求方式2.6_HTTP Request Header2.7_HTTP Response响应状态码 3…

京东自动化功能之商品信息监控是否有库存

这里有两个参数,分别是area和skuids area是地区编码,我这里统计了全国各个区县的area编码,用户可以根据实际地址进行构造skuids是商品的信息ID填写好这两个商品之后,会显示两种状态,判断有货或者无货状态,详情如下图所示 简单编写下python代码,比如我们的地址是北京市…

Kaggle:树叶分类(使用Jupyter)

竞赛网址:https://www.kaggle.com/c/classify-leaves # 首先导入包 import torch import torch.nn as nn import pandas as pd import numpy as np from torch.utils.data import Dataset, DataLoader from torchvision import transforms from PIL import Image i…

uniapp 小程序 实时拍照(仅拍照)限制上传5张 可预览 可删除

效果图: common.js /*** 预览图片*/ const previewImage (current,list)>{// 预览图片uni.previewImage({current: current,urls: list}); } /*** 删除图片*/ const removeImage (current,list)>{var photoFilesList list;photoFilesList.splice(curren…