TqSdk2.TargetPosTask - 目标持仓工具

class tqsdk2.TargetPosTask(self: tqsdk2.tqsdk2.TargetPosTask, api: object, symbol: str, price: object = 'ACTIVE', offset_priority: str = '今昨,开', account: object = None, trading_unit: int = 0)

天勤2 目标持仓 task, 该 task 可以将指定合约调整到目标头寸. 创建目标持仓task实例,负责调整归属于该task的持仓 (默认为整个账户的该合约净持仓).

Args: api (TqApi): TqApi实例,该task依托于指定api下单/撤单 symbol (str): 负责调整的合约代码 price (str): [可选]下单方式, 默认为 "ACTIVE"。

"ACTIVE":对价下单,在持仓调整过程中,若下单方向为买,对价为卖一价;若下单方向为卖,对价为买一价。 "PASSIVE":对价下单,在持仓调整过程中,若下单方向为买,对价为买一价;若下单方向为卖,对价为卖一价。

offset_priority (str): [可选]开平仓顺序,昨=平昨仓,今=平今仓,开=开仓,逗号=等待之前操作完成 trading_unit(int): [可选] 交易单元编号

Example:

from tqsdk2 import TqApi, TqAuth, TargetPosTask

api = TqApi(auth=TqAuth("信易账户","账户密码"))
quote = api.get_quote("SHFE.cu2201")

def get_price(direction):
    # 在 BUY 时使用买一价加一档价格,SELL 时使用卖一价减一档价格
    if direction == "BUY":
        price = quote.bid_price1 + quote.price_tick
    else:
        price = quote.ask_price1 - quote.price_tick
    # 如果 price 价格是 nan,使用最新价报单
    if price != price:
        price = quote.last_price
    return price

target_pos = TargetPosTask(api = api, symbol = "SHFE.cu2201", price=get_price)

while True:
    api.wait_update()
    target_pos.set_target_volume(5)

api.close()