Add fixed-direction switch for perp/option open side.

When enabled, lock perp long→buy Put or short→buy Call with ITM/ATM only; off keeps ATM/ask rules.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-07-29 19:18:12 +08:00
parent 55109e82d3
commit 0ee1d8be5d
16 changed files with 427 additions and 46 deletions
+12
View File
@@ -93,6 +93,16 @@ class StrategyEngine:
max_atm_off = self.ledger.get_setting_float(
"max_atm_open_offset", s.max_atm_open_offset
)
fixed_dir_on = self.ledger.get_setting_bool(
"fixed_direction_enabled", s.fixed_direction_enabled
)
fixed_perp = str(
self.ledger.get_setting_str("fixed_perp_side", s.fixed_perp_side)
or s.fixed_perp_side
or "long"
).strip().lower()
if fixed_perp not in ("long", "short"):
fixed_perp = "long"
perp_qty = self.ledger.get_setting_float("perp_qty_eth", s.perp_qty_eth)
opt_qty = self.ledger.get_setting_float("option_qty_eth", s.option_qty_eth)
rest_until = row["rest_until_ms"]
@@ -136,6 +146,8 @@ class StrategyEngine:
"min_option_leverage": min_opt_lev,
"atm_open_offset_enabled": atm_off_on,
"max_atm_open_offset": max_atm_off,
"fixed_direction_enabled": fixed_dir_on,
"fixed_perp_side": fixed_perp,
"can_open": allow_open,
"open_capacity": open_cap,
"last_error": last_error,