2021-08-22 tbpy帮助文档

TBPY 帮助文档

1、安装

  • 安装Anaconda
  • 安装TBQuant内置tbpy
    • pip离线安装tbpy
      • 打开命令行(Win + R,输入cmd,点击确定)
      • 在命令行输入:anaconda安装路径/Scripts/pip install whl文件[TBQuant安装路径/tbpy/tbpy-x.x.x.x-py3-none-any.whl] -U
        • 如:C:/anaconda3/Scripts/pip install c:/TBQuant/tbpy/tbpy-x.x.x.x-py3-none-any.whl -U
  • 必须和tbquant为同一版本

2、约定

  • 行情权限
    • 有流量控制权限,如果频繁查询会失败
    • 有申请历史范围控制权限
    • 有订阅个数控制权限
  • 交易权限
    • 有下单控制权限
  • 基础数据权限
    • 有系统基础数据访问权限
  • 认证约定
    • 无须认证,但必须先启动TBQuant,与TBQuant共享用户与权限
    • 用户需要开通tbpy权限,否则无法正常使用

3、初始化

  • tbpy.init()
    务须调用,返回True可正常工作

4、查询数据

4.1 行情数据

4.1.1 get_history_n-查询历史行情最新N条
tbpy.get_history_n(symbol, frequency, count, flag=tbpy.QuoteFlag.Null, fields: list=None, timeout='30s')
  • 参数
参数名类型说明
symbolstr or list合约代码。支持字符串格式,也支持[‘symbol1’, ‘symbol2’]这种列表格式。
frequencystr周期。
countint历史bar个数。
flagint取值为QuoteFlag,枚举值可以或运算。默认无设置
fieldslist需要获取的属性。支持[‘field1’, ‘field2’]这种列表格式,默认值None表示获取所有属性。取值范围[‘open’, ‘close’, ‘high’, ‘low’, ‘volume’, ‘position’,‘rollover’, ‘time’]。
timeoutstr超时时间设定,支持s结尾表示单位秒,默认30s。
  • 返回值类型

    symbol为str格式:dict{field: ndarray}

    symbol为list格式:dict{symbol: {field: ndarray}}

  • 示例:

tbpy.get_history_n(symbol=['rb000.SHFE', 'a9000.DCE'], frequency='2m', count=10, flag=tbpy.QuoteFlag.RolloverBackWard|tbpy.QuoteFlag.OnlyNight, fields=['open', 'high', 'time'], timeout='10s')
4.1.2 get_history-查询历史行情
tbpy.get_history(symbol, frequency, begin_time: datetime, end_time: datetime, flag=tbpy.QuoteFlag.Null, fields: list=None, timeout='30s')
  • 参数:
参数名类型说明
symbolstr or list合约代码。支持字符串格式,也支持[‘symbol1’, ‘symbol2’]这种列表格式。
frequencystr周期。
begin_timedatetime申请数据范围的起始时间
end_timedatetime申请数据范围的结束时间
flagint取值为QuoteFlag,枚举值可以或运算。默认无设置
fieldsstr or list需要获取的属性。支持[‘field1’, ‘field2’]这种列表格式,默认值None表示获取所有属性。取值范围[‘open’, ‘close’, ‘high’, ‘low’, ‘volume’, ‘position’,‘rollover’, ‘time’]。
timeoutstr超时时间设定,支持s结尾表示单位秒,默认30s。
  • 返回值类型

    symbol为str格式:dict{field: ndarray}

    symbol为list格式:dict{symbol: {field: ndarray}}

  • 示例:

tbpy.get_history(symbol='a9000.DCE', frequency='1d', begin_time=datetime(2018, 10, 10), end_time=datetime(2018, 10, 10))
4.1.3 get_current_tick-查询实时行情快照
tbpy.get_current_tick(symbol)
  • 参数
参数名类型说明
symbolstr or list合约代码。支持字符串格式,也支持[‘symbol1’, ‘symbol2’]这种列表格式。
  • 返回值类型

    symbol为str格式:成功返回 Tick,失败返回None

    symbol为list格式:list[Tick]

  • 示例:

  	tbpy.get_current_tick(symbol='IF000.CFFEX')
