Treat option-option amplitude as a maximum cap.
Reject opens when range exceeds the setting; update UI and docs labels. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -211,6 +211,8 @@ export type MarketSnapshot = {
|
||||
mid?: number;
|
||||
range_pct?: number;
|
||||
hours?: number;
|
||||
max_pct?: number;
|
||||
/** @deprecated 兼容旧字段,等同 max_pct */
|
||||
min_pct?: number;
|
||||
ok?: boolean;
|
||||
} | null;
|
||||
|
||||
@@ -261,7 +261,7 @@ export default function PlanPage() {
|
||||
? `ATM偏差≤${fmt(plan?.max_atm_open_offset ?? 3, 0)}`
|
||||
: "ATM偏差关";
|
||||
const ooSelectLabel = [
|
||||
`振幅≥${fmt(plan?.oo_amplitude_pct ?? 1.5, 1)}%/${fmt(plan?.oo_amplitude_hours ?? 12, 0)}h`,
|
||||
`振幅≤${fmt(plan?.oo_amplitude_pct ?? 1.5, 1)}%/${fmt(plan?.oo_amplitude_hours ?? 12, 0)}h`,
|
||||
"虚值Call@高·Put@低",
|
||||
`剩余≥${fmt(plan?.oo_min_option_hours ?? 24, 0)}h`,
|
||||
`杠杆≥${fmt(plan?.oo_min_leverage ?? 200, 0)}x`,
|
||||
@@ -897,13 +897,20 @@ export default function PlanPage() {
|
||||
{snap?.oo_amplitude?.range_pct != null
|
||||
? `${fmt(snap.oo_amplitude.range_pct, 2)}%`
|
||||
: "—"}
|
||||
{snap?.oo_amplitude?.min_pct != null
|
||||
? ` · 门限≥${fmt(snap.oo_amplitude.min_pct, 1)}%`
|
||||
{(snap?.oo_amplitude?.max_pct ?? snap?.oo_amplitude?.min_pct) !=
|
||||
null
|
||||
? ` · 上限≤${fmt(
|
||||
Number(
|
||||
snap.oo_amplitude?.max_pct ??
|
||||
snap.oo_amplitude?.min_pct,
|
||||
),
|
||||
1,
|
||||
)}%`
|
||||
: ""}
|
||||
{snap?.oo_amplitude?.ok === false
|
||||
? " · 不足"
|
||||
? " · 超限"
|
||||
: snap?.oo_amplitude?.ok === true
|
||||
? " · 达标"
|
||||
? " · 可开"
|
||||
: ""}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -1220,7 +1220,7 @@ export default function SettingsPage() {
|
||||
{isOo ? (
|
||||
<>
|
||||
<div className="field">
|
||||
<label htmlFor="ooAmp">振幅最小(%)</label>
|
||||
<label htmlFor="ooAmp">振幅最大(%)</label>
|
||||
<input
|
||||
id="ooAmp"
|
||||
className="mono"
|
||||
@@ -1230,6 +1230,9 @@ export default function SettingsPage() {
|
||||
value={ooAmpPct}
|
||||
onChange={(e) => setOoAmpPct(Number(e.target.value))}
|
||||
/>
|
||||
<p className="hint" style={{ margin: "0.35rem 0 0" }}>
|
||||
回看窗内振幅超过该上限则不开仓。
|
||||
</p>
|
||||
</div>
|
||||
<div className="field">
|
||||
<label htmlFor="ooAmpH">振幅回看(小时)</label>
|
||||
@@ -1622,7 +1625,7 @@ export default function SettingsPage() {
|
||||
{stratSub === "select" ? (
|
||||
isOo ? (
|
||||
<li>
|
||||
期期选约:回看窗内真实高低点振幅达标后,同到期虚值 Call
|
||||
期期选约:回看窗内真实高低点振幅不超过上限后,同到期虚值 Call
|
||||
贴高、Put 贴低;剩余到期与单腿杠杆门限见本页。
|
||||
</li>
|
||||
) : (
|
||||
|
||||
Reference in New Issue
Block a user