diff --git a/tests/strategy_switch_worker_validation.mjs b/tests/strategy_switch_worker_validation.mjs index 174ed6b..f18605e 100644 --- a/tests/strategy_switch_worker_validation.mjs +++ b/tests/strategy_switch_worker_validation.mjs @@ -35,6 +35,8 @@ assert.ok(indexHtml.includes('el("income-layer-mode-select").addEventListener("c assert.ok(indexHtml.includes('el("income-layer-start-usd-input").addEventListener("input"')); assert.ok(indexHtml.includes('el("income-layer-max-ratio-input").addEventListener("input"')); assert.ok(indexHtml.includes('label_zh: "纳斯达克 / 标普智能定投"')); +assert.ok(indexHtml.includes('profile: "ibit_smart_dca"')); +assert.ok(indexHtml.includes('IBIT 比特币 ETF 智能定投')); assert.ok(indexHtml.includes('localStrategyLabels')); assert.ok(indexHtml.includes('function strategyLabelSet(')); assert.ok(indexHtml.includes("account-block")); diff --git a/web/strategy-switch-console/index.html b/web/strategy-switch-console/index.html index 87111af..f7e783e 100644 --- a/web/strategy-switch-console/index.html +++ b/web/strategy-switch-console/index.html @@ -902,6 +902,7 @@

切换摘要

{ profile: "tqqq_growth_income", label: "TQQQ Growth Income", label_en: "TQQQ Growth Income", label_zh: "TQQQ 增长收益", domain: "us_equity", runtime_enabled: true }, { profile: "soxl_soxx_trend_income", label: "SOXL/SOXX Semiconductor Trend Income", label_en: "SOXL/SOXX Semiconductor Trend Income", label_zh: "SOXL/SOXX 半导体趋势收益", domain: "us_equity", runtime_enabled: true }, { profile: "nasdaq_sp500_smart_dca", label: "Nasdaq/S&P 500 Smart DCA", label_en: "Nasdaq/S&P 500 Smart DCA", label_zh: "纳斯达克 / 标普智能定投", domain: "us_equity", runtime_enabled: true }, + { profile: "ibit_smart_dca", label: "IBIT Smart DCA", label_en: "IBIT Smart DCA", label_zh: "IBIT 比特币 ETF 智能定投", domain: "us_equity", runtime_enabled: true }, { profile: "global_etf_rotation", label: "Global ETF Rotation", label_en: "Global ETF Rotation", label_zh: "全球 ETF 轮动", domain: "us_equity", runtime_enabled: true }, { profile: "russell_1000_multi_factor_defensive", label: "Russell 1000 Multi-Factor Defensive", label_en: "Russell 1000 Multi-Factor Defensive", label_zh: "罗素 1000 多因子防御", domain: "us_equity", runtime_enabled: true }, { profile: "mega_cap_leader_rotation_top50_balanced", label: "Mega Cap Leader Rotation Top50 Balanced", label_en: "Mega Cap Leader Rotation Top50 Balanced", label_zh: "美股巨头 Top50 均衡轮动", domain: "us_equity", runtime_enabled: true }, @@ -914,6 +915,7 @@

切换摘要

tqqq_growth_income: { zh: "TQQQ 增长收益", en: "TQQQ Growth Income" }, soxl_soxx_trend_income: { zh: "SOXL/SOXX 半导体趋势收益", en: "SOXL/SOXX Semiconductor Trend Income" }, nasdaq_sp500_smart_dca: { zh: "纳斯达克 / 标普智能定投", en: "Nasdaq/S&P 500 Smart DCA" }, + ibit_smart_dca: { zh: "IBIT 比特币 ETF 智能定投", en: "IBIT Smart DCA" }, global_etf_rotation: { zh: "全球 ETF 轮动", en: "Global ETF Rotation" }, russell_1000_multi_factor_defensive: { zh: "罗素 1000 多因子防御", en: "Russell 1000 Multi-Factor Defensive" }, mega_cap_leader_rotation_top50_balanced: { zh: "美股巨头 Top50 均衡轮动", en: "Mega Cap Leader Rotation Top50 Balanced" }, diff --git a/web/strategy-switch-console/page_asset.js b/web/strategy-switch-console/page_asset.js index a882288..5e0035e 100644 --- a/web/strategy-switch-console/page_asset.js +++ b/web/strategy-switch-console/page_asset.js @@ -1,2 +1,2 @@ // Generated by scripts/sync_strategy_switch_page_asset.py; do not edit by hand. -export const PAGE_HTML = "\n\n\n \n \n \n QuantRuntimeSettings Strategy Switch\n \n\n\n
\n
\n

策略切换

\n

选平台、目标账号和策略,一次执行完成切换。

\n
\n
\n \n \n \n \n
\n
\n\n
\n
\n 初始化控制台\n

读取策略配置

\n

正在读取登录状态、账号配置和当前状态。

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n 当前平台\n

LongBridge

\n
\n\n \n\n
\n \n\n \n\n
\n 模式\n
\n \n \n
\n
\n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n
\n\n
\n \n

登录后才可执行切换。

\n

\n
\n
\n\n \n
\n
\n\n \n\n\n"; +export const PAGE_HTML = "\n\n\n \n \n \n QuantRuntimeSettings Strategy Switch\n \n\n\n
\n
\n

策略切换

\n

选平台、目标账号和策略,一次执行完成切换。

\n
\n
\n \n \n \n \n
\n
\n\n
\n
\n 初始化控制台\n

读取策略配置

\n

正在读取登录状态、账号配置和当前状态。

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n 当前平台\n

LongBridge

\n
\n\n \n\n
\n \n\n \n\n
\n 模式\n
\n \n \n
\n
\n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n
\n\n
\n \n

登录后才可执行切换。

\n

\n
\n
\n\n \n
\n
\n\n \n\n\n"; diff --git a/web/strategy-switch-console/strategy-profiles.example.json b/web/strategy-switch-console/strategy-profiles.example.json index 56c7919..261ec91 100644 --- a/web/strategy-switch-console/strategy-profiles.example.json +++ b/web/strategy-switch-console/strategy-profiles.example.json @@ -23,6 +23,14 @@ "domain": "us_equity", "runtime_enabled": true }, + { + "profile": "ibit_smart_dca", + "label": "IBIT Smart DCA", + "label_en": "IBIT Smart DCA", + "label_zh": "IBIT 比特币 ETF 智能定投", + "domain": "us_equity", + "runtime_enabled": true + }, { "profile": "global_etf_rotation", "label": "Global ETF Rotation", diff --git a/web/strategy-switch-console/strategy_profiles_asset.js b/web/strategy-switch-console/strategy_profiles_asset.js index bd6e092..f45417e 100644 --- a/web/strategy-switch-console/strategy_profiles_asset.js +++ b/web/strategy-switch-console/strategy_profiles_asset.js @@ -1,2 +1,2 @@ // Generated by scripts/sync_strategy_switch_page_asset.py; do not edit by hand. -export const DEFAULT_STRATEGY_PROFILES = [{"profile": "tqqq_growth_income", "label": "TQQQ Growth Income", "label_en": "TQQQ Growth Income", "label_zh": "TQQQ 增长收益", "domain": "us_equity", "runtime_enabled": true}, {"profile": "soxl_soxx_trend_income", "label": "SOXL/SOXX Semiconductor Trend Income", "label_en": "SOXL/SOXX Semiconductor Trend Income", "label_zh": "SOXL/SOXX 半导体趋势收益", "domain": "us_equity", "runtime_enabled": true}, {"profile": "nasdaq_sp500_smart_dca", "label": "Nasdaq/S&P 500 Smart DCA", "label_en": "Nasdaq/S&P 500 Smart DCA", "label_zh": "纳斯达克 / 标普智能定投", "domain": "us_equity", "runtime_enabled": true}, {"profile": "global_etf_rotation", "label": "Global ETF Rotation", "label_en": "Global ETF Rotation", "label_zh": "全球 ETF 轮动", "domain": "us_equity", "runtime_enabled": true}, {"profile": "russell_1000_multi_factor_defensive", "label": "Russell 1000 Multi-Factor Defensive", "label_en": "Russell 1000 Multi-Factor Defensive", "label_zh": "罗素 1000 多因子防御", "domain": "us_equity", "runtime_enabled": true}, {"profile": "mega_cap_leader_rotation_top50_balanced", "label": "Mega Cap Leader Rotation Top50 Balanced", "label_en": "Mega Cap Leader Rotation Top50 Balanced", "label_zh": "美股巨头 Top50 均衡轮动", "domain": "us_equity", "runtime_enabled": true}, {"profile": "hk_dividend_gold_defensive_rotation", "label": "HK Dividend-Gold Defensive Rotation", "label_en": "HK Dividend-Gold Defensive Rotation", "label_zh": "港股红利黄金防御轮动", "domain": "hk_equity", "runtime_enabled": true}, {"profile": "hk_global_etf_tactical_rotation", "label": "HK Global ETF Tactical Rotation", "label_en": "HK Global ETF Tactical Rotation", "label_zh": "港股全球 ETF 战术轮动", "domain": "hk_equity", "runtime_enabled": true}, {"profile": "hk_low_vol_dividend_quality_snapshot", "label": "HK Low-Vol Dividend Quality Snapshot", "label_en": "HK Low-Vol Dividend Quality Snapshot", "label_zh": "港股低波红利质量快照", "domain": "hk_equity", "runtime_enabled": true}]; +export const DEFAULT_STRATEGY_PROFILES = [{"profile": "tqqq_growth_income", "label": "TQQQ Growth Income", "label_en": "TQQQ Growth Income", "label_zh": "TQQQ 增长收益", "domain": "us_equity", "runtime_enabled": true}, {"profile": "soxl_soxx_trend_income", "label": "SOXL/SOXX Semiconductor Trend Income", "label_en": "SOXL/SOXX Semiconductor Trend Income", "label_zh": "SOXL/SOXX 半导体趋势收益", "domain": "us_equity", "runtime_enabled": true}, {"profile": "nasdaq_sp500_smart_dca", "label": "Nasdaq/S&P 500 Smart DCA", "label_en": "Nasdaq/S&P 500 Smart DCA", "label_zh": "纳斯达克 / 标普智能定投", "domain": "us_equity", "runtime_enabled": true}, {"profile": "ibit_smart_dca", "label": "IBIT Smart DCA", "label_en": "IBIT Smart DCA", "label_zh": "IBIT 比特币 ETF 智能定投", "domain": "us_equity", "runtime_enabled": true}, {"profile": "global_etf_rotation", "label": "Global ETF Rotation", "label_en": "Global ETF Rotation", "label_zh": "全球 ETF 轮动", "domain": "us_equity", "runtime_enabled": true}, {"profile": "russell_1000_multi_factor_defensive", "label": "Russell 1000 Multi-Factor Defensive", "label_en": "Russell 1000 Multi-Factor Defensive", "label_zh": "罗素 1000 多因子防御", "domain": "us_equity", "runtime_enabled": true}, {"profile": "mega_cap_leader_rotation_top50_balanced", "label": "Mega Cap Leader Rotation Top50 Balanced", "label_en": "Mega Cap Leader Rotation Top50 Balanced", "label_zh": "美股巨头 Top50 均衡轮动", "domain": "us_equity", "runtime_enabled": true}, {"profile": "hk_dividend_gold_defensive_rotation", "label": "HK Dividend-Gold Defensive Rotation", "label_en": "HK Dividend-Gold Defensive Rotation", "label_zh": "港股红利黄金防御轮动", "domain": "hk_equity", "runtime_enabled": true}, {"profile": "hk_global_etf_tactical_rotation", "label": "HK Global ETF Tactical Rotation", "label_en": "HK Global ETF Tactical Rotation", "label_zh": "港股全球 ETF 战术轮动", "domain": "hk_equity", "runtime_enabled": true}, {"profile": "hk_low_vol_dividend_quality_snapshot", "label": "HK Low-Vol Dividend Quality Snapshot", "label_en": "HK Low-Vol Dividend Quality Snapshot", "label_zh": "港股低波红利质量快照", "domain": "hk_equity", "runtime_enabled": true}];