fix: 修正突破加仓当前价与突破价的几何校验

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-06-26 23:34:59 +08:00
parent be8e4ce6c6
commit 9cb63c368a
2 changed files with 47 additions and 5 deletions
+43 -1
View File
@@ -5,6 +5,7 @@ from strategy_roll_lib import (
roll_fib_invalidate,
roll_fib_trigger_crossed,
solve_add_amount_for_total_risk,
validate_roll_geometry,
)
@@ -64,7 +65,48 @@ def test_preview_breakout_mode_label():
breakthrough_price=3100.0,
risk_percent=10.0,
capital_base_usdt=1000.0,
add_price=3150.0,
add_price=3050.0,
)
assert err is None
assert preview["add_mode_label"] == "突破加仓"
def test_breakout_geometry_short_mark_above_breakout():
err = validate_roll_geometry(
"short",
"breakout",
new_stop_loss=568.0,
breakthrough_price=551.0,
entry_existing=560.0,
initial_take_profit=540.0,
mark_price=560.0,
)
assert err is None
def test_breakout_geometry_short_rejects_mark_at_or_below_breakout():
err = validate_roll_geometry(
"short",
"breakout",
new_stop_loss=568.0,
breakthrough_price=551.0,
entry_existing=560.0,
initial_take_profit=540.0,
mark_price=551.0,
)
assert err is not None
assert "高于突破价" in err
def test_breakout_geometry_long_rejects_mark_at_or_above_breakout():
err = validate_roll_geometry(
"long",
"breakout",
new_stop_loss=2980.0,
breakthrough_price=3100.0,
entry_existing=3000.0,
initial_take_profit=3500.0,
mark_price=3100.0,
)
assert err is not None
assert "低于突破价" in err