a
This commit is contained in:
parent
7d0b575877
commit
0e9a0977e9
|
|
@ -349,6 +349,11 @@ class PositionManager:
|
||||||
self._pending_entry_orders.pop(symbol, None)
|
self._pending_entry_orders.pop(symbol, None)
|
||||||
logger.info(f"{symbol} [智能入场] 限价超时,且偏离{drift_ratio*100:.2f}%≤{max_drift_ratio*100:.2f}%,转市价兜底")
|
logger.info(f"{symbol} [智能入场] 限价超时,且偏离{drift_ratio*100:.2f}%≤{max_drift_ratio*100:.2f}%,转市价兜底")
|
||||||
order = await self.client.place_order(symbol=symbol, side=side, quantity=quantity, order_type="MARKET")
|
order = await self.client.place_order(symbol=symbol, side=side, quantity=quantity, order_type="MARKET")
|
||||||
|
# 关键:转市价后必须更新 entry_order_id,否则后续会继续查询“已取消的旧限价单”,导致误判 CANCELED
|
||||||
|
try:
|
||||||
|
entry_order_id = order.get("orderId") if isinstance(order, dict) else None
|
||||||
|
except Exception:
|
||||||
|
entry_order_id = None
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
logger.info(f"{symbol} [智能入场] 限价超时,但偏离{drift_ratio*100:.2f}%>{max_drift_ratio*100:.2f}%,取消并放弃本次交易")
|
logger.info(f"{symbol} [智能入场] 限价超时,但偏离{drift_ratio*100:.2f}%>{max_drift_ratio*100:.2f}%,取消并放弃本次交易")
|
||||||
|
|
@ -412,7 +417,14 @@ class PositionManager:
|
||||||
actual_entry_price = float(res.get("avg_price") or 0)
|
actual_entry_price = float(res.get("avg_price") or 0)
|
||||||
filled_quantity = float(res.get("executed_qty") or 0)
|
filled_quantity = float(res.get("executed_qty") or 0)
|
||||||
else:
|
else:
|
||||||
logger.error(f"{symbol} [开仓] ❌ 订单未成交,状态: {order_status},不保存到数据库")
|
# 未成交(NEW/超时/CANCELED 等)属于“策略未触发入场”或“挂单没成交”
|
||||||
|
# 这不应当当作系统错误;同时需要撤单,避免留下悬挂委托造成后续混乱。
|
||||||
|
logger.warning(f"{symbol} [开仓] 未成交,状态: {order_status},跳过本次开仓并撤销挂单")
|
||||||
|
try:
|
||||||
|
if str(order_status).upper() in {"NEW", "PARTIALLY_FILLED", "PENDING_NEW", "TIMEOUT"}:
|
||||||
|
await self.client.cancel_order(symbol, int(entry_order_id))
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
self._pending_entry_orders.pop(symbol, None)
|
self._pending_entry_orders.pop(symbol, None)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user