我在用逆回购(后附程序代码)测试miniqmt的异步下单以及回调callback函数。
异步下单后,发现 on_order_stock_async_response 回调callback是有返回的,但是 on_stock_trade 这个callback没有任何信息返回,即使是单子已经成交的情况下。
请问,miniqmt如何可以得到callback的成交信息?
终端界面信息返回:
20240716150557 nihuigou下单:async_seq(5)卖出逆回购:2060手
异步委托回调 20240716150557_131810.S
程序如下:
def nihuigou(xt_trader,acc,symbol="131810.SZ"):
now_str = datetime.now().strftime('%Y%m%d%H%M%S')
A.asset = xt_trader.query_stock_asset(acc)
if A.asset.cash >1000:
vol = int((A.asset.cash//1000)*10)
msg = f"{now_str}_{symbol}_sell_{vol}"
async_seq = xt_trader.order_stock_async(acc,symbol,xtconstant.STOCK_SELL,vol,xtconstant.LATEST_PRICE,9.99,strategy_name='nihuigou',order_remark=msg)
print(now_str,f'nihuigou下单:async_seq({async_seq})卖出逆回购:{vol}手')
else:
print(now_str,"nihuigou下单:逆回购金额不足")
class MyXtQuantTraderCallback(XtQuantTraderCallback):
def on_disconnected(self):
print(datetime.datetime.now(),'连接断开回调')
def on_stock_order(self, order):
print(datetime.datetime.now(), '委托回调', order.order_remark)
def on_stock_trade(self, trade):
print(datetime.datetime.now(), '成交回调', trade.strategy_name, trade.order_remark)
if trade.strategy_name == g.strategy_Name and trade.order_remark[26:29] == 'sel':
str ='\n{},{},,{},-1,{},{},{},-0.1'.format(trade.traded_time,trade.strategy_name,trade.stock_code,trade.traded_price,trade.traded_volume,-1 * trade.traded_price * trade.traded_volume * 0.00005)
print(str)
def on_order_stock_async_response(self, response):
print(f"异步委托回调 {response.order_remark}")
|