Fix long breakout roll validation: breakthrough must be above current price.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-07-03 21:59:24 +08:00
parent f2bd76d970
commit 75d9c86593
+11 -5
View File
@@ -175,7 +175,7 @@ def validate_roll_geometry(
"""几何校验。 """几何校验。
做多斐波(回调):止损 < 触发价 < 当前价 做多斐波(回调):止损 < 触发价 < 当前价
做多突破(向上):止损 < 突破价 < 当前 做多突破(向上):止损 < 当前价 < 突破
做空斐波(反弹):当前价 < 触发价 < 止损 做空斐波(反弹):当前价 < 触发价 < 止损
做空突破(向下):突破价 < 当前价 < 止损(提交时);触发后当前价可 ≤ 突破价 做空突破(向下):突破价 < 当前价 < 止损(提交时);触发后当前价可 ≤ 突破价
""" """
@@ -208,10 +208,16 @@ def validate_roll_geometry(
if trigger <= 0: if trigger <= 0:
return "须填写突破价" return "须填写突破价"
if off_session_pending: if off_session_pending:
if direction == "long" and not (sl < trigger): if direction == "long":
if not (sl < trigger):
return "做多突破:休盘提交须满足 止损 < 突破价" return "做多突破:休盘提交须满足 止损 < 突破价"
if direction == "short" and not (trigger < sl): if mark > 0 and not (mark < trigger):
return "做多突破:休盘提交须满足 当前价 < 突破价"
if direction == "short":
if not (trigger < sl):
return "做空突破:休盘提交须满足 突破价 < 止损" return "做空突破:休盘提交须满足 突破价 < 止损"
if mark > 0 and not (trigger < mark):
return "做空突破:休盘提交须满足 突破价 < 当前价"
return None return None
if at_trigger: if at_trigger:
if direction == "long": if direction == "long":
@@ -222,8 +228,8 @@ def validate_roll_geometry(
return "做空突破:触发时须满足 突破价 < 止损且当前价 < 止损" return "做空突破:触发时须满足 突破价 < 止损且当前价 < 止损"
return None return None
if direction == "long": if direction == "long":
if not (sl < trigger < mark): if not (sl < mark < trigger):
return "做多突破:须满足 止损 < 突破价 < 当前" return "做多突破:须满足 止损 < 当前价 < 突破"
else: else:
if not (trigger < mark < sl): if not (trigger < mark < sl):
return "做空突破:须满足 突破价 < 当前价 < 止损" return "做空突破:须满足 突破价 < 当前价 < 止损"