TqSdk2 做市模块
TqSdk2 中提供了专门的做市模块,它可以实现:
按照程序给定的买卖价差,自动挂撤单,在场上维持报单;
按照持仓量最小原则,自动为委托单选择开仓或平仓;
控制合约的单边持仓最大手数。确保合约任何一边的持仓手数+挂单手数 < 限制值;
控制合约的净头寸。确保任意时刻合约的净头寸(多空持仓差) < 限制值;
当存在净头寸持仓时,通过将报价向持仓相反方向偏移,来促使净头寸缩小;
做市模块使用样例
以下样例演示了 TqSdk2 做市模块的基础使用:
from tqsdk2 import TqApi, TqAuth, TqMarketMaker
api = TqApi(auth=TqAuth("信易账户", "账户密码"))
quote = api.get_quote("SHFE.au2109")
mm = TqMarketMaker(api, symbol = "SHFE.au2109")
# 设定按买卖价宽为1,两边各挂单量为10手,且做市时间为9点到10点15,10点30到11点25,其他参数按默认参数来进行挂单
mm.set_market_maker(quote_spread = 1, quote_volume = 10, time_range = [(90000, 101500), (103000, 112500)])
while True:
api.wait_update()
# 当最新价突破380时,将挂价宽度从1个最小价格变动单位改为5个,其他参数不变
if quote.last_price > 380:
mm.set_market_maker(quote_spread = 5)
if mm.status == "PAUSE":
print(f"当前做市挂单为暂停原因是{mm.status_msg}")
api.close()
做市模块接口说明
接口说明见 做市模块接口 .