4.1.4 get_instrument-查询合约
tbpy.get_instrument(symbol=None)
  • 参数

    参数名类型说明
    symbolstr or list or None合约代码。支持字符串格式,也支持[‘symbol1’, ‘symbol2’]这种列表格式。默认值None表示获取所有合约
  • 返回值类型

    symbol为str格式:成功返回 Instrument,失败返回None

    symbol为list格式:list[Instrument]

4.1.5 get_main_instrument-查询期货主力合约
tbpy.get_main_instrument(underlying_symbol=None)
  • 参数
参数名类型说明
underlying_symbolstr or list or None品种代码。支持字符串格式,也支持[‘underlying_symbol1’, ‘underlying_symbol2’]这种列表格式。默认值None表示获取所有主力合约
  • 返回值类型

    symbol为str格式:成功返回Instrument,失败返回None

    symbol为list格式:list[Instrument]

4.1.6 write_history-写入历史行情数据
tbpy.write_history(symbol, frequency, filepath, timeout='30s')
  • 参数
参数名类型说明
symbolstr合约代码。
frequencystr周期。
filepathstr文件路径,文件格式支持csv格式。
timeoutstr超时时间设定,支持s结尾表示单位秒,默认30s。
  • 返回值类型

None or str。None表示写入成功。非None表示失败,返回失败原因str

4.2 基础数据

4.2.1 write_fundamental-写入基础数据
tbpy.write_fundamental(name, symbol, time: datetime, value)
  • 参数
参数名类型说明
namestr名称(不支持中文且不能为空)
symbolstr合约代码(不支持中文且不能为空)
timedatetime时间
valuebool or int or float or str or ndarray写入的值(不支持中文)。支持bool、int、float、str类型,ndarray支持bool、int、float、str的一维数组和二维数组。
  • 返回值类型

    None or str。None表示写入成功。非None表示失败,返回失败原因str

  • 示例

	tbpy.write_fundamental(name='name', symbol='rb000.SHFE', time=datetime(2018, 10, 10, 9, 45, 0),  value=True)
4.2.2 get_fundamental-查询基础数据
tbpy.get_fundamental(name, symbol=None, begin_time: datetime=None, end_time: datetime=None, timeout='30s')
  • 参数
参数名类型说明
namestr名称(不支持中文且不能为空)
symbolstr or None合约代码(不支持中文且不能为空), 为None则获取所有
begin_timedatetime or None开始时间, 为空默认为最小值
end_timedatetime or None结束时间, 为空默认为最大值
timeoutstr超时时间设定,支持s结尾表示单位秒,默认30s。
  • 返回值类型
    None or bool or int or float or str or ndarray。None表示读取失败,非None表示读取的值
  • 示例
tbpy.get_fundamental(name='name', symbol='rb000.SHFE', begin_time=datetime(2018, 10, 10, 9, 45, 0),  end_time=datetime(2018, 10, 10, 9, 45, 0))
4.2.3 delete_fundamental-删除基础数据
tbpy.delete_fundamental(name, symbol=None, begin_time: datetime=None, end_time: datetime=None)
  • 参数
参数名类型说明
namestr名称(不支持中文且不能为空)
symbolstr or None合约代码(不支持中文且不能为空), 为None则删除所有
begin_timedatetime or None开始时间, 为空默认为最小值
end_timedatetime or None结束时间, 为空默认为最大值
  • 返回值类型
    None or str。None表示删除成功。非None表示失败,返回失败原因str
  • 示例
tbpy.delete_fundamental(name='name', symbol='rb000.SHFE', begin_time=datetime(2018, 10, 10, 9, 45, 0), end_time=datetime(2018, 10, 10, 9, 45, 0))
4.2.4 set_symbol_description-设置关联信息描述
tbpy.set_symbol_description(symbol, description)
  • 参数

    参数名类型说明
    symbolstr合约代码(不支持中文且不能为空)
    descriptionstr描述信息
  • 返回值类型

    None or str。None表示设置成功。非None表示失败,返回失败原因str

  • 示例

