Split OO budget per leg and size Call/Put independently.
Each half of the risk budget buys its own qty from ask; equal qty no longer forced. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -116,6 +116,7 @@ class StrategyEngine:
|
||||
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)
|
||||
oo_put_qty = self.ledger.get_setting_float("oo_put_qty_eth", opt_qty)
|
||||
sizing_mode = (
|
||||
sm
|
||||
if (
|
||||
@@ -161,8 +162,12 @@ class StrategyEngine:
|
||||
if risk_preview.get("ok"):
|
||||
if risk_preview.get("perp_qty_eth") is not None:
|
||||
perp_qty = float(risk_preview["perp_qty_eth"])
|
||||
if risk_preview.get("option_qty_eth") is not None:
|
||||
if risk_preview.get("call_qty_eth") is not None:
|
||||
opt_qty = float(risk_preview["call_qty_eth"])
|
||||
elif risk_preview.get("option_qty_eth") is not None:
|
||||
opt_qty = float(risk_preview["option_qty_eth"])
|
||||
if risk_preview.get("put_qty_eth") is not None:
|
||||
oo_put_qty = float(risk_preview["put_qty_eth"])
|
||||
if risk_preview.get("net_profit_target") is not None:
|
||||
net_target = float(risk_preview["net_profit_target"])
|
||||
exit_amt = net_target
|
||||
@@ -243,6 +248,7 @@ class StrategyEngine:
|
||||
"perp_margin_mode": perp_mm,
|
||||
"perp_qty_eth": perp_qty,
|
||||
"option_qty_eth": opt_qty,
|
||||
"oo_put_qty_eth": oo_put_qty,
|
||||
"sizing_mode": sizing_mode,
|
||||
"risk_based": sizing_mode == "risk_based",
|
||||
"hedge_mode": (
|
||||
|
||||
Reference in New Issue
Block a user