Reject OO strikes more than 1% from amplitude high/low.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -373,6 +373,7 @@ export type PlanState = {
|
||||
oo_min_option_hours?: number;
|
||||
oo_min_leverage?: number;
|
||||
oo_reward_ratio?: number;
|
||||
oo_strike_max_dev_pct?: number;
|
||||
oo_put_qty_eth?: number;
|
||||
sizing_mode?: "manual" | "risk_based";
|
||||
risk_based?: boolean;
|
||||
@@ -428,6 +429,8 @@ export type StrategySettings = {
|
||||
oo_min_leverage?: number;
|
||||
oo_reward_ratio?: number;
|
||||
oo_budget_cushion?: number;
|
||||
oo_strike_max_dev_pct?: number;
|
||||
oo_strike_max_dev_pct?: number;
|
||||
exchange?: string;
|
||||
};
|
||||
|
||||
|
||||
@@ -265,6 +265,7 @@ export default function PlanPage() {
|
||||
: "ATM偏差关";
|
||||
const ooSelectLabel = [
|
||||
`振幅≤${fmt(plan?.oo_amplitude_pct ?? 1.5, 1)}%/${fmt(plan?.oo_amplitude_hours ?? 12, 0)}h`,
|
||||
`贴高低≤${fmt(plan?.oo_strike_max_dev_pct ?? 1, 1)}%`,
|
||||
"虚值Call@高·Put@低",
|
||||
`剩余≥${fmt(plan?.oo_min_option_hours ?? 24, 0)}h`,
|
||||
`杠杆≥${fmt(plan?.oo_min_leverage ?? 200, 0)}x`,
|
||||
|
||||
@@ -115,6 +115,7 @@ export default function SettingsPage() {
|
||||
const [ooAmpHours, setOoAmpHours] = useState(12);
|
||||
const [ooMinHours, setOoMinHours] = useState(24);
|
||||
const [ooMinLev, setOoMinLev] = useState(200);
|
||||
const [ooStrikeDev, setOoStrikeDev] = useState(1);
|
||||
const [ooRewardRatio, setOoRewardRatio] = useState(2);
|
||||
const [riskPreview, setRiskPreview] = useState<Record<string, unknown> | null>(
|
||||
null,
|
||||
@@ -236,6 +237,7 @@ export default function SettingsPage() {
|
||||
setOoAmpHours(s.oo_amplitude_hours ?? 12);
|
||||
setOoMinHours(s.oo_min_option_hours ?? 24);
|
||||
setOoMinLev(s.oo_min_leverage ?? 200);
|
||||
setOoStrikeDev(s.oo_strike_max_dev_pct ?? 1);
|
||||
setOoRewardRatio(s.oo_reward_ratio ?? 2);
|
||||
setRiskPreview(
|
||||
s.risk_sizing_preview && typeof s.risk_sizing_preview === "object"
|
||||
@@ -412,6 +414,7 @@ export default function SettingsPage() {
|
||||
oo_amplitude_hours: ooAmpHours,
|
||||
oo_min_option_hours: ooMinHours,
|
||||
oo_min_leverage: ooMinLev,
|
||||
oo_strike_max_dev_pct: ooStrikeDev,
|
||||
oo_reward_ratio: ooRewardRatio,
|
||||
exchange,
|
||||
};
|
||||
@@ -1281,8 +1284,24 @@ export default function SettingsPage() {
|
||||
value={ooMinLev}
|
||||
onChange={(e) => setOoMinLev(Number(e.target.value))}
|
||||
/>
|
||||
</div>
|
||||
<div className="field">
|
||||
<label htmlFor="ooStrikeDev">贴高低最大偏离(%)</label>
|
||||
<input
|
||||
id="ooStrikeDev"
|
||||
className="mono"
|
||||
type="number"
|
||||
step="0.1"
|
||||
min="0.1"
|
||||
max="10"
|
||||
value={ooStrikeDev}
|
||||
onChange={(e) =>
|
||||
setOoStrikeDev(Number(e.target.value))
|
||||
}
|
||||
/>
|
||||
<p className="hint" style={{ margin: "0.35rem 0 0" }}>
|
||||
期期:同到期虚值 Call 贴高点、Put 贴低点;不使用 ATM/固定方向。
|
||||
虚值 Call/Put 行权价相对振幅高/低点 |K−HL|/HL
|
||||
不超过该比例(默认 1%)。
|
||||
</p>
|
||||
</div>
|
||||
</>
|
||||
|
||||
Reference in New Issue
Block a user