tbpy.set_symbol_description(symbol='rb000.SHFE',  description='螺纹钢指数')
4.2.5 set_name_description-设置关键字描述
tbpy.set_name_description(name, description)
  • 参数

    参数名类型说明
    namestr名称(不支持中文且不能为空), name必须已经存在
    descriptionstr描述信息
  • 返回值类型

    None or str。None表示设置成功。非None表示失败,返回失败原因str

  • 示例

tbpy.set_name_description(name='name',  description='xxx')

4.3 交易数据

4.3.1 get_account-查询账户
tbpy.get_account(account_id, broker_id=0)
  • 参数
参数名类型说明
account_idstr资金账户ID
broker_idint经纪商ID
  • 返回值类型

    账户存在且已登录,返回Account,否则返回None。

  • 示例

account = tbpy.get_account(account_id='050323')
4.3.2 send_order-下单
account.buy(symbol, volume, price)
account.sell(symbol, volume, price)
account.sell2short(symbol, volume, price)
account.buy2cover(symbol, volume, price)
account.send_order(symbol, volume, price, side, comb_offset, price_type=tbpy.PriceType.Limit)
  • 参数
参数名类型说明
symbolstr合约代码
volumeint下单数量
pricedouble下单价格
sideOrderSide买卖方向
comb_offsetCombOffsetFlag价格类型
price_typePriceType开平标志
  • 返回值类型

    成功返回list[order_id],失败返回None

    注:order_id为int类型,且单个账户内唯一

  • 示例

    account.sell2short(symbol='rb1910.SHFE', volume=1, price=4000)
    account.send_order(symbol='rb1910.SHFE', volume=1, price=4000, side=tbpy.OrderSide.Buy, comb_offset=tbpy.CombOffsetFlag.Open)
    
4.3.3 cancel_order-撤单
account.cancel_order(order_id)
  • 参数
参数名类型说明
order_idint报单索引
  • 返回值类型

    None表示请求成功。非None表示失败,返回失败原因str

4.3.4 get_position-查询持仓
account.get_position(symbol)
account.get_position()
  • 参数
参数名类型说明
symbolstr合约代码
  • 返回值类型

    带symbol参数:成功返回Position,合约不存在,返回None

    无参数:返回list[Position]

  • 示例

account.get_position('rb1910.SHFE')
account.get_position()
4.3.5 get_order-查询委托
account.get_order(order_id)
account.get_order(symbol)
account.get_order()
  • 参数
参数名类型说明
order_idint报单索引
symbolstr合约代码
  • 返回值类型

    带order_id参数:成功返回Order,失败返回None

    带symbol参数:返回list[Order]

    无参数:返回list[Order]

  • 示例

account.get_order(order_id=123456789)
4.3.6 get_notrade_order-查询未成交委托
account.get_notrade_order(symbol)
account.get_notrade_order()
  • 参数
参数名类型说明
symbolstr合约代码
  • 返回值类型
    带symbol参数:返回list[Order]

    无参数:返回list[Order]

  • 示例

account.get_notrade_order(symbol='rb1910.SHFE')
4.3.7 get_fill-查询成交
account.get_fill(symbol, side, fill_id)
account.get_fill(order_id)
  • 参数
参数名类型说明
symbolstr合约代码
sideOrderSide买卖方向
fill_idstr成交编号(交易所)
order_idint报单索引
  • 返回值类型
    带symbol、side、fill_id参数:成功返回Fill,失败返回None

    带order_id参数:返回list[Fill]

  • 示例

account.get_fill(order_id=123456789)
4.3.8 get_status-查询账户状态
account.get_status()
account.get_status()

4.4 其它

4.4.1 init-初始化
tbpy.init()
#务须调用,返回True可正常工作
  • 参数

  • 返回值类型

    bool

  • 示例

tbpy.init()
4.4.2 exe-运行策略
tbpy.exe()
#开始运行tbpy策略
  • 参数

  • 返回值类型

    无返回值

  • 示例

tbpy.exe()
4.4.3 exit-终止策略运行
tbpy.exit()
  • 参数

  • 返回值类型

    无返回值

  • 示例

