Reject OO strikes more than 1% from amplitude high/low.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -71,6 +71,7 @@ KEYS = (
|
||||
"oo_min_leverage",
|
||||
"oo_reward_ratio",
|
||||
"oo_budget_cushion",
|
||||
"oo_strike_max_dev_pct",
|
||||
)
|
||||
|
||||
|
||||
@@ -126,6 +127,7 @@ class StrategySettingsBody(BaseModel):
|
||||
oo_min_leverage: float | None = Field(default=None, ge=1, le=10000)
|
||||
oo_reward_ratio: float | None = Field(default=None, ge=0.5, le=20)
|
||||
oo_budget_cushion: float | None = Field(default=None, ge=0.5, le=1.0)
|
||||
oo_strike_max_dev_pct: float | None = Field(default=None, ge=0.1, le=10)
|
||||
|
||||
|
||||
def _as_bool(raw: str | None, default: bool) -> bool:
|
||||
@@ -379,6 +381,12 @@ def _read_settings() -> dict:
|
||||
db.get_setting("oo_budget_cushion", str(s.oo_budget_cushion))
|
||||
or s.oo_budget_cushion
|
||||
),
|
||||
"oo_strike_max_dev_pct": float(
|
||||
db.get_setting(
|
||||
"oo_strike_max_dev_pct", str(s.oo_strike_max_dev_pct)
|
||||
)
|
||||
or s.oo_strike_max_dev_pct
|
||||
),
|
||||
"risk_sizing_preview": _risk_preview_safe(),
|
||||
"exchange": rt.exchange,
|
||||
"perp_inst_id": rt.perp_inst_id,
|
||||
@@ -472,6 +480,7 @@ async def put_strategy_settings(
|
||||
"oo_min_leverage",
|
||||
"oo_reward_ratio",
|
||||
"oo_budget_cushion",
|
||||
"oo_strike_max_dev_pct",
|
||||
)
|
||||
hit = [k for k in locked_keys if k in data]
|
||||
if hit:
|
||||
|
||||
Reference in New Issue
Block a user