白名单仅一币时选择币种默认显示 env 币种(关键位/实盘下单共用)。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-08-12 19:27:05 +08:00
parent 86cf722117
commit 71a91484a3
3 changed files with 42 additions and 8 deletions
@@ -4,10 +4,13 @@
{% endif %}
{% macro trade_policy_symbol(name, id, value='', required=true, placeholder='BTC 或 BTC/USDT') -%}
{% if trade_policy.symbol_restrict_enabled and trade_policy.symbol_whitelist %}
<select name="{{ name }}" id="{{ id }}" {% if required %}required{% endif %} class="trade-policy-symbol-select">
<option value="">选择币种</option>
{% for sym in trade_policy.symbol_whitelist %}
<option value="{{ sym }}" {% if value and ((value|upper) == sym or (value|upper).startswith(sym ~ '/')) %}selected{% endif %}>{{ sym }}/USDT</option>
{% set wl = trade_policy.symbol_whitelist %}
{% set sole_sym = wl[0] if (wl|length) == 1 else '' %}
{% set effective = value if value else sole_sym %}
<select name="{{ name }}" id="{{ id }}" {% if required %}required{% endif %} class="trade-policy-symbol-select"{% if sole_sym %} data-sole-symbol="{{ sole_sym }}"{% endif %}>
{% if not sole_sym %}<option value="">选择币种</option>{% endif %}
{% for sym in wl %}
<option value="{{ sym }}" {% if effective and ((effective|upper) == sym or (effective|upper).startswith(sym ~ '/')) %}selected{% endif %}>{{ sym }}/USDT</option>
{% endfor %}
</select>
{% else %}
+9 -4
View File
@@ -17,15 +17,20 @@ def trade_policy_template_context(policy: TradePolicy) -> dict:
def default_symbol_for_policy(policy: TradePolicy, raw_default: str) -> str:
d = (raw_default or "BTC/USDT").strip() or "BTC/USDT"
d = (raw_default or "").strip()
if policy.symbol_restrict_enabled and policy.symbol_whitelist:
# 白名单仅一币时直接用 env 币种,表单下拉同步默认选中
if len(policy.symbol_whitelist) == 1:
return f"{policy.symbol_whitelist[0]}/USDT"
from lib.trade.trade_policy_lib import symbol_base_coin
base = symbol_base_coin(d)
base = symbol_base_coin(d or "BTC/USDT")
if base not in policy.symbol_whitelist:
return f"{policy.symbol_whitelist[0]}/USDT"
return d
if d:
return d if "/" in d else f"{base}/USDT"
return f"{policy.symbol_whitelist[0]}/USDT"
return d or "BTC/USDT"
def check_symbol_policy(
policy: TradePolicy,