tbpy.exit()
4.4.4 get_last_err-查询最近一次错误信息
tbpy.get_last_err()
  • 参数

  • 返回值类型

    str

  • 示例

tbpy.get_last_err()

5、事件数据

5.1 on_init-初始化驱动

on_init(self, context)
  • 参数
参数名类型说明
contextContext上下文
  • 示例
def on_init(self, context):
	context.subscribe_tick('rb000.SHFE')

5.2 on_tick-Tick数据驱动

on_tick(self, context, tick)
  • 参数
参数名类型说明
contextContext上下文
tickTick主推的tick数据
  • 示例
def on_tick(self, context, tick):
	print(tick)

5.3 on_bar-Bar数据驱动

on_bar(self, context, bars, symbol, flag)
  • 参数
参数名类型说明
contextContext上下文
barslist[Bar]主推的bar数据
symbolstr合约代码
flagint0 - 历史,1 - 实时
  • 示例
def on_bar(self, context, bars, symbol, flag):
	for bar in bars:
    	print(bar)

5.4 on_position-持仓数据驱动

on_position(self, context, position)
  • 参数
参数名类型说明
contextContext上下文
positionPosition主推的持仓数据
  • 示例
def on_position(self, context, position):
    print(position)

5.5 on_order-委托数据驱动

on_order(self, context, order)
  • 参数
参数名类型说明
contextContext上下文
orderOrder主推的委托数据
  • 示例
def on_bar(self, context, order):
    print(order)

5.6 on_fill-成交数据驱动

on_fill(self, context, fill)
  • 参数
参数名类型说明
contextContext上下文
fillFill主推的成交数据
  • 示例
def on_fill(self, context, fill):
    print(fill)

5.7 on_timer-定时器数据驱动

on_timer(self, context, timer_id, interval_millsecs)
  • 参数
参数名类型说明
contextContext上下文
timer_idint定时对象id
interval_millsecsint定时间隔
  • 示例
def on_timer(self, context, timer_id, interval_millsecs):
    print(timer_id)

6、Context-上下文

6.1 说明

context是策略运行上下文环境,除了内置的方法,用户也可以随意为其自定义属性

6.2 订阅与退订Tick数据

context.subscribe_tick(symbol)
context.unsubscribe_tick(symbol)
  • 参数
参数名类型说明
symbolstr or list合约代码。支持字符串格式,也支持[‘symbol1’, ‘symbol2’]这种列表格式。
  • 返回值类型
    返回None表示成功,非None表示失败,返回失败原因str
  • 示例
context.subscribe_tick(symbol='rb000.SHFE')
context.unsubscribe_tick(symbol='rb000.SHFE')

6.3 订阅与退订Bar数据

context.subscribe_bar(symbol, frequency, begin_time=None, sliding_window=1, flag=tbpy.QuoteFlag.Null)
context.unsubscribe_bar(symbol, frequency)
  • 参数
参数名类型说明
symbolstr or list合约代码。支持字符串格式,也支持[‘symbol1’, ‘symbol2’]这种列表格式。
frequencystr周期
begin_timedatatime开始时间,为None从当前时间开始
sliding_windowint数据滑窗大小(on_bar每次回调的bar数),默认1
flagint取值为QuoteFlag,枚举值可以或运算。默认无设置
  • 返回值类型
    返回None表示成功,非None表示失败,返回失败原因str
  • 示例
context.subscribe_bar(symbol='rb000.SHFE', frequency='10s', begin_time=datetime.datetime.now(), sliding_window=1, flag=tbpy.QuoteFlag.RolloverBackWard)
context.unsubscribe_bar(symbol='rb000.SHFE', frequency='10s')

6.4 订阅Account数据

context.subscribe_account(account_id)
  • 参数
参数名类型说明
account_idstr资金账户ID
  • 返回值类型

    账户存在且已登录,如果订阅成功,返回Account,否则返回None

  • 示例

context.subscribe_account(account_id='085489')

6.5 创建与关闭定时器

context.create_timer(interval_millsecs, begin_time=None, trigger_count=-1)
context.stop_timer(timer_id)
  • 参数
