Show auto-transfer account and currency as selects with defaults.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Vendored
+18
@@ -70,7 +70,10 @@ HOT_RELOAD_EXACT = frozenset({
|
|||||||
"MONITOR_POLL_SECONDS",
|
"MONITOR_POLL_SECONDS",
|
||||||
"AUTO_TRANSFER_ENABLED",
|
"AUTO_TRANSFER_ENABLED",
|
||||||
"AUTO_TRANSFER_AMOUNT",
|
"AUTO_TRANSFER_AMOUNT",
|
||||||
|
"AUTO_TRANSFER_FROM",
|
||||||
|
"AUTO_TRANSFER_TO",
|
||||||
"AUTO_TRANSFER_BJ_HOUR",
|
"AUTO_TRANSFER_BJ_HOUR",
|
||||||
|
"TRANSFER_CCY",
|
||||||
"FORCE_CLOSE_ENABLED",
|
"FORCE_CLOSE_ENABLED",
|
||||||
"FORCE_CLOSE_BJ_HOUR",
|
"FORCE_CLOSE_BJ_HOUR",
|
||||||
"BTC_LEVERAGE",
|
"BTC_LEVERAGE",
|
||||||
@@ -126,6 +129,17 @@ SELECT_OPTIONS: dict[str, tuple[tuple[str, str], ...]] = {
|
|||||||
("long_only", "仅做多"),
|
("long_only", "仅做多"),
|
||||||
("short_only", "仅做空"),
|
("short_only", "仅做空"),
|
||||||
),
|
),
|
||||||
|
"AUTO_TRANSFER_FROM": (
|
||||||
|
("funding", "funding 资金账户"),
|
||||||
|
("swap", "swap 交易账户"),
|
||||||
|
("spot", "spot 现货"),
|
||||||
|
),
|
||||||
|
"AUTO_TRANSFER_TO": (
|
||||||
|
("swap", "swap 交易账户"),
|
||||||
|
("funding", "funding 资金账户"),
|
||||||
|
("spot", "spot 现货"),
|
||||||
|
),
|
||||||
|
"TRANSFER_CCY": (("USDT", "USDT"),),
|
||||||
"HEDGE_PLAN_OO_BIAS_SPLIT_BY": (
|
"HEDGE_PLAN_OO_BIAS_SPLIT_BY": (
|
||||||
("budget", "预算金额"),
|
("budget", "预算金额"),
|
||||||
("sheets", "张数"),
|
("sheets", "张数"),
|
||||||
@@ -136,6 +150,7 @@ _SELECT_ALIASES: dict[str, dict[str, str]] = {
|
|||||||
"OKX_TD_MODE": {"cross_margin": "cross", "isolated_margin": "isolated"},
|
"OKX_TD_MODE": {"cross_margin": "cross", "isolated_margin": "isolated"},
|
||||||
"BINANCE_MARGIN_MODE": {"cross_margin": "cross", "isolated_margin": "isolated"},
|
"BINANCE_MARGIN_MODE": {"cross_margin": "cross", "isolated_margin": "isolated"},
|
||||||
"GATE_TD_MODE": {"cross_margin": "cross", "isolated_margin": "isolated"},
|
"GATE_TD_MODE": {"cross_margin": "cross", "isolated_margin": "isolated"},
|
||||||
|
"TRANSFER_CCY": {"usdt": "USDT"},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -159,10 +174,13 @@ def normalize_select_value(key: str, value: Optional[str]) -> str:
|
|||||||
if low in aliases:
|
if low in aliases:
|
||||||
return aliases[low]
|
return aliases[low]
|
||||||
allowed = {v for v, _ in (SELECT_OPTIONS.get(key) or ())}
|
allowed = {v for v, _ in (SELECT_OPTIONS.get(key) or ())}
|
||||||
|
allowed_by_lower = {v.lower(): v for v in allowed}
|
||||||
if low in allowed:
|
if low in allowed:
|
||||||
return low
|
return low
|
||||||
if raw in allowed:
|
if raw in allowed:
|
||||||
return raw
|
return raw
|
||||||
|
if low in allowed_by_lower:
|
||||||
|
return allowed_by_lower[low]
|
||||||
return raw
|
return raw
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Vendored
+9
-4
@@ -103,10 +103,10 @@ _SHARED_SECTIONS: list[dict[str, Any]] = [
|
|||||||
"fields": [
|
"fields": [
|
||||||
("AUTO_TRANSFER_ENABLED", "启用自动划转", ""),
|
("AUTO_TRANSFER_ENABLED", "启用自动划转", ""),
|
||||||
("AUTO_TRANSFER_AMOUNT", "目标余额(U)", "交易账户目标 USDT"),
|
("AUTO_TRANSFER_AMOUNT", "目标余额(U)", "交易账户目标 USDT"),
|
||||||
("AUTO_TRANSFER_FROM", "划出账户", "funding 或 swap"),
|
("AUTO_TRANSFER_FROM", "划出账户", "余额不足时从此账户划入交易账户"),
|
||||||
("AUTO_TRANSFER_TO", "划入账户", "swap 或 funding"),
|
("AUTO_TRANSFER_TO", "划入账户", "目标余额所在账户,一般为 swap"),
|
||||||
("AUTO_TRANSFER_BJ_HOUR", "执行整点(北京时间)", ""),
|
("AUTO_TRANSFER_BJ_HOUR", "执行整点(北京时间)", ""),
|
||||||
("TRANSFER_CCY", "划转币种", "默认 USDT"),
|
("TRANSFER_CCY", "划转币种", ""),
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -200,6 +200,9 @@ _RUNTIME_ENV_DEFAULTS: dict[str, str] = {
|
|||||||
"RISK_MANUAL_CLOSE_DAILY_LIMIT": "2",
|
"RISK_MANUAL_CLOSE_DAILY_LIMIT": "2",
|
||||||
"RISK_DAILY_LOSS_LIMIT": "2",
|
"RISK_DAILY_LOSS_LIMIT": "2",
|
||||||
"RISK_MOOD_ISSUES_DAILY_FREEZE": "true",
|
"RISK_MOOD_ISSUES_DAILY_FREEZE": "true",
|
||||||
|
"AUTO_TRANSFER_FROM": "funding",
|
||||||
|
"AUTO_TRANSFER_TO": "swap",
|
||||||
|
"TRANSFER_CCY": "USDT",
|
||||||
"HEDGE_PLAN_SHOW_PERP_OPTIONS": "true",
|
"HEDGE_PLAN_SHOW_PERP_OPTIONS": "true",
|
||||||
"HEDGE_PLAN_SHOW_OPTIONS_OPTIONS": "true",
|
"HEDGE_PLAN_SHOW_OPTIONS_OPTIONS": "true",
|
||||||
"OKX_OPTIONS_CHAIN_ASK_LIQ_FILTER_ENABLED": "true",
|
"OKX_OPTIONS_CHAIN_ASK_LIQ_FILTER_ENABLED": "true",
|
||||||
@@ -214,7 +217,9 @@ _RUNTIME_ENV_DEFAULTS: dict[str, str] = {
|
|||||||
|
|
||||||
def _effective_env_value(key: str, file_values: dict[str, str], schema_default: str = "") -> str:
|
def _effective_env_value(key: str, file_values: dict[str, str], schema_default: str = "") -> str:
|
||||||
if key in file_values:
|
if key in file_values:
|
||||||
return file_values[key]
|
file_val = str(file_values.get(key) or "").strip()
|
||||||
|
if file_val:
|
||||||
|
return file_val
|
||||||
runtime = os.getenv(key)
|
runtime = os.getenv(key)
|
||||||
if runtime is not None and str(runtime).strip() != "":
|
if runtime is not None and str(runtime).strip() != "":
|
||||||
return str(runtime).strip()
|
return str(runtime).strip()
|
||||||
|
|||||||
Reference in New Issue
Block a user