This commit is contained in:
2026-08-26 16:37:06 +08:00
parent 566a07fea8
commit c30c1541d2
9 changed files with 331 additions and 638 deletions

View File

@@ -280,8 +280,8 @@ class FullTickHandler(BaseHandler):
def post(self):
data = json.loads(self.request.body)
stocks = data.get('stocks', [])
if not stocks:
raise HTTPError(400, "need args stocks")
#if not stocks:
# raise HTTPError(400, "need args stocks")
ret = safe_call(self.ctx().get_full_tick, stocks)
if not ret:
raise HTTPError(500, "获取分笔行情失败")
@@ -913,7 +913,7 @@ class TradeDetailDataHandler(BaseHandler):
data = json.loads(self.request.body)
account = data.get('account', 'stock')
datatype = data.get('datatype', 'position')
ret = safe_call(get_trade_detail_data, self.acc(), account, datatype, 'qmt')
ret = safe_call(get_trade_detail_data, self.acc(), account, datatype)
if ret is None:
ret = []
result = []
@@ -956,7 +956,7 @@ class LastOrderIdHandler(BaseHandler):
data = json.loads(self.request.body)
account = data.get('account', 'stock')
datatype = data.get('datatype', 'ORDER')
ret = safe_call(get_last_order_id, self.acc(), account, datatype, 'qmt')
ret = safe_call(get_last_order_id, self.acc(), account, datatype)
self.write(json.dumps({"last_order_id": ret}, ensure_ascii=False))
# can_cancel_order() - 查询委托是否可撤销
@@ -1163,7 +1163,8 @@ class BuyHandler(BaseHandler):
price = float(data['price'])
volume = int(data['volume'])
pr_type = data.get('prType', 11)
order_ref = passorder(23, 1101, self.acc(), stock, pr_type, price, volume, 'qmt', 2, self.ctx())
sn = data.get('sn','')
order_ref = passorder(23, 1101, self.acc(), stock, pr_type, price, volume, sn, 2, self.ctx())
self.write(json.dumps({
"status": "success", "action": "buy", "stock": stock,
"order_ref": str(order_ref) if order_ref else "unknown"
@@ -1181,7 +1182,8 @@ class SellHandler(BaseHandler):
price = float(data['price'])
volume = int(data['volume'])
pr_type = data.get('prType', 11)
order_ref = passorder(24, 1101, self.acc(), stock, pr_type, price, volume, 'qmt', 2, self.ctx())
sn = data.get('sn','')
order_ref = passorder(24, 1101, self.acc(), stock, pr_type, price, volume, sn, 2, self.ctx())
self.write(json.dumps({
"status": "success", "action": "sell", "stock": stock,
"order_ref": str(order_ref) if order_ref else "unknown"
@@ -1195,7 +1197,8 @@ class OrderStatusHandler(BaseHandler):
def post(self):
data = json.loads(self.request.body)
account = data.get('account', 'stock')
orders = safe_call(get_trade_detail_data, self.acc(), account, 'order', 'qmt') or []
sn = data.get('sn','')
orders = safe_call(get_trade_detail_data, self.acc(), account, 'order', sn) or []
rets = []
for order in orders:
rets.append({
@@ -1212,7 +1215,8 @@ class CancelAllHandler(BaseHandler):
try:
data = json.loads(self.request.body)
account = data.get('account', 'stock')
orders = safe_call(get_trade_detail_data, self.acc(), account, 'order', 'qmt') or []
sn = data.get('sn','')
orders = safe_call(get_trade_detail_data, self.acc(), account, 'order', sn) or []
canceled_list = []
for order in orders:
if can_cancel_order(order.m_strOrderSysID, self.acc(), account):
@@ -1237,11 +1241,12 @@ class CancelByRuleHandler(BaseHandler):
try:
data = json.loads(self.request.body)
stock = data.get('stock')
sn = data.get('sn','')
cancel_volume = int(data.get('volume', 0))
account = data.get('account', 'stock')
if not stock or cancel_volume <= 0:
raise HTTPError(400, "参数错误:必须提供 stock 且 volume > 0")
orders = safe_call(get_trade_detail_data, self.acc(), account, 'order', 'qmt') or []
orders = safe_call(get_trade_detail_data, self.acc(), account, 'order', sn) or []
target_orders = []
for order in orders:
order_code = f"{order.m_strInstrumentID}.{order.m_strExchangeID}"
@@ -1293,7 +1298,8 @@ class DealHandler(BaseHandler):
def post(self):
data = json.loads(self.request.body)
account = data.get('account', 'stock')
deals = safe_call(get_trade_detail_data, self.acc(), account, 'deal', 'qmt') or []
sn = data.get('sn','')
deals = safe_call(get_trade_detail_data, self.acc(), account, 'deal', sn) or []
rets = []
for deal in deals:
attrs = {}