参数名类型说明
interval_millsecsint定时间隔(ms)
begin_timedatetime起始时间,None表示当前时间
trigger_countint驱动次数,-1表示不限次数
timer_idint定时对象id
  • 返回值类型
    create_timer:int(timer_id)
    stop_timer:无返回值

7、附录

7.1 symbol-合约代码

str类型

取值说明
如 ‘rb1901.SHFE’表示上期所的rb1901合约
如 ‘IF1902.CFFEX’表示中金所的IF1902合约
如 ‘user’表示自定义合约(不支持中文且不能为空)

7.2 underlying_symbol-品种代码

str类型

取值说明
如 ‘rb.SHFE’表示上期所的rb品种
如 ‘IF.CFFEX’表示中金所的IF品种

7.3 frequency-周期

str类型,如‘3h’表示3小时周期。大于等于’d’时,只支持’1d’、‘1w’、‘1mon’。

取值说明
‘tick’Tick
‘s’
‘m’分钟
‘h’小时
‘d’
‘w’
‘mon’

7.4 Instrument-合约

对象类型

属性类型说明
symbolstr合约代码
exchangestr交易市场代码
sec_idstr代码 (如 ‘rb1901’)
sec_namestr合约名称
price_tickfloat最小变动价
contract_unitint交易单位
big_point_valuefloat每点价值
listed_datedatetime上市日期
delisted_datedatetime退市日期

7.5 Tick-行情快照

对象类型

属性类型说明
timedatetime时间
symbolstr合约代码
openfloat开盘价
highfloat最高价
lowfloat最低价
lastfloat最新价
limit_upfloat涨停价
limit_downfloat跌停价
pre_closefloat昨收价
pre_settlementfloat昨结价
volumeint最新成交量
total_volumeint总成交量
bidaskslist[BidAsk]5档行情(不一定支持5档)
BidAsk

对象类型

属性类型说明
bid_pfloat买价
bid_vint买量
ask_pfloat卖价
ask_vint卖量

7.6 Bar-Bar数据

对象类型

属性类型说明
symbolstr合约代码
frequencystr周期
timedatetime开始时间
openfloat开盘价
highfloat最高价
lowfloat最低价
closefloat收盘价
turn_overfloat成交金额
volumefloat成交量
open_intint持仓量
rolloverfloat除权系数

7.7 exchange-交易所代码

str类型

取值说明
‘SHFE’上海期货交易所
‘DCE’大连商品交易所
‘CZCE’郑州商品交易所
‘CFFEX’中国金融期货交易所
‘INE’上海国际能源交易中心
‘SSE’上海证券交易所
‘SZSE’深圳证券交易所

7.8 Position-持仓

对象类型

属性类型说明
broker_idint经济公司ID
account_idstr资金账户ID
symbolstr合约代码
l_current_volumeint多头当前持仓
l_yesterday_volumeint多头剩余昨仓
l_active_volumeint多头未成交的报单净委托量
l_active_close_volumeint多头未成交的报单平仓委托量
l_can_sell_volumeint多头可平量
l_market_valuefloat多头持仓市值
l_avg_pricefloat多头均价(买均价,按结算价)
l_float_porfitfloat多头浮动盈亏(买盈亏,按结算价)
l_avg_price_ofloat多头均价(买均价,按成本价)
l_float_porfit_ofloat多头浮动盈亏(买盈亏,按成本价)
l_use_margin_amountfloat多头占用的保证金
s_current_volumeint空头当前持仓
s_yesterday_volumeint空头剩余昨仓
s_active_volumeint空头未成交的报单净委托量
s_active_close_volumeint空头未成交的报单平仓委托量
s_can_cover_volumeint空头可平量
s_market_valuefloat空头持仓市值
s_avg_pricefloat空头均价(买均价,按结算价)
s_float_porfitfloat空头浮动盈亏(买盈亏,按结算价)
s_avg_price_ofloat空头均价(买均价,按成本价)
s_float_porfit_ofloat空头浮动盈亏(买盈亏,按成本价)
s_use_margin_amountfloat空头占用的保证金

7.9 Order-委托

对象类型

