.. _market_maker: 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() 做市模块接口说明 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 接口说明见 `做市模块接口 `_ .