tqsdk.lib - 业务工具库

class tqsdk.lib.TargetPosTask(api: tqsdk.api.TqApi, symbol: str, price: str = 'ACTIVE', offset_priority: str = '今昨, 开', trade_chan: Optional[tqsdk.api.TqChan] = 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: int) → None

设置目标持仓手数

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上