属性类型说明
broker_idint经济公司ID
account_idstr资金账户ID
symbolstr合约代码
order_idint报单索引
exch_order_idstr报单编号(交易所)
create_timedatetime报单委托时间
volumeint委托量
pricefloat委托价
fill_volumeint成交量
fill_amountfloat成交金额
sideOrderSide买卖方向
comb_offsetCombOffsetFlag开平标志
price_typePriceType价格类型
hedgeHedgeFlag投机套保
statusOrderStatus报单状态
report_typeOrderReportType报单回报类型
create_sourcestr报单源
notestr详细信息

7.10 Fill-成交

对象类型

属性类型说明
broker_idint经济公司ID
account_idstr资金账户ID
symbolstr合约代码
order_idint报单索引
exch_order_idstr报单编号(交易所)
volumeint委托量
pricefloat委托价
fill_idstr成交编号(交易所)
fill_timedatetime成交时间
fill_volumeint成交量
fill_pricefloat成交价
sideOrderSide买卖方向
comb_offsetCombOffsetFlag开平标志
price_typePriceType价格类型
hedgeHedgeFlag投机套保

7.11 常量

7.11.1 OrderSide-买卖方向
OrderSide.Unknown  	  
OrderSide.Buy  		  #买
OrderSide.Sell  	  #卖
7.11.2 PriceType-价格类型
PriceType.Unknown  	  
PriceType.Limit  	  #限价
PriceType.Market  	  #市价
7.11.3 CombOffsetFlag-开平标识
CombOffsetFlag.Unknown  		  
CombOffsetFlag.Open  			  #开仓
CombOffsetFlag.Close  			  #平仓
CombOffsetFlag.CloseToday  		  #平今
CombOffsetFlag.CloseYesterday  	  #平昨
7.11.4 HedgeFlag-投保类型
HedgeFlag.Unknown  		  
HedgeFlag.Speculatio  	  #投机
HedgeFlag.Arbitrage  	  #套利(不支持)
HedgeFlag.Hedge  		  #套保(不支持)
HedgeFlag.MarketMaker  	  #市商(不支持)
7.11.5 OrderStatus-报单状态
OrderStatus.Unknown  		  
OrderStatus.NewRequest  	  #申请上报
OrderStatus.NewDone  		  #申报成功
OrderStatus.NewReject  		  #申报失败
OrderStatus.PartialFill  	  #部分成交
OrderStatus.AllFill  		  #完全成交
OrderStatus.CanceledFill  	  #部成部撤
OrderStatus.Canceled  		  #已撤单
7.11.6 OrderReportType-委托回报类型
OrderReportType.Unknown
OrderReportType.NewRequest		#申请上报
OrderReportType.NewReject		#申报失败
OrderReportType.NewDone			#申报成功
OrderReportType.CancelRequest	#发送撤单
OrderReportType.CancelReject	#撤单被拒
OrderReportType.CancelDone		#撤单成功
OrderReportType.FillReport		#成交
7.11.7 AccountStatus-账户状态
AccountStatus.Unknown
AccountStatus.Init				#正在初始化
AccountStatus.Connecting		#正在连接
AccountStatus.ConnectFail		#连接失败
AccountStatus.Disconnected		#连接断开
AccountStatus.Connected			#连接成功
AccountStatus.DisconnectFail	#断开连接失败
AccountStatus.Authenticating	#正在认证
AccountStatus.AuthenticateFail	#认证失败
AccountStatus.Authenticated		#认证完成
AccountStatus.Logout			#登出成功
AccountStatus.Logining			#正在登录
AccountStatus.LoginFail			#登录失败
AccountStatus.Logined			#登录成功
AccountStatus.SyncData			#已登录(同步数据中)
AccountStatus.OnService			#已登录(服务中)
7.11.8 QuoteFlag-行情标志
QuoteFlag.Null
QuoteFlag.OnlyNight				#仅夜盘
QuoteFlag.OnlyDay				#仅日盘
QuoteFlag.RolloverBackWard		#后复权

tbpy帮助文档官方下载地址:https://cdn.tbquant.net/markdown/TBPY/TBPY%E5%B8%AE%E5%8A%A9%E6%96%87%E6%A1%A3.md

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值