Support LIVE exchange funds and perp margin mode.
Hide sim equity when LIVE is selected; OKX funds bar uses exchange balances; add cross/isolated for perp only (options stay cash). Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -37,6 +37,7 @@ KEYS = (
|
||||
"skip_weekends",
|
||||
"initial_equity",
|
||||
"leverage",
|
||||
"perp_margin_mode",
|
||||
"min_option_hours",
|
||||
"min_option_leverage",
|
||||
"atm_open_offset_enabled",
|
||||
@@ -61,6 +62,7 @@ class StrategySettingsBody(BaseModel):
|
||||
skip_weekends: bool | None = None
|
||||
initial_equity: float | None = Field(default=None, ge=1000, le=10_000_000)
|
||||
leverage: float | None = Field(default=None, ge=1, le=125)
|
||||
perp_margin_mode: str | None = Field(default=None, pattern="^(cross|isolated)$")
|
||||
min_option_hours: float | None = Field(default=None, ge=1, le=720)
|
||||
min_option_leverage: float | None = Field(default=None, ge=1, le=10000)
|
||||
atm_open_offset_enabled: bool | None = None
|
||||
@@ -117,6 +119,20 @@ def _read_settings() -> dict:
|
||||
db.get_setting("initial_equity", str(s.initial_equity)) or s.initial_equity
|
||||
),
|
||||
"leverage": float(db.get_setting("leverage", str(s.leverage)) or s.leverage),
|
||||
"perp_margin_mode": (
|
||||
mm
|
||||
if (
|
||||
mm := str(
|
||||
db.get_setting("perp_margin_mode", s.perp_margin_mode)
|
||||
or s.perp_margin_mode
|
||||
or "cross"
|
||||
)
|
||||
.strip()
|
||||
.lower()
|
||||
)
|
||||
in ("cross", "isolated")
|
||||
else "cross"
|
||||
),
|
||||
"min_option_hours": float(
|
||||
db.get_setting("min_option_hours", str(s.min_option_hours))
|
||||
or s.min_option_hours
|
||||
|
||||
Reference in New Issue
Block a user