Tune CoinOX env: drop auto-transfer; map leverage to hedge perp opens.
BTC_LEVERAGE/ALT_LEVERAGE now drive永期永续 default leverage in UI and start fallback. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -40,6 +40,7 @@
|
||||
optionPrimary: root.getAttribute("data-option-primary") !== "0",
|
||||
opLevTouched: false,
|
||||
opRatioTouched: false,
|
||||
perpLevTouched: false,
|
||||
tradingUsdc: null,
|
||||
fundingUsdc: null,
|
||||
tradeBudgetUsdc: null,
|
||||
@@ -377,6 +378,14 @@
|
||||
};
|
||||
}
|
||||
|
||||
function defaultPerpLeverage(uly) {
|
||||
const u = (uly || "ETH").toUpperCase();
|
||||
const btc = Number(root.getAttribute("data-btc-leverage") || 10);
|
||||
const eth = Number(root.getAttribute("data-eth-leverage") || 5);
|
||||
if (u === "BTC") return Number.isFinite(btc) && btc > 0 ? btc : 10;
|
||||
return Number.isFinite(eth) && eth > 0 ? eth : 5;
|
||||
}
|
||||
|
||||
function syncUnderlyingUI() {
|
||||
const uly = state.underlying || "ETH";
|
||||
document.querySelectorAll(".hp-uly-btn, .hp-uly-btn-oo").forEach(function (b) {
|
||||
@@ -388,6 +397,11 @@
|
||||
if (lab) lab.textContent = uly;
|
||||
const ooLab = $("hp-oo-uly-label");
|
||||
if (ooLab) ooLab.textContent = uly;
|
||||
// 永续开仓杠杆跟随 env(BTC_LEVERAGE / ALT_LEVERAGE=ETH)
|
||||
const levEl = $("hp-perp-leverage");
|
||||
if (levEl && !state.perpLevTouched) {
|
||||
levEl.value = String(defaultPerpLeverage(uly));
|
||||
}
|
||||
}
|
||||
|
||||
function syncMoneyUI() {
|
||||
@@ -1664,7 +1678,7 @@
|
||||
strike_interval: numInput("hp-strike-interval", 15),
|
||||
min_option_hours: numInput("hp-min-hours", 36),
|
||||
option_leverage: numInput("hp-opt-leverage", 100),
|
||||
leverage: numInput("hp-perp-leverage", 100),
|
||||
leverage: numInput("hp-perp-leverage", defaultPerpLeverage(state.underlying)),
|
||||
moneyness: opMoneyKind(),
|
||||
hours_to_expiry: exp ? hoursFromExpMs(exp.exp_time) : null,
|
||||
};
|
||||
@@ -1868,6 +1882,11 @@
|
||||
renderListStrikes();
|
||||
});
|
||||
}
|
||||
if ($("hp-perp-leverage")) {
|
||||
$("hp-perp-leverage").addEventListener("input", function () {
|
||||
state.perpLevTouched = true;
|
||||
});
|
||||
}
|
||||
if ($("hp-opt-leverage")) {
|
||||
$("hp-opt-leverage").addEventListener("input", function () {
|
||||
state.opLevTouched = true;
|
||||
@@ -2618,7 +2637,7 @@
|
||||
strike_interval: numInput("hp-strike-interval", 15),
|
||||
min_option_hours: numInput("hp-min-hours", 36),
|
||||
option_leverage: optLev,
|
||||
leverage: numInput("hp-perp-leverage", 100),
|
||||
leverage: numInput("hp-perp-leverage", defaultPerpLeverage(state.underlying)),
|
||||
moneyness: opMoneyKind(),
|
||||
};
|
||||
const d = await apiJson("/api/hedge-plan/start", {
|
||||
@@ -2684,7 +2703,7 @@
|
||||
ask: state.selected.ask,
|
||||
index_px: entry,
|
||||
exchange_symbol: (state.market && state.market.exchange_symbol) || "",
|
||||
leverage: numInput("hp-perp-leverage", 100),
|
||||
leverage: numInput("hp-perp-leverage", defaultPerpLeverage(state.underlying)),
|
||||
option_leverage: numInput("hp-opt-leverage", 100),
|
||||
premium_budget: numInput("hp-premium-budget", 0),
|
||||
option_perp_ratio: numInput("hp-opt-perp-ratio", 2),
|
||||
|
||||
Reference in New Issue
Block a user