tqsdk.lib - 业务工具库¶
-
class
tqsdk.lib.
TargetPosTask
(api, symbol, price='ACTIVE', offset_priority='今昨, 开', trade_chan=None)¶ 目标持仓 task, 该 task 可以将指定合约调整到目标头寸
创建目标持仓task实例,负责调整归属于该task的持仓 (默认为整个账户的该合约净持仓).
注意: TargetPosTask 在 set_target_volume 时并不下单或撤单, 它的下单和撤单动作, 是在之后的每次 wait_update 时执行的. 因此, 需保证 set_target_volume 后还会继续调用wait_update()
- Args:
api (TqApi): TqApi实例,该task依托于指定api下单/撤单
symbol (str): 负责调整的合约代码
price (str): [可选]下单方式, ACTIVE=对价下单, PASSIVE=挂价下单.
在持仓调整过程中,若下单方向为买: 对价为卖一价, 挂价为买一价
在持仓调整过程中,若下单方向为卖: 对价为买一价, 挂价为卖一价
offset_priority (str): [可选]开平仓顺序,昨=平昨仓,今=平今仓,开=开仓,逗号=等待之前操作完成
对于下单指令区分平今/昨的交易所(如上期所),按照今/昨仓的数量计算是否能平今/昨仓 对于下单指令不区分平今/昨的交易所(如中金所),按照“先平当日新开仓,再平历史仓”的规则计算是否能平今/昨仓
"今昨,开" 表示先平今仓,再平昨仓,等待平仓完成后开仓,对于没有单向大边的品种避免了开仓保证金不足
"今昨开" 表示先平今仓,再平昨仓,并开仓,所有指令同时发出,适合有单向大边的品种
"昨开" 表示先平昨仓,再开仓,禁止平今仓,适合股指这样平今手续费较高的品种
trade_chan (TqChan): [可选]成交通知channel, 当有成交发生时会将成交手数(多头为正数,空头为负数)发到该channel上
-
set_target_volume
(volume)¶ 设置目标持仓手数
- Args:
volume (int): 目标持仓手数,正数表示多头,负数表示空头,0表示空仓
Example:
# 设置 rb1810 持仓为多头5手 from tqsdk import TqApi, TargetPosTask api = TqApi() target_pos = TargetPosTask(api, "SHFE.rb1810") target_pos.set_target_volume(5) while True: # 需在 set_target_volume 后调用wait_update()以发出指令 api.wait_update()
-
class
tqsdk.lib.
InsertOrderUntilAllTradedTask
(api, symbol, direction, offset, volume, price='ACTIVE', trade_chan=None)¶ 追价下单task, 该task会在行情变化后自动撤单重下,直到全部成交
创建追价下单task实例
- Args:
api (TqApi): TqApi实例,该task依托于指定api下单/撤单
symbol (str): 拟下单的合约symbol, 格式为 交易所代码.合约代码, 例如 "SHFE.cu1801"
direction (str): "BUY" 或 "SELL"
offset (str): "OPEN", "CLOSE" 或 "CLOSETODAY"
volume (int): 需要下单的手数
price (str): [可选]下单方式, ACTIVE=对价下单, PASSIVE=挂价下单
trade_chan (TqChan): [可选]成交通知channel, 当有成交发生时会将成交手数(多头为正数,空头为负数)发到该channel上
-
class
tqsdk.lib.
InsertOrderTask
(api, symbol, direction, offset, volume, limit_price=None, order_chan=None, trade_chan=None)¶ 下单task
创建下单task实例
- Args:
api (TqApi): TqApi实例,该task依托于指定api下单/撤单
symbol (str): 拟下单的合约symbol, 格式为 交易所代码.合约代码, 例如 "SHFE.cu1801"
direction (str): "BUY" 或 "SELL"
offset (str): "OPEN", "CLOSE" 或 "CLOSETODAY"
volume (int): 需要下单的手数
limit_price (float): [可选]下单价格, 默认市价单
order_chan (TqChan): [可选]委托单通知channel, 当委托单状态发生时会将委托单信息发到该channel上
trade_chan (TqChan): [可选]成交通知channel, 当有成交发生时会将成交手数(多头为正数,空头为负数)发到该channel上