diff --git a/platform-config.json b/platform-config.json index c1fa921..516e7dc 100644 --- a/platform-config.json +++ b/platform-config.json @@ -426,6 +426,14 @@ "dry_run" ], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", + "live_continuity": { + "eligible": true, + "allowed_platforms": [ + "longbridge", + "ibkr", + "schwab" + ] + }, "features": { "income_layer": true, "option_overlay": true, @@ -493,6 +501,12 @@ "dry_run" ], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", + "live_continuity": { + "eligible": true, + "allowed_platforms": [ + "firstrade" + ] + }, "features": { "income_layer": false, "option_overlay": false, @@ -937,6 +951,12 @@ "dry_run" ], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", + "live_continuity": { + "eligible": true, + "allowed_platforms": [ + "binance" + ] + }, "features": { "income_layer": false, "option_overlay": false, diff --git a/python/scripts/build_config.py b/python/scripts/build_config.py index 04a0472..1f76844 100644 --- a/python/scripts/build_config.py +++ b/python/scripts/build_config.py @@ -37,7 +37,9 @@ "can_switch_live", "allowed_execution_modes", "blocked_live_reason", + "live_continuity", } +LIVE_CONTINUITY_POLICY_FIELDS = {"eligible", "allowed_platforms"} SCHEDULER_FIELDS = {"timezone", "main_time", "probe_time", "precheck_time"} MARKET_FIELDS = {"market", "market_calendar", "market_timezone"} FEATURE_SNAPSHOT_FIELDS = {"required", "path", "manifest_path", "max_age_days"} @@ -94,6 +96,10 @@ def validate(config: dict) -> list[str]: errors: list[str] = [] validate_runtime_authority_status(config, errors) validate_notification_references(config, errors) + platforms = config.get("platforms", {}) + if not isinstance(platforms, dict): + errors.append("platforms must be an object") + platforms = {} scheduling = config.get("scheduling") scheduler_profiles = scheduling.get("profiles") if isinstance(scheduling, dict) else None if not isinstance(scheduler_profiles, dict) or not scheduler_profiles: @@ -126,7 +132,7 @@ def validate(config: dict) -> list[str]: errors.append( f"scheduler profile {profile}: {field} must be Mon-Fri cron with day-of-month '*'" ) - for pid, pdata in config.get("platforms", {}).items(): + for pid, pdata in platforms.items(): if "capabilities" not in pdata: errors.append(f"platform {pid}: missing capabilities") if "default_account" not in pdata: @@ -225,6 +231,7 @@ def validate(config: dict) -> list[str]: f"must match market_timezone {market_timezone!r}" ) for sid, sdata in config.get("strategies", {}).items(): + validate_live_continuity_policy(sid, sdata, platforms, errors) if "domain" not in sdata: errors.append(f"strategy {sid}: missing domain") continue @@ -370,6 +377,41 @@ def validate(config: dict) -> list[str]: return errors +def validate_live_continuity_policy( + strategy_id: str, + strategy: object, + platforms: dict, + errors: list[str], +) -> None: + """Validate optional incumbent-continuity metadata independently of P0--P6.""" + + if not isinstance(strategy, dict): + return + continuity = strategy.get("live_continuity") + if continuity is None: + return + if not isinstance(continuity, dict): + errors.append(f"strategy {strategy_id}: live_continuity must be an object") + return + unsupported = sorted(set(continuity) - LIVE_CONTINUITY_POLICY_FIELDS) + if unsupported: + errors.append(f"strategy {strategy_id}: unsupported live_continuity fields {unsupported}") + eligible = continuity.get("eligible") + if not isinstance(eligible, bool): + errors.append(f"strategy {strategy_id}: live_continuity.eligible must be boolean") + allowed_platforms = continuity.get("allowed_platforms") + if not isinstance(allowed_platforms, list) or not all( + isinstance(platform, str) and platform in platforms for platform in allowed_platforms + ): + errors.append( + f"strategy {strategy_id}: live_continuity.allowed_platforms must contain configured platforms" + ) + elif len(set(allowed_platforms)) != len(allowed_platforms): + errors.append(f"strategy {strategy_id}: live_continuity.allowed_platforms must not contain duplicates") + elif eligible is True and not allowed_platforms: + errors.append(f"strategy {strategy_id}: live_continuity.eligible requires allowed_platforms") + + def build_strategy_platform_dry_run_coverage(config: dict | None = None) -> dict[str, object]: """Report declared and default-buildable no-order platform routes. @@ -698,6 +740,7 @@ def _automation_policy_for_strategy(profile: str, strategy: dict) -> dict[str, o runtime_enabled = strategy.get("runtime_enabled") is True blocked_reason = str(strategy.get("blocked_live_reason") or "").strip() features = strategy.get("features") if isinstance(strategy.get("features"), dict) else {} + continuity = strategy.get("live_continuity") if isinstance(strategy.get("live_continuity"), dict) else {} if runtime_enabled and can_switch_live and lifecycle_stage == "runtime_enabled": lane = "live_equivalent_optimization" triggers = ["health_degradation", "parameter_drift", "scheduled_retest", "market_regime_shift"] @@ -737,6 +780,10 @@ def _automation_policy_for_strategy(profile: str, strategy: dict) -> dict[str, o "operating_policy_status": operating_policy_status, "can_switch_live": can_switch_live, "blocked_live_reason": blocked_reason, + "live_continuity": { + "eligible": continuity.get("eligible") is True, + "allowed_platforms": list(continuity.get("allowed_platforms") or []), + }, "triggers": triggers, "evidence_required": evidence_required, "position_control_sensitive": bool(features.get("combo") or features.get("option_overlay")), @@ -1005,11 +1052,16 @@ def _strategy_profile_gate_fields(sdata: dict) -> dict[str, object]: ) if blocked_live_reason is None and not can_switch_live: blocked_live_reason = lifecycle_stage or "not_runtime_enabled" + continuity = sdata.get("live_continuity") if isinstance(sdata.get("live_continuity"), dict) else {} return { "lifecycle_stage": lifecycle_stage, "can_switch_live": can_switch_live, "allowed_execution_modes": _normalize_allowed_execution_modes(sdata.get("allowed_execution_modes")), "blocked_live_reason": "" if blocked_live_reason is None else str(blocked_live_reason).strip(), + "live_continuity": { + "eligible": continuity.get("eligible") is True, + "allowed_platforms": list(continuity.get("allowed_platforms") or []), + }, } diff --git a/python/scripts/build_platform_config.py b/python/scripts/build_platform_config.py index 798611c..4704be2 100644 --- a/python/scripts/build_platform_config.py +++ b/python/scripts/build_platform_config.py @@ -293,11 +293,16 @@ def _strategy_profile_gate_fields(sdata: dict) -> dict[str, object]: ) if blocked_live_reason is None and not can_switch_live: blocked_live_reason = lifecycle_stage or "not_runtime_enabled" + continuity = sdata.get("live_continuity") if isinstance(sdata.get("live_continuity"), dict) else {} return { "lifecycle_stage": lifecycle_stage, "can_switch_live": can_switch_live, "allowed_execution_modes": _normalize_allowed_execution_modes(sdata.get("allowed_execution_modes")), "blocked_live_reason": "" if blocked_live_reason is None else str(blocked_live_reason).strip(), + "live_continuity": { + "eligible": continuity.get("eligible") is True, + "allowed_platforms": list(continuity.get("allowed_platforms") or []), + }, } diff --git a/python/scripts/inject_platform_config.py b/python/scripts/inject_platform_config.py index 8b68b85..ef79c16 100644 --- a/python/scripts/inject_platform_config.py +++ b/python/scripts/inject_platform_config.py @@ -158,6 +158,7 @@ def _strategy_profile_entry(sid: str, sdata: dict) -> dict: blocked_live_reason = sdata.get("blocked_live_reason") if blocked_live_reason is None and not can_switch_live: blocked_live_reason = lifecycle_stage or "not_runtime_enabled" + continuity = sdata.get("live_continuity") if isinstance(sdata.get("live_continuity"), dict) else {} entry = { "profile": sid, "label": sdata.get("label", sid), @@ -169,6 +170,10 @@ def _strategy_profile_entry(sid: str, sdata: dict) -> dict: "can_switch_live": can_switch_live, "allowed_execution_modes": _normalize_allowed_execution_modes(sdata.get("allowed_execution_modes")), "blocked_live_reason": "" if blocked_live_reason is None else str(blocked_live_reason).strip(), + "live_continuity": { + "eligible": continuity.get("eligible") is True, + "allowed_platforms": list(continuity.get("allowed_platforms") or []), + }, "income_layer_enabled": feat.get("income_layer", False), "option_overlay_enabled": feat.get("option_overlay", False), "combo_enabled": feat.get("combo", False), diff --git a/python/scripts/runtime_settings.py b/python/scripts/runtime_settings.py index 794c2f4..685ef2b 100644 --- a/python/scripts/runtime_settings.py +++ b/python/scripts/runtime_settings.py @@ -4,6 +4,7 @@ from __future__ import annotations import argparse +import hashlib import json import os import re @@ -75,6 +76,27 @@ ) STRATEGY_RELEASE_ID_PATTERN = re.compile(r"^[A-Za-z0-9][A-Za-z0-9._-]{2,127}$") SHA256_PATTERN = re.compile(r"^(?:sha256:)?[0-9a-fA-F]{64}$") +LIVE_CONTINUITY_STATES = frozenset( + { + "ACTIVE_LKG", + "ACTIVE_REDUCED", + "RECONCILE_ONLY", + "RISK_REDUCTION_ONLY", + "PAUSED", + "ROLLBACK_LKG", + } +) +LIVE_CONTINUITY_BASELINE_KINDS = frozenset({"legacy_authorized", "release_attested"}) +LIVE_CONTINUITY_FIELDS = frozenset( + { + "state", + "baseline_kind", + "baseline_id", + "baseline_target_sha256", + "captured_at", + } +) +LIVE_CONTINUITY_BASELINE_ID_PATTERN = re.compile(r"^[A-Za-z0-9][A-Za-z0-9._-]{2,127}$") GENERATED_VARIABLES = {"RUNTIME_TARGET_JSON", "STRATEGY_PROFILE"} SECRET_MARKERS = ("PASSWORD", "PRIVATE_KEY", "TOKEN", "API_KEY", "ACCESS_KEY", "CLIENT_SECRET", "SECRET") LEGACY_INCOME_LAYER_VARIABLES = frozenset( @@ -187,6 +209,15 @@ def compact_json(value: Any) -> str: return json.dumps(value, ensure_ascii=False, separators=(",", ":")) +def runtime_target_fingerprint(runtime_target: dict[str, Any]) -> str: + """Fingerprint a frozen target excluding only its current continuity state.""" + + payload = dict(runtime_target) + payload.pop("live_continuity", None) + encoded = json.dumps(payload, ensure_ascii=True, sort_keys=True, separators=(",", ":")) + return hashlib.sha256(encoded.encode("utf-8")).hexdigest() + + def env_string(value: Any) -> str: if isinstance(value, str): return value @@ -453,6 +484,7 @@ def validate_runtime_target(target: dict[str, Any], errors: list[str]) -> None: except (ZoneInfoNotFoundError, ValueError): errors.append(f"runtime_target.market_timezone is invalid: {market_timezone!r}") validate_strategy_release(runtime_target, errors) + validate_live_continuity(runtime_target, errors) def validate_strategy_release(runtime_target: dict[str, Any], errors: list[str]) -> None: @@ -493,6 +525,62 @@ def validate_strategy_release(runtime_target: dict[str, Any], errors: list[str]) ) +def validate_live_continuity(runtime_target: dict[str, Any], errors: list[str]) -> None: + """Validate a frozen incumbent baseline independently of candidate policy.""" + + continuity = runtime_target.get("live_continuity") + if continuity is None: + return + if not isinstance(continuity, dict): + errors.append("runtime_target.live_continuity must be an object when present") + return + unsupported = sorted(set(continuity) - LIVE_CONTINUITY_FIELDS) + if unsupported: + errors.append( + "runtime_target.live_continuity contains unsupported fields: " + ", ".join(unsupported) + ) + for field in sorted(LIVE_CONTINUITY_FIELDS): + value = continuity.get(field) + if not isinstance(value, str) or not value.strip(): + errors.append(f"runtime_target.live_continuity.{field} is required") + + state = str(continuity.get("state") or "").strip().upper() + if state not in LIVE_CONTINUITY_STATES: + errors.append( + "runtime_target.live_continuity.state must be one of " + + ", ".join(sorted(LIVE_CONTINUITY_STATES)) + ) + baseline_kind = str(continuity.get("baseline_kind") or "").strip() + if baseline_kind not in LIVE_CONTINUITY_BASELINE_KINDS: + errors.append( + "runtime_target.live_continuity.baseline_kind must be one of " + + ", ".join(sorted(LIVE_CONTINUITY_BASELINE_KINDS)) + ) + baseline_id = str(continuity.get("baseline_id") or "").strip() + if baseline_id and not LIVE_CONTINUITY_BASELINE_ID_PATTERN.fullmatch(baseline_id): + errors.append("runtime_target.live_continuity.baseline_id has invalid characters") + digest = str(continuity.get("baseline_target_sha256") or "").strip().lower() + digest = digest.removeprefix("sha256:") + if not SHA256_PATTERN.fullmatch(digest): + errors.append("runtime_target.live_continuity.baseline_target_sha256 must be a SHA-256 digest") + elif digest != runtime_target_fingerprint(runtime_target): + errors.append( + "runtime_target.live_continuity.baseline_target_sha256 does not match the runtime target" + ) + captured_at = str(continuity.get("captured_at") or "").strip() + if captured_at: + try: + date.fromisoformat(captured_at) + except ValueError: + errors.append("runtime_target.live_continuity.captured_at must be an ISO-8601 date") + if baseline_kind == "release_attested" and not isinstance(runtime_target.get("strategy_release"), dict): + errors.append("release_attested live_continuity requires runtime_target.strategy_release") + + +def is_live_continuity_target(runtime_target: dict[str, Any]) -> bool: + return isinstance(runtime_target.get("live_continuity"), dict) + + def validate_live_ibkr_us_scheduler( runtime_target: dict[str, Any], scheduler: dict[str, Any], @@ -596,12 +684,26 @@ def validate_runtime_target_strategy_policy(runtime_target: dict[str, Any], erro errors.append( f"platform {platform_id} does not support {execution_mode} control execution" ) + continuity_target = is_live_continuity_target(runtime_target) allowed_modes = normalize_allowed_execution_modes(strategy.get("allowed_execution_modes")) - if allowed_modes and execution_mode not in allowed_modes: + if allowed_modes and execution_mode not in allowed_modes and not continuity_target: errors.append(f"runtime_target.strategy_profile {profile} does not allow {execution_mode} execution") if execution_mode != "live": return + if continuity_target: + continuity_policy = strategy.get("live_continuity") + if not isinstance(continuity_policy, dict) or continuity_policy.get("eligible") is not True: + errors.append( + f"runtime_target.strategy_profile {profile} is not eligible for live continuity" + ) + return + allowed_platforms = continuity_policy.get("allowed_platforms") + if not isinstance(allowed_platforms, list) or platform_id not in allowed_platforms: + errors.append( + f"runtime_target.strategy_profile {profile} live continuity is not allowed on {platform_id}" + ) + return lifecycle_stage = str(strategy.get("lifecycle_stage") or "").strip() if strategy.get("runtime_enabled") is not True: errors.append(f"runtime_target.strategy_profile {profile} is not runtime_enabled") diff --git a/python/scripts/sync_strategy_switch_page_asset.py b/python/scripts/sync_strategy_switch_page_asset.py index fdda51a..1250d42 100644 --- a/python/scripts/sync_strategy_switch_page_asset.py +++ b/python/scripts/sync_strategy_switch_page_asset.py @@ -81,6 +81,15 @@ def _enrich_profiles_from_config(profiles: list[dict]) -> list[dict]: "blocked_live_reason", "" if blocked_live_reason is None else str(blocked_live_reason).strip(), ) + continuity = config_fields.get("live_continuity") + if isinstance(continuity, dict): + item.setdefault( + "live_continuity", + { + "eligible": continuity.get("eligible") is True, + "allowed_platforms": list(continuity.get("allowed_platforms") or []), + }, + ) item.setdefault("runtime_enabled", runtime_enabled) enriched.append(item) return enriched diff --git a/python/tests/test_runtime_settings.py b/python/tests/test_runtime_settings.py index c145eff..3b4d619 100644 --- a/python/tests/test_runtime_settings.py +++ b/python/tests/test_runtime_settings.py @@ -709,6 +709,51 @@ def test_runtime_target_rejects_partial_or_invalid_strategy_release_identity(sel ) self.assertIn("runtime_target.strategy_release.strategy_revision is required", errors) + def test_live_continuity_keeps_an_existing_baseline_separate_from_candidate_gate(self): + _, target = self.load_target("examples/targets/schwab/live.example.json") + runtime_target = target["runtime_target"] + runtime_target.update( + { + "strategy_profile": "soxl_soxx_trend_income", + "deployment_selector": "default", + "account_selector": ["default"], + "account_scope": "default", + "service_name": "charles-schwab-quant-service", + } + ) + runtime_target["live_continuity"] = { + "state": "ACTIVE_LKG", + "baseline_kind": "legacy_authorized", + "baseline_id": "soxl-schwab-lkg-20260830", + "baseline_target_sha256": runtime_settings.runtime_target_fingerprint(runtime_target), + "captured_at": "2026-08-30", + } + + self.assertEqual(runtime_settings.validate_target(target), []) + + def test_live_continuity_rejects_baseline_drift(self): + _, target = self.load_target("examples/targets/schwab/live.example.json") + runtime_target = target["runtime_target"] + runtime_target.update( + { + "strategy_profile": "soxl_soxx_trend_income", + "live_continuity": { + "state": "ACTIVE_LKG", + "baseline_kind": "legacy_authorized", + "baseline_id": "soxl-schwab-lkg-20260830", + "baseline_target_sha256": "a" * 64, + "captured_at": "2026-08-30", + }, + } + ) + + errors = runtime_settings.validate_target(target) + + self.assertIn( + "runtime_target.live_continuity.baseline_target_sha256 does not match the runtime target", + errors, + ) + def test_example_targets_have_matching_plugin_mount(self): for relative_path in ( "examples/targets/schwab/live.example.json", diff --git a/schemas/runtime-target.schema.json b/schemas/runtime-target.schema.json index 8e39aa3..d82ed92 100644 --- a/schemas/runtime-target.schema.json +++ b/schemas/runtime-target.schema.json @@ -199,6 +199,46 @@ "format": "date" } } + }, + "live_continuity": { + "type": "object", + "additionalProperties": false, + "required": [ + "state", + "baseline_kind", + "baseline_id", + "baseline_target_sha256", + "captured_at" + ], + "properties": { + "state": { + "type": "string", + "enum": [ + "ACTIVE_LKG", + "ACTIVE_REDUCED", + "RECONCILE_ONLY", + "RISK_REDUCTION_ONLY", + "PAUSED", + "ROLLBACK_LKG" + ] + }, + "baseline_kind": { + "type": "string", + "enum": ["legacy_authorized", "release_attested"] + }, + "baseline_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{2,127}$" + }, + "baseline_target_sha256": { + "type": "string", + "pattern": "^(sha256:)?[0-9a-fA-F]{64}$" + }, + "captured_at": { + "type": "string", + "format": "date" + } + } } } }, diff --git a/web/strategy-switch-console/config.js b/web/strategy-switch-console/config.js index 4c6b07f..b256a10 100644 --- a/web/strategy-switch-console/config.js +++ b/web/strategy-switch-console/config.js @@ -109,7 +109,7 @@ export const RUNTIME_CATALOG_PROJECTION = { "data_status": "catalog_only", "source": { "path": "platform-config.json", - "content_sha256": "sha256:dbfbd4a029c8ed3761c2b5db8d97ff1668166bd55d94bb03ed5806c357aa0a39", + "content_sha256": "sha256:018753899fdbd7c9ce58628598bc0b3544a6bd18eb5179ec057a1460a7b74cbe", "catalog_as_of": "2026-08-19" }, "policy": { diff --git a/web/strategy-switch-console/index.html b/web/strategy-switch-console/index.html index accb6aa..866eb40 100644 --- a/web/strategy-switch-console/index.html +++ b/web/strategy-switch-console/index.html @@ -14,7 +14,7 @@ window.__QSL_RUNTIME_AUTHORITY_STATUS__ = {"schema_version": "qsl.runtime_authority_status.v1", "scope": "p0_p6_control_plane", "status": "P0_CONTROL_PLANE_NOT_RUNTIME_WIRED", "status_as_of": "2026-08-19", "active_preauthorized_autonomy_policy": false, "execution_metadata_is_runtime_authority": false, "p1_p3_non_live_data_acquisition_authority": "INDEPENDENT_CONTRACT_REQUIRED", "p4_p6_definition": "UNDEFINED"}; window.__DEFAULT_ACCOUNT_OPTIONS__ = {"longbridge": [{"key": "preview", "label": "LongBridge", "target_name": "preview", "supported_domains": ["us_equity", "hk_equity"], "cash_currency": "USD", "default_execution_mode": "live", "service_name": ""}], "ibkr": [{"key": "preview", "label": "IBKR", "target_name": "preview", "supported_domains": ["us_equity", "hk_equity"], "cash_currency": "USD", "default_execution_mode": "live", "service_name": ""}], "schwab": [{"key": "preview", "label": "Schwab", "target_name": "preview", "supported_domains": ["us_equity"], "cash_currency": "USD", "default_execution_mode": "live", "service_name": "charles-schwab-quant-service"}], "firstrade": [{"key": "preview", "label": "Firstrade", "target_name": "preview", "supported_domains": ["us_equity"], "cash_currency": "USD", "default_execution_mode": "live", "service_name": "firstrade-quant-service"}], "qmt": [{"key": "default", "label": "QMT", "target_name": "default", "supported_domains": ["cn_equity"], "cash_currency": "CNY", "service_name": "qmt-quant-service", "default_execution_mode": "dry_run"}], "binance": [{"key": "default", "label": "Binance", "target_name": "default", "supported_domains": ["crypto"], "cash_currency": "USD", "service_name": "binance-platform", "default_execution_mode": "live"}]}; window.__DOMAIN_LABELS__ = {"us_equity": {"zh": "美股", "en": "US Equity"}, "hk_equity": {"zh": "港股", "en": "HK Equity"}, "cn_equity": {"zh": "A股", "en": "CN A-share"}, "crypto": {"zh": "加密", "en": "Crypto"}}; -window.__DEFAULT_STRATEGY_PROFILES__ = [{"profile": "tqqq_growth_income", "label": "纳斯达克增长收益", "label_en": "NASDAQ Growth Income", "label_zh": "纳斯达克增长收益", "domain": "us_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", "income_layer_enabled": true, "option_overlay_enabled": true, "combo_enabled": false}, {"profile": "soxl_soxx_trend_income", "label": "半导体趋势收益", "label_en": "Semiconductor Trend Income", "label_zh": "半导体趋势收益", "domain": "us_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", "income_layer_enabled": true, "option_overlay_enabled": true, "combo_enabled": false}, {"profile": "nasdaq_sp500_smart_dca", "label": "纳指标普定投", "label_en": "NASDAQ/S&P 500 DCA", "label_zh": "纳指标普定投", "domain": "us_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "ibit_smart_dca", "label": "IBIT比特币定投", "label_en": "IBIT Bitcoin DCA", "label_zh": "IBIT比特币定投", "domain": "us_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "global_etf_rotation", "label": "全球ETF轮动", "label_en": "Global ETF Rotation", "label_zh": "全球ETF轮动", "domain": "us_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "income_layer_enabled": true, "option_overlay_enabled": true, "combo_enabled": false}, {"profile": "russell_top50_leader_rotation", "label": "罗素Top50领涨", "label_en": "Russell Top50 Leaders", "label_zh": "罗素Top50领涨", "domain": "us_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", "income_layer_enabled": true, "option_overlay_enabled": true, "combo_enabled": false}, {"profile": "tecl_xlk_trend_income", "label": "TECL/XLK趋势收益", "label_en": "TECL/XLK Trend Income", "label_zh": "TECL/XLK趋势收益", "domain": "us_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "failed_promotion_vs_live_profiles", "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "us_equity_combo", "label": "美股核心组合", "label_en": "US Core Combo", "label_zh": "美股核心组合", "domain": "us_equity", "runtime_enabled": false, "lifecycle_stage": "shadow_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "shadow_candidate_requires_evidence_package", "income_layer_enabled": true, "option_overlay_enabled": true, "combo_enabled": true, "combo_mode": "dynamic"}, {"profile": "us_equity_combo_core", "label": "美股核心组合影子", "label_en": "US Core Combo Shadow", "label_zh": "美股核心组合影子", "domain": "us_equity", "runtime_enabled": false, "lifecycle_stage": "shadow_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "shadow_candidate_requires_evidence_package", "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": true, "combo_mode": "dynamic"}, {"profile": "us_equity_combo_leveraged", "label": "美股加速组合", "label_en": "US Alpha Combo", "label_zh": "美股加速组合", "domain": "us_equity", "runtime_enabled": false, "lifecycle_stage": "shadow_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "shadow_candidate_requires_evidence_package", "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": true, "combo_mode": "dynamic"}, {"profile": "hk_global_etf_tactical_rotation", "label": "港股ETF战术轮动", "label_en": "HK ETF Tactical Rotation", "label_zh": "港股ETF战术轮动", "domain": "hk_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "hk_low_vol_dividend_quality_snapshot", "label": "港股红利质量", "label_en": "HK Dividend Quality", "label_zh": "港股红利质量", "domain": "hk_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "hk_equity_combo", "label": "港股恒生组合", "label_en": "HK Core Combo", "label_zh": "港股恒生组合", "domain": "hk_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": true, "combo_mode": "dynamic"}, {"profile": "cn_industry_etf_rotation", "label": "A股行业ETF轮动", "label_en": "CN Industry ETF Rotation", "label_zh": "A股行业ETF轮动", "domain": "cn_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "cn_industry_etf_rotation_aggressive", "label": "A股ETF轮动", "label_en": "CN ETF Rotation", "label_zh": "A股ETF轮动", "domain": "cn_equity", "runtime_enabled": false, "lifecycle_stage": "live_candidate", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "live_candidate_requires_evidence_package", "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "cn_index_etf_tactical_rotation", "label": "A股宽基ETF战术轮动", "label_en": "CN Index ETF Tactical Rotation", "label_zh": "A股宽基ETF战术轮动", "domain": "cn_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "cn_chinext_tactical_rotation", "label": "创业板战术轮动", "label_en": "CN ChiNext Tactical Rotation", "label_zh": "创业板战术轮动", "domain": "cn_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "cn_chinext_growth_momentum_quality", "label": "创业板成长动量质量", "label_en": "CN ChiNext Growth Momentum Quality", "label_zh": "创业板成长动量质量", "domain": "cn_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "cn_dividend_quality_snapshot", "label": "A股红利质量", "label_en": "CN Dividend Quality", "label_zh": "A股红利质量", "domain": "cn_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "cn_chinext_growth_momentum_quality_snapshot", "label": "创业板成长质量快照", "label_en": "CN ChiNext Growth Quality Snapshot", "label_zh": "创业板成长质量快照", "domain": "cn_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "cn_star_growth_momentum_quality", "label": "科创板成长动量质量", "label_en": "CN STAR Growth Momentum Quality", "label_zh": "科创板成长动量质量", "domain": "cn_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "cn_equity_combo", "label": "A股进取组合", "label_en": "CN Alpha Combo", "label_zh": "A股进取组合", "domain": "cn_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": true, "combo_mode": "dynamic"}, {"profile": "crypto_live_pool_rotation", "label": "加密实时池轮动", "label_en": "Crypto Live Pool Rotation", "label_zh": "加密实时池轮动", "domain": "crypto", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "crypto_btc_dca", "label": "BTC定投", "label_en": "BTC DCA", "label_zh": "BTC定投", "domain": "crypto", "runtime_enabled": false, "lifecycle_stage": "shadow_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "shadow_candidate_requires_evidence_package", "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "crypto_trend_rotation", "label": "山寨趋势轮动", "label_en": "Altcoin Trend", "label_zh": "山寨趋势轮动", "domain": "crypto", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "crypto_equity_combo", "label": "加密动量组合", "label_en": "Crypto Core Combo", "label_zh": "加密动量组合", "domain": "crypto", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": true, "combo_mode": "dynamic"}]; +window.__DEFAULT_STRATEGY_PROFILES__ = [{"profile": "tqqq_growth_income", "label": "纳斯达克增长收益", "label_en": "NASDAQ Growth Income", "label_zh": "纳斯达克增长收益", "domain": "us_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", "live_continuity": {"eligible": false, "allowed_platforms": []}, "income_layer_enabled": true, "option_overlay_enabled": true, "combo_enabled": false}, {"profile": "soxl_soxx_trend_income", "label": "半导体趋势收益", "label_en": "Semiconductor Trend Income", "label_zh": "半导体趋势收益", "domain": "us_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", "live_continuity": {"eligible": true, "allowed_platforms": ["longbridge", "ibkr", "schwab"]}, "income_layer_enabled": true, "option_overlay_enabled": true, "combo_enabled": false}, {"profile": "nasdaq_sp500_smart_dca", "label": "纳指标普定投", "label_en": "NASDAQ/S&P 500 DCA", "label_zh": "纳指标普定投", "domain": "us_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", "live_continuity": {"eligible": false, "allowed_platforms": []}, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "ibit_smart_dca", "label": "IBIT比特币定投", "label_en": "IBIT Bitcoin DCA", "label_zh": "IBIT比特币定投", "domain": "us_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", "live_continuity": {"eligible": true, "allowed_platforms": ["firstrade"]}, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "global_etf_rotation", "label": "全球ETF轮动", "label_en": "Global ETF Rotation", "label_zh": "全球ETF轮动", "domain": "us_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}, "income_layer_enabled": true, "option_overlay_enabled": true, "combo_enabled": false}, {"profile": "russell_top50_leader_rotation", "label": "罗素Top50领涨", "label_en": "Russell Top50 Leaders", "label_zh": "罗素Top50领涨", "domain": "us_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", "live_continuity": {"eligible": false, "allowed_platforms": []}, "income_layer_enabled": true, "option_overlay_enabled": true, "combo_enabled": false}, {"profile": "tecl_xlk_trend_income", "label": "TECL/XLK趋势收益", "label_en": "TECL/XLK Trend Income", "label_zh": "TECL/XLK趋势收益", "domain": "us_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "failed_promotion_vs_live_profiles", "live_continuity": {"eligible": false, "allowed_platforms": []}, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "us_equity_combo", "label": "美股核心组合", "label_en": "US Core Combo", "label_zh": "美股核心组合", "domain": "us_equity", "runtime_enabled": false, "lifecycle_stage": "shadow_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "shadow_candidate_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}, "income_layer_enabled": true, "option_overlay_enabled": true, "combo_enabled": true, "combo_mode": "dynamic"}, {"profile": "us_equity_combo_core", "label": "美股核心组合影子", "label_en": "US Core Combo Shadow", "label_zh": "美股核心组合影子", "domain": "us_equity", "runtime_enabled": false, "lifecycle_stage": "shadow_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "shadow_candidate_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": true, "combo_mode": "dynamic"}, {"profile": "us_equity_combo_leveraged", "label": "美股加速组合", "label_en": "US Alpha Combo", "label_zh": "美股加速组合", "domain": "us_equity", "runtime_enabled": false, "lifecycle_stage": "shadow_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "shadow_candidate_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": true, "combo_mode": "dynamic"}, {"profile": "hk_global_etf_tactical_rotation", "label": "港股ETF战术轮动", "label_en": "HK ETF Tactical Rotation", "label_zh": "港股ETF战术轮动", "domain": "hk_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "hk_low_vol_dividend_quality_snapshot", "label": "港股红利质量", "label_en": "HK Dividend Quality", "label_zh": "港股红利质量", "domain": "hk_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", "live_continuity": {"eligible": false, "allowed_platforms": []}, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "hk_equity_combo", "label": "港股恒生组合", "label_en": "HK Core Combo", "label_zh": "港股恒生组合", "domain": "hk_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": true, "combo_mode": "dynamic"}, {"profile": "cn_industry_etf_rotation", "label": "A股行业ETF轮动", "label_en": "CN Industry ETF Rotation", "label_zh": "A股行业ETF轮动", "domain": "cn_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", "live_continuity": {"eligible": false, "allowed_platforms": []}, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "cn_industry_etf_rotation_aggressive", "label": "A股ETF轮动", "label_en": "CN ETF Rotation", "label_zh": "A股ETF轮动", "domain": "cn_equity", "runtime_enabled": false, "lifecycle_stage": "live_candidate", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "live_candidate_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "cn_index_etf_tactical_rotation", "label": "A股宽基ETF战术轮动", "label_en": "CN Index ETF Tactical Rotation", "label_zh": "A股宽基ETF战术轮动", "domain": "cn_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "cn_chinext_tactical_rotation", "label": "创业板战术轮动", "label_en": "CN ChiNext Tactical Rotation", "label_zh": "创业板战术轮动", "domain": "cn_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "cn_chinext_growth_momentum_quality", "label": "创业板成长动量质量", "label_en": "CN ChiNext Growth Momentum Quality", "label_zh": "创业板成长动量质量", "domain": "cn_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "cn_dividend_quality_snapshot", "label": "A股红利质量", "label_en": "CN Dividend Quality", "label_zh": "A股红利质量", "domain": "cn_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "cn_chinext_growth_momentum_quality_snapshot", "label": "创业板成长质量快照", "label_en": "CN ChiNext Growth Quality Snapshot", "label_zh": "创业板成长质量快照", "domain": "cn_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "cn_star_growth_momentum_quality", "label": "科创板成长动量质量", "label_en": "CN STAR Growth Momentum Quality", "label_zh": "科创板成长动量质量", "domain": "cn_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "cn_equity_combo", "label": "A股进取组合", "label_en": "CN Alpha Combo", "label_zh": "A股进取组合", "domain": "cn_equity", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": true, "combo_mode": "dynamic"}, {"profile": "crypto_live_pool_rotation", "label": "加密实时池轮动", "label_en": "Crypto Live Pool Rotation", "label_zh": "加密实时池轮动", "domain": "crypto", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", "live_continuity": {"eligible": true, "allowed_platforms": ["binance"]}, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "crypto_btc_dca", "label": "BTC定投", "label_en": "BTC DCA", "label_zh": "BTC定投", "domain": "crypto", "runtime_enabled": false, "lifecycle_stage": "shadow_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "shadow_candidate_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "crypto_trend_rotation", "label": "山寨趋势轮动", "label_en": "Altcoin Trend", "label_zh": "山寨趋势轮动", "domain": "crypto", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false}, {"profile": "crypto_equity_combo", "label": "加密动量组合", "label_en": "Crypto Core Combo", "label_zh": "加密动量组合", "domain": "crypto", "runtime_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": true, "combo_mode": "dynamic"}]; window.__DCA_PROFILE_DEFAULTS__ = {"nasdaq_sp500_smart_dca": {"defaultMode": "fixed", "defaultBaseInvestmentUsd": "1000"}, "ibit_smart_dca": {"defaultMode": "fixed", "defaultBaseInvestmentUsd": "1000"}}; window.__INCOME_LAYER_DEFAULTS__ = {"tqqq_growth_income": {"startUsd": 250000, "maxRatio": "0.55", "allocations": {"SCHD": 0.3, "DGRO": 0.2, "SGOV": 0.4, "SPYI": 0.08, "QQQI": 0.02}}, "soxl_soxx_trend_income": {"startUsd": 150000, "maxRatio": "0.95", "allocations": {"SCHD": 0.15, "DGRO": 0.1, "SGOV": 0.7, "SPYI": 0.04, "QQQI": 0.01}}, "global_etf_rotation": {"startUsd": 500000, "maxRatio": "0.15", "allocations": {"SCHD": 0.4, "DGRO": 0.25, "SGOV": 0.3, "SPYI": 0.05}}, "russell_top50_leader_rotation": {"startUsd": 300000, "maxRatio": "0.25", "allocations": {"SCHD": 0.45, "DGRO": 0.3, "SGOV": 0.25}}, "us_equity_combo": {"startUsd": 300000, "maxRatio": "0.25", "allocations": {"SCHD": 0.25, "DGRO": 0.25, "SGOV": 0.2, "SPYI": 0.15, "QQQI": 0.15}}}; window.__OPTION_OVERLAY_DEFAULTS__ = {"tqqq_growth_income": {"liveGate": "promotion_required", "liveStatus": "research_only", "families": [{"family": "growth", "recipe": "tqqq_leaps_growth_v1", "startUsd": "250000", "ratio": "0.03", "ratioKind": "budget"}]}, "soxl_soxx_trend_income": {"liveGate": "promotion_required", "liveStatus": "research_only", "families": [{"family": "income", "recipe": "soxx_put_credit_spread_income_v1", "startUsd": "150000", "ratio": "0.01", "ratioKind": "risk"}]}, "global_etf_rotation": {"liveGate": "promotion_required", "liveStatus": "research_only", "families": [{"family": "growth", "recipe": "spy_leaps_growth_v1", "startUsd": "500000", "ratio": "0.015", "ratioKind": "budget"}]}, "russell_top50_leader_rotation": {"liveGate": "promotion_required", "liveStatus": "research_only", "families": [{"family": "growth", "recipe": "spy_leaps_growth_v1", "startUsd": "300000", "ratio": "0.015", "ratioKind": "budget"}]}, "us_equity_combo": {"liveGate": "promotion_required", "liveStatus": "research_only", "families": [{"family": "growth", "recipe": "spy_leaps_growth_v1", "startUsd": "300000", "ratio": "0.015", "ratioKind": "budget"}]}}; diff --git a/web/strategy-switch-console/page_asset.js b/web/strategy-switch-console/page_asset.js index 623212b..734a6e4 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 QuantStrategyLab 控制台\n \n \n\n\n\n\n\n
\n
\n

QuantStrategyLab

\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
候选总数0
\n
本次延期0
\n
已停车0
\n
等待我决定0
\n
\n

需要跟进

\n
\n
\n 按需查看 M0 研究观察\n
登录后读取已验证 M0 研究台账;仅研究、无订单。
\n
\n
\n
\n 按需查看 M1 Shadow 建议\n
登录后读取已验证的 Shadow 建议;它始终不下单。
\n
\n
\n
\n 按需查看策略 × 平台证据覆盖\n
登录后读取已验证执行证据;页面不会推断 paper 或 live 状态。
\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 QuantStrategyLab 控制台\n \n \n\n\n\n\n\n
\n
\n

QuantStrategyLab

\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
候选总数0
\n
本次延期0
\n
已停车0
\n
等待我决定0
\n
\n

需要跟进

\n
\n
\n 按需查看 M0 研究观察\n
登录后读取已验证 M0 研究台账;仅研究、无订单。
\n
\n
\n
\n 按需查看 M1 Shadow 建议\n
登录后读取已验证的 Shadow 建议;它始终不下单。
\n
\n
\n
\n 按需查看策略 × 平台证据覆盖\n
登录后读取已验证执行证据;页面不会推断 paper 或 live 状态。
\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/runtime-catalog-projection.json b/web/strategy-switch-console/runtime-catalog-projection.json index eb556f8..53ad3ad 100644 --- a/web/strategy-switch-console/runtime-catalog-projection.json +++ b/web/strategy-switch-console/runtime-catalog-projection.json @@ -22,7 +22,7 @@ "schema_version": "qsl.runtime_catalog_projection.v1", "source": { "catalog_as_of": "2026-08-19", - "content_sha256": "sha256:dbfbd4a029c8ed3761c2b5db8d97ff1668166bd55d94bb03ed5806c357aa0a39", + "content_sha256": "sha256:018753899fdbd7c9ce58628598bc0b3544a6bd18eb5179ec057a1460a7b74cbe", "path": "platform-config.json" }, "strategies": [ diff --git a/web/strategy-switch-console/strategy-profiles.example.json b/web/strategy-switch-console/strategy-profiles.example.json index 83edc1a..ae151f6 100644 --- a/web/strategy-switch-console/strategy-profiles.example.json +++ b/web/strategy-switch-console/strategy-profiles.example.json @@ -1 +1 @@ -[{"profile":"tqqq_growth_income","label":"纳斯达克增长收益","label_en":"NASDAQ Growth Income","label_zh":"纳斯达克增长收益","domain":"us_equity","runtime_enabled":false,"income_layer_enabled":true,"option_overlay_enabled":true,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["paper","dry_run"],"blocked_live_reason":"missing_current_promotion_evidence_and_preauthorized_autonomy_policy","income_layer_start_usd":"250000","income_layer_max_ratio":"0.55","income_layer_allocations":{"SCHD":0.3,"DGRO":0.2,"SGOV":0.4,"SPYI":0.08,"QQQI":0.02},"option_overlay_live_gate":"promotion_required","option_overlay_live_status":"research_only","option_growth_overlay_enabled":true,"option_growth_overlay_recipe":"tqqq_leaps_growth_v1","option_growth_overlay_start_usd":"250000","option_growth_overlay_nav_budget_ratio":"0.03"},{"profile":"soxl_soxx_trend_income","label":"半导体趋势收益","label_en":"Semiconductor Trend Income","label_zh":"半导体趋势收益","domain":"us_equity","runtime_enabled":false,"income_layer_enabled":true,"option_overlay_enabled":true,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["paper","dry_run"],"blocked_live_reason":"missing_current_promotion_evidence_and_preauthorized_autonomy_policy","income_layer_start_usd":"150000","income_layer_max_ratio":"0.95","income_layer_allocations":{"SCHD":0.15,"DGRO":0.1,"SGOV":0.7,"SPYI":0.04,"QQQI":0.01},"option_overlay_live_gate":"promotion_required","option_overlay_live_status":"research_only","option_income_overlay_enabled":true,"option_income_overlay_recipe":"soxx_put_credit_spread_income_v1","option_income_overlay_start_usd":"150000","option_income_overlay_nav_risk_ratio":"0.01"},{"profile":"nasdaq_sp500_smart_dca","label":"纳指标普定投","label_en":"NASDAQ/S&P 500 DCA","label_zh":"纳指标普定投","domain":"us_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["paper","dry_run"],"blocked_live_reason":"missing_current_promotion_evidence_and_preauthorized_autonomy_policy","dca_enabled":true,"dca_default_mode":"fixed","dca_default_base_investment_usd":"1000"},{"profile":"ibit_smart_dca","label":"IBIT比特币定投","label_en":"IBIT Bitcoin DCA","label_zh":"IBIT比特币定投","domain":"us_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["paper","dry_run"],"blocked_live_reason":"missing_current_promotion_evidence_and_preauthorized_autonomy_policy","dca_enabled":true,"dca_default_mode":"fixed","dca_default_base_investment_usd":"1000"},{"profile":"global_etf_rotation","label":"全球ETF轮动","label_en":"Global ETF Rotation","label_zh":"全球ETF轮动","domain":"us_equity","runtime_enabled":false,"income_layer_enabled":true,"option_overlay_enabled":true,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["dry_run"],"blocked_live_reason":"research_backtest_only_requires_evidence_package","income_layer_start_usd":"500000","income_layer_max_ratio":"0.15","income_layer_allocations":{"SCHD":0.4,"DGRO":0.25,"SGOV":0.3,"SPYI":0.05},"option_overlay_live_gate":"promotion_required","option_overlay_live_status":"research_only","option_growth_overlay_enabled":true,"option_growth_overlay_recipe":"spy_leaps_growth_v1","option_growth_overlay_start_usd":"500000","option_growth_overlay_nav_budget_ratio":"0.015"},{"profile":"russell_top50_leader_rotation","label":"罗素Top50领涨","label_en":"Russell Top50 Leaders","label_zh":"罗素Top50领涨","domain":"us_equity","runtime_enabled":false,"income_layer_enabled":true,"option_overlay_enabled":true,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["paper","dry_run"],"blocked_live_reason":"missing_current_promotion_evidence_and_preauthorized_autonomy_policy","income_layer_start_usd":"300000","income_layer_max_ratio":"0.25","income_layer_allocations":{"SCHD":0.45,"DGRO":0.3,"SGOV":0.25},"option_overlay_live_gate":"promotion_required","option_overlay_live_status":"research_only","option_growth_overlay_enabled":true,"option_growth_overlay_recipe":"spy_leaps_growth_v1","option_growth_overlay_start_usd":"300000","option_growth_overlay_nav_budget_ratio":"0.015"},{"profile":"tecl_xlk_trend_income","label":"TECL/XLK趋势收益","label_en":"TECL/XLK Trend Income","label_zh":"TECL/XLK趋势收益","domain":"us_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["dry_run"],"blocked_live_reason":"failed_promotion_vs_live_profiles"},{"profile":"us_equity_combo","label":"美股核心组合","label_en":"US Core Combo","label_zh":"美股核心组合","domain":"us_equity","runtime_enabled":false,"income_layer_enabled":true,"option_overlay_enabled":true,"combo_enabled":true,"lifecycle_stage":"shadow_active","can_switch_live":false,"allowed_execution_modes":["paper","dry_run"],"blocked_live_reason":"shadow_candidate_requires_evidence_package","combo_mode":"dynamic","income_layer_start_usd":"300000","income_layer_max_ratio":"0.25","income_layer_allocations":{"SCHD":0.25,"DGRO":0.25,"SGOV":0.2,"SPYI":0.15,"QQQI":0.15},"option_overlay_live_gate":"promotion_required","option_overlay_live_status":"research_only","option_growth_overlay_enabled":true,"option_growth_overlay_recipe":"spy_leaps_growth_v1","option_growth_overlay_start_usd":"300000","option_growth_overlay_nav_budget_ratio":"0.015"},{"profile":"us_equity_combo_core","label":"美股核心组合影子","label_en":"US Core Combo Shadow","label_zh":"美股核心组合影子","domain":"us_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":true,"lifecycle_stage":"shadow_active","can_switch_live":false,"allowed_execution_modes":["paper","dry_run"],"blocked_live_reason":"shadow_candidate_requires_evidence_package","combo_mode":"dynamic"},{"profile":"us_equity_combo_leveraged","label":"美股加速组合","label_en":"US Alpha Combo","label_zh":"美股加速组合","domain":"us_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":true,"lifecycle_stage":"shadow_active","can_switch_live":false,"allowed_execution_modes":["paper","dry_run"],"blocked_live_reason":"shadow_candidate_requires_evidence_package","combo_mode":"dynamic"},{"profile":"hk_global_etf_tactical_rotation","label":"港股ETF战术轮动","label_en":"HK ETF Tactical Rotation","label_zh":"港股ETF战术轮动","domain":"hk_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["dry_run"],"blocked_live_reason":"research_backtest_only_requires_evidence_package"},{"profile":"hk_low_vol_dividend_quality_snapshot","label":"港股红利质量","label_en":"HK Dividend Quality","label_zh":"港股红利质量","domain":"hk_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["paper","dry_run"],"blocked_live_reason":"missing_current_promotion_evidence_and_preauthorized_autonomy_policy"},{"profile":"hk_equity_combo","label":"港股恒生组合","label_en":"HK Core Combo","label_zh":"港股恒生组合","domain":"hk_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":true,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["dry_run"],"blocked_live_reason":"research_backtest_only_requires_evidence_package","combo_mode":"dynamic"},{"profile":"cn_industry_etf_rotation","label":"A股行业ETF轮动","label_en":"CN Industry ETF Rotation","label_zh":"A股行业ETF轮动","domain":"cn_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["paper","dry_run"],"blocked_live_reason":"missing_current_promotion_evidence_and_preauthorized_autonomy_policy"},{"profile":"cn_industry_etf_rotation_aggressive","label":"A股ETF轮动","label_en":"CN ETF Rotation","label_zh":"A股ETF轮动","domain":"cn_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"live_candidate","can_switch_live":false,"allowed_execution_modes":["paper","dry_run"],"blocked_live_reason":"live_candidate_requires_evidence_package"},{"profile":"cn_index_etf_tactical_rotation","label":"A股宽基ETF战术轮动","label_en":"CN Index ETF Tactical Rotation","label_zh":"A股宽基ETF战术轮动","domain":"cn_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["dry_run"],"blocked_live_reason":"research_backtest_only_requires_evidence_package"},{"profile":"cn_chinext_tactical_rotation","label":"创业板战术轮动","label_en":"CN ChiNext Tactical Rotation","label_zh":"创业板战术轮动","domain":"cn_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["dry_run"],"blocked_live_reason":"research_backtest_only_requires_evidence_package"},{"profile":"cn_chinext_growth_momentum_quality","label":"创业板成长动量质量","label_en":"CN ChiNext Growth Momentum Quality","label_zh":"创业板成长动量质量","domain":"cn_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["dry_run"],"blocked_live_reason":"research_backtest_only_requires_evidence_package"},{"profile":"cn_dividend_quality_snapshot","label":"A股红利质量","label_en":"CN Dividend Quality","label_zh":"A股红利质量","domain":"cn_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["dry_run"],"blocked_live_reason":"research_backtest_only_requires_evidence_package"},{"profile":"cn_chinext_growth_momentum_quality_snapshot","label":"创业板成长质量快照","label_en":"CN ChiNext Growth Quality Snapshot","label_zh":"创业板成长质量快照","domain":"cn_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["dry_run"],"blocked_live_reason":"research_backtest_only_requires_evidence_package"},{"profile":"cn_star_growth_momentum_quality","label":"科创板成长动量质量","label_en":"CN STAR Growth Momentum Quality","label_zh":"科创板成长动量质量","domain":"cn_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["dry_run"],"blocked_live_reason":"research_backtest_only_requires_evidence_package"},{"profile":"cn_equity_combo","label":"A股进取组合","label_en":"CN Alpha Combo","label_zh":"A股进取组合","domain":"cn_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":true,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["dry_run"],"blocked_live_reason":"research_backtest_only_requires_evidence_package","combo_mode":"dynamic"},{"profile":"crypto_live_pool_rotation","label":"加密实时池轮动","label_en":"Crypto Live Pool Rotation","label_zh":"加密实时池轮动","domain":"crypto","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["paper","dry_run"],"blocked_live_reason":"missing_current_promotion_evidence_and_preauthorized_autonomy_policy"},{"profile":"crypto_btc_dca","label":"BTC定投","label_en":"BTC DCA","label_zh":"BTC定投","domain":"crypto","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"shadow_active","can_switch_live":false,"allowed_execution_modes":["paper","dry_run"],"blocked_live_reason":"shadow_candidate_requires_evidence_package"},{"profile":"crypto_trend_rotation","label":"山寨趋势轮动","label_en":"Altcoin Trend","label_zh":"山寨趋势轮动","domain":"crypto","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["dry_run"],"blocked_live_reason":"research_backtest_only_requires_evidence_package"},{"profile":"crypto_equity_combo","label":"加密动量组合","label_en":"Crypto Core Combo","label_zh":"加密动量组合","domain":"crypto","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":true,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["dry_run"],"blocked_live_reason":"research_backtest_only_requires_evidence_package","combo_mode":"dynamic"}] +[{"profile":"tqqq_growth_income","label":"纳斯达克增长收益","label_en":"NASDAQ Growth Income","label_zh":"纳斯达克增长收益","domain":"us_equity","runtime_enabled":false,"income_layer_enabled":true,"option_overlay_enabled":true,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["paper","dry_run"],"blocked_live_reason":"missing_current_promotion_evidence_and_preauthorized_autonomy_policy","live_continuity":{"eligible":false,"allowed_platforms":[]},"income_layer_start_usd":"250000","income_layer_max_ratio":"0.55","income_layer_allocations":{"SCHD":0.3,"DGRO":0.2,"SGOV":0.4,"SPYI":0.08,"QQQI":0.02},"option_overlay_live_gate":"promotion_required","option_overlay_live_status":"research_only","option_growth_overlay_enabled":true,"option_growth_overlay_recipe":"tqqq_leaps_growth_v1","option_growth_overlay_start_usd":"250000","option_growth_overlay_nav_budget_ratio":"0.03"},{"profile":"soxl_soxx_trend_income","label":"半导体趋势收益","label_en":"Semiconductor Trend Income","label_zh":"半导体趋势收益","domain":"us_equity","runtime_enabled":false,"income_layer_enabled":true,"option_overlay_enabled":true,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["paper","dry_run"],"blocked_live_reason":"missing_current_promotion_evidence_and_preauthorized_autonomy_policy","live_continuity":{"eligible":true,"allowed_platforms":["longbridge","ibkr","schwab"]},"income_layer_start_usd":"150000","income_layer_max_ratio":"0.95","income_layer_allocations":{"SCHD":0.15,"DGRO":0.1,"SGOV":0.7,"SPYI":0.04,"QQQI":0.01},"option_overlay_live_gate":"promotion_required","option_overlay_live_status":"research_only","option_income_overlay_enabled":true,"option_income_overlay_recipe":"soxx_put_credit_spread_income_v1","option_income_overlay_start_usd":"150000","option_income_overlay_nav_risk_ratio":"0.01"},{"profile":"nasdaq_sp500_smart_dca","label":"纳指标普定投","label_en":"NASDAQ/S&P 500 DCA","label_zh":"纳指标普定投","domain":"us_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["paper","dry_run"],"blocked_live_reason":"missing_current_promotion_evidence_and_preauthorized_autonomy_policy","live_continuity":{"eligible":false,"allowed_platforms":[]},"dca_enabled":true,"dca_default_mode":"fixed","dca_default_base_investment_usd":"1000"},{"profile":"ibit_smart_dca","label":"IBIT比特币定投","label_en":"IBIT Bitcoin DCA","label_zh":"IBIT比特币定投","domain":"us_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["paper","dry_run"],"blocked_live_reason":"missing_current_promotion_evidence_and_preauthorized_autonomy_policy","live_continuity":{"eligible":true,"allowed_platforms":["firstrade"]},"dca_enabled":true,"dca_default_mode":"fixed","dca_default_base_investment_usd":"1000"},{"profile":"global_etf_rotation","label":"全球ETF轮动","label_en":"Global ETF Rotation","label_zh":"全球ETF轮动","domain":"us_equity","runtime_enabled":false,"income_layer_enabled":true,"option_overlay_enabled":true,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["dry_run"],"blocked_live_reason":"research_backtest_only_requires_evidence_package","live_continuity":{"eligible":false,"allowed_platforms":[]},"income_layer_start_usd":"500000","income_layer_max_ratio":"0.15","income_layer_allocations":{"SCHD":0.4,"DGRO":0.25,"SGOV":0.3,"SPYI":0.05},"option_overlay_live_gate":"promotion_required","option_overlay_live_status":"research_only","option_growth_overlay_enabled":true,"option_growth_overlay_recipe":"spy_leaps_growth_v1","option_growth_overlay_start_usd":"500000","option_growth_overlay_nav_budget_ratio":"0.015"},{"profile":"russell_top50_leader_rotation","label":"罗素Top50领涨","label_en":"Russell Top50 Leaders","label_zh":"罗素Top50领涨","domain":"us_equity","runtime_enabled":false,"income_layer_enabled":true,"option_overlay_enabled":true,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["paper","dry_run"],"blocked_live_reason":"missing_current_promotion_evidence_and_preauthorized_autonomy_policy","live_continuity":{"eligible":false,"allowed_platforms":[]},"income_layer_start_usd":"300000","income_layer_max_ratio":"0.25","income_layer_allocations":{"SCHD":0.45,"DGRO":0.3,"SGOV":0.25},"option_overlay_live_gate":"promotion_required","option_overlay_live_status":"research_only","option_growth_overlay_enabled":true,"option_growth_overlay_recipe":"spy_leaps_growth_v1","option_growth_overlay_start_usd":"300000","option_growth_overlay_nav_budget_ratio":"0.015"},{"profile":"tecl_xlk_trend_income","label":"TECL/XLK趋势收益","label_en":"TECL/XLK Trend Income","label_zh":"TECL/XLK趋势收益","domain":"us_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["dry_run"],"blocked_live_reason":"failed_promotion_vs_live_profiles","live_continuity":{"eligible":false,"allowed_platforms":[]}},{"profile":"us_equity_combo","label":"美股核心组合","label_en":"US Core Combo","label_zh":"美股核心组合","domain":"us_equity","runtime_enabled":false,"income_layer_enabled":true,"option_overlay_enabled":true,"combo_enabled":true,"lifecycle_stage":"shadow_active","can_switch_live":false,"allowed_execution_modes":["paper","dry_run"],"blocked_live_reason":"shadow_candidate_requires_evidence_package","live_continuity":{"eligible":false,"allowed_platforms":[]},"combo_mode":"dynamic","income_layer_start_usd":"300000","income_layer_max_ratio":"0.25","income_layer_allocations":{"SCHD":0.25,"DGRO":0.25,"SGOV":0.2,"SPYI":0.15,"QQQI":0.15},"option_overlay_live_gate":"promotion_required","option_overlay_live_status":"research_only","option_growth_overlay_enabled":true,"option_growth_overlay_recipe":"spy_leaps_growth_v1","option_growth_overlay_start_usd":"300000","option_growth_overlay_nav_budget_ratio":"0.015"},{"profile":"us_equity_combo_core","label":"美股核心组合影子","label_en":"US Core Combo Shadow","label_zh":"美股核心组合影子","domain":"us_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":true,"lifecycle_stage":"shadow_active","can_switch_live":false,"allowed_execution_modes":["paper","dry_run"],"blocked_live_reason":"shadow_candidate_requires_evidence_package","live_continuity":{"eligible":false,"allowed_platforms":[]},"combo_mode":"dynamic"},{"profile":"us_equity_combo_leveraged","label":"美股加速组合","label_en":"US Alpha Combo","label_zh":"美股加速组合","domain":"us_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":true,"lifecycle_stage":"shadow_active","can_switch_live":false,"allowed_execution_modes":["paper","dry_run"],"blocked_live_reason":"shadow_candidate_requires_evidence_package","live_continuity":{"eligible":false,"allowed_platforms":[]},"combo_mode":"dynamic"},{"profile":"hk_global_etf_tactical_rotation","label":"港股ETF战术轮动","label_en":"HK ETF Tactical Rotation","label_zh":"港股ETF战术轮动","domain":"hk_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["dry_run"],"blocked_live_reason":"research_backtest_only_requires_evidence_package","live_continuity":{"eligible":false,"allowed_platforms":[]}},{"profile":"hk_low_vol_dividend_quality_snapshot","label":"港股红利质量","label_en":"HK Dividend Quality","label_zh":"港股红利质量","domain":"hk_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["paper","dry_run"],"blocked_live_reason":"missing_current_promotion_evidence_and_preauthorized_autonomy_policy","live_continuity":{"eligible":false,"allowed_platforms":[]}},{"profile":"hk_equity_combo","label":"港股恒生组合","label_en":"HK Core Combo","label_zh":"港股恒生组合","domain":"hk_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":true,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["dry_run"],"blocked_live_reason":"research_backtest_only_requires_evidence_package","live_continuity":{"eligible":false,"allowed_platforms":[]},"combo_mode":"dynamic"},{"profile":"cn_industry_etf_rotation","label":"A股行业ETF轮动","label_en":"CN Industry ETF Rotation","label_zh":"A股行业ETF轮动","domain":"cn_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["paper","dry_run"],"blocked_live_reason":"missing_current_promotion_evidence_and_preauthorized_autonomy_policy","live_continuity":{"eligible":false,"allowed_platforms":[]}},{"profile":"cn_industry_etf_rotation_aggressive","label":"A股ETF轮动","label_en":"CN ETF Rotation","label_zh":"A股ETF轮动","domain":"cn_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"live_candidate","can_switch_live":false,"allowed_execution_modes":["paper","dry_run"],"blocked_live_reason":"live_candidate_requires_evidence_package","live_continuity":{"eligible":false,"allowed_platforms":[]}},{"profile":"cn_index_etf_tactical_rotation","label":"A股宽基ETF战术轮动","label_en":"CN Index ETF Tactical Rotation","label_zh":"A股宽基ETF战术轮动","domain":"cn_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["dry_run"],"blocked_live_reason":"research_backtest_only_requires_evidence_package","live_continuity":{"eligible":false,"allowed_platforms":[]}},{"profile":"cn_chinext_tactical_rotation","label":"创业板战术轮动","label_en":"CN ChiNext Tactical Rotation","label_zh":"创业板战术轮动","domain":"cn_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["dry_run"],"blocked_live_reason":"research_backtest_only_requires_evidence_package","live_continuity":{"eligible":false,"allowed_platforms":[]}},{"profile":"cn_chinext_growth_momentum_quality","label":"创业板成长动量质量","label_en":"CN ChiNext Growth Momentum Quality","label_zh":"创业板成长动量质量","domain":"cn_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["dry_run"],"blocked_live_reason":"research_backtest_only_requires_evidence_package","live_continuity":{"eligible":false,"allowed_platforms":[]}},{"profile":"cn_dividend_quality_snapshot","label":"A股红利质量","label_en":"CN Dividend Quality","label_zh":"A股红利质量","domain":"cn_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["dry_run"],"blocked_live_reason":"research_backtest_only_requires_evidence_package","live_continuity":{"eligible":false,"allowed_platforms":[]}},{"profile":"cn_chinext_growth_momentum_quality_snapshot","label":"创业板成长质量快照","label_en":"CN ChiNext Growth Quality Snapshot","label_zh":"创业板成长质量快照","domain":"cn_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["dry_run"],"blocked_live_reason":"research_backtest_only_requires_evidence_package","live_continuity":{"eligible":false,"allowed_platforms":[]}},{"profile":"cn_star_growth_momentum_quality","label":"科创板成长动量质量","label_en":"CN STAR Growth Momentum Quality","label_zh":"科创板成长动量质量","domain":"cn_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["dry_run"],"blocked_live_reason":"research_backtest_only_requires_evidence_package","live_continuity":{"eligible":false,"allowed_platforms":[]}},{"profile":"cn_equity_combo","label":"A股进取组合","label_en":"CN Alpha Combo","label_zh":"A股进取组合","domain":"cn_equity","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":true,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["dry_run"],"blocked_live_reason":"research_backtest_only_requires_evidence_package","live_continuity":{"eligible":false,"allowed_platforms":[]},"combo_mode":"dynamic"},{"profile":"crypto_live_pool_rotation","label":"加密实时池轮动","label_en":"Crypto Live Pool Rotation","label_zh":"加密实时池轮动","domain":"crypto","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["paper","dry_run"],"blocked_live_reason":"missing_current_promotion_evidence_and_preauthorized_autonomy_policy","live_continuity":{"eligible":true,"allowed_platforms":["binance"]}},{"profile":"crypto_btc_dca","label":"BTC定投","label_en":"BTC DCA","label_zh":"BTC定投","domain":"crypto","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"shadow_active","can_switch_live":false,"allowed_execution_modes":["paper","dry_run"],"blocked_live_reason":"shadow_candidate_requires_evidence_package","live_continuity":{"eligible":false,"allowed_platforms":[]}},{"profile":"crypto_trend_rotation","label":"山寨趋势轮动","label_en":"Altcoin Trend","label_zh":"山寨趋势轮动","domain":"crypto","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":false,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["dry_run"],"blocked_live_reason":"research_backtest_only_requires_evidence_package","live_continuity":{"eligible":false,"allowed_platforms":[]}},{"profile":"crypto_equity_combo","label":"加密动量组合","label_en":"Crypto Core Combo","label_zh":"加密动量组合","domain":"crypto","runtime_enabled":false,"income_layer_enabled":false,"option_overlay_enabled":false,"combo_enabled":true,"lifecycle_stage":"research_active","can_switch_live":false,"allowed_execution_modes":["dry_run"],"blocked_live_reason":"research_backtest_only_requires_evidence_package","live_continuity":{"eligible":false,"allowed_platforms":[]},"combo_mode":"dynamic"}] diff --git a/web/strategy-switch-console/strategy_profiles_asset.js b/web/strategy-switch-console/strategy_profiles_asset.js index 4e74acc..f69d4e9 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": "纳斯达克增长收益", "label_en": "NASDAQ Growth Income", "label_zh": "纳斯达克增长收益", "domain": "us_equity", "runtime_enabled": false, "income_layer_enabled": true, "option_overlay_enabled": true, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", "income_layer_start_usd": "250000", "income_layer_max_ratio": "0.55", "income_layer_allocations": {"SCHD": 0.3, "DGRO": 0.2, "SGOV": 0.4, "SPYI": 0.08, "QQQI": 0.02}, "option_overlay_live_gate": "promotion_required", "option_overlay_live_status": "research_only", "option_growth_overlay_enabled": true, "option_growth_overlay_recipe": "tqqq_leaps_growth_v1", "option_growth_overlay_start_usd": "250000", "option_growth_overlay_nav_budget_ratio": "0.03"}, {"profile": "soxl_soxx_trend_income", "label": "半导体趋势收益", "label_en": "Semiconductor Trend Income", "label_zh": "半导体趋势收益", "domain": "us_equity", "runtime_enabled": false, "income_layer_enabled": true, "option_overlay_enabled": true, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", "income_layer_start_usd": "150000", "income_layer_max_ratio": "0.95", "income_layer_allocations": {"SCHD": 0.15, "DGRO": 0.1, "SGOV": 0.7, "SPYI": 0.04, "QQQI": 0.01}, "option_overlay_live_gate": "promotion_required", "option_overlay_live_status": "research_only", "option_income_overlay_enabled": true, "option_income_overlay_recipe": "soxx_put_credit_spread_income_v1", "option_income_overlay_start_usd": "150000", "option_income_overlay_nav_risk_ratio": "0.01"}, {"profile": "nasdaq_sp500_smart_dca", "label": "纳指标普定投", "label_en": "NASDAQ/S&P 500 DCA", "label_zh": "纳指标普定投", "domain": "us_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", "dca_enabled": true, "dca_default_mode": "fixed", "dca_default_base_investment_usd": "1000"}, {"profile": "ibit_smart_dca", "label": "IBIT比特币定投", "label_en": "IBIT Bitcoin DCA", "label_zh": "IBIT比特币定投", "domain": "us_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", "dca_enabled": true, "dca_default_mode": "fixed", "dca_default_base_investment_usd": "1000"}, {"profile": "global_etf_rotation", "label": "全球ETF轮动", "label_en": "Global ETF Rotation", "label_zh": "全球ETF轮动", "domain": "us_equity", "runtime_enabled": false, "income_layer_enabled": true, "option_overlay_enabled": true, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "income_layer_start_usd": "500000", "income_layer_max_ratio": "0.15", "income_layer_allocations": {"SCHD": 0.4, "DGRO": 0.25, "SGOV": 0.3, "SPYI": 0.05}, "option_overlay_live_gate": "promotion_required", "option_overlay_live_status": "research_only", "option_growth_overlay_enabled": true, "option_growth_overlay_recipe": "spy_leaps_growth_v1", "option_growth_overlay_start_usd": "500000", "option_growth_overlay_nav_budget_ratio": "0.015"}, {"profile": "russell_top50_leader_rotation", "label": "罗素Top50领涨", "label_en": "Russell Top50 Leaders", "label_zh": "罗素Top50领涨", "domain": "us_equity", "runtime_enabled": false, "income_layer_enabled": true, "option_overlay_enabled": true, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", "income_layer_start_usd": "300000", "income_layer_max_ratio": "0.25", "income_layer_allocations": {"SCHD": 0.45, "DGRO": 0.3, "SGOV": 0.25}, "option_overlay_live_gate": "promotion_required", "option_overlay_live_status": "research_only", "option_growth_overlay_enabled": true, "option_growth_overlay_recipe": "spy_leaps_growth_v1", "option_growth_overlay_start_usd": "300000", "option_growth_overlay_nav_budget_ratio": "0.015"}, {"profile": "tecl_xlk_trend_income", "label": "TECL/XLK趋势收益", "label_en": "TECL/XLK Trend Income", "label_zh": "TECL/XLK趋势收益", "domain": "us_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "failed_promotion_vs_live_profiles"}, {"profile": "us_equity_combo", "label": "美股核心组合", "label_en": "US Core Combo", "label_zh": "美股核心组合", "domain": "us_equity", "runtime_enabled": false, "income_layer_enabled": true, "option_overlay_enabled": true, "combo_enabled": true, "lifecycle_stage": "shadow_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "shadow_candidate_requires_evidence_package", "combo_mode": "dynamic", "income_layer_start_usd": "300000", "income_layer_max_ratio": "0.25", "income_layer_allocations": {"SCHD": 0.25, "DGRO": 0.25, "SGOV": 0.2, "SPYI": 0.15, "QQQI": 0.15}, "option_overlay_live_gate": "promotion_required", "option_overlay_live_status": "research_only", "option_growth_overlay_enabled": true, "option_growth_overlay_recipe": "spy_leaps_growth_v1", "option_growth_overlay_start_usd": "300000", "option_growth_overlay_nav_budget_ratio": "0.015"}, {"profile": "us_equity_combo_core", "label": "美股核心组合影子", "label_en": "US Core Combo Shadow", "label_zh": "美股核心组合影子", "domain": "us_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": true, "lifecycle_stage": "shadow_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "shadow_candidate_requires_evidence_package", "combo_mode": "dynamic"}, {"profile": "us_equity_combo_leveraged", "label": "美股加速组合", "label_en": "US Alpha Combo", "label_zh": "美股加速组合", "domain": "us_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": true, "lifecycle_stage": "shadow_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "shadow_candidate_requires_evidence_package", "combo_mode": "dynamic"}, {"profile": "hk_global_etf_tactical_rotation", "label": "港股ETF战术轮动", "label_en": "HK ETF Tactical Rotation", "label_zh": "港股ETF战术轮动", "domain": "hk_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package"}, {"profile": "hk_low_vol_dividend_quality_snapshot", "label": "港股红利质量", "label_en": "HK Dividend Quality", "label_zh": "港股红利质量", "domain": "hk_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy"}, {"profile": "hk_equity_combo", "label": "港股恒生组合", "label_en": "HK Core Combo", "label_zh": "港股恒生组合", "domain": "hk_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": true, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "combo_mode": "dynamic"}, {"profile": "cn_industry_etf_rotation", "label": "A股行业ETF轮动", "label_en": "CN Industry ETF Rotation", "label_zh": "A股行业ETF轮动", "domain": "cn_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy"}, {"profile": "cn_industry_etf_rotation_aggressive", "label": "A股ETF轮动", "label_en": "CN ETF Rotation", "label_zh": "A股ETF轮动", "domain": "cn_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "live_candidate", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "live_candidate_requires_evidence_package"}, {"profile": "cn_index_etf_tactical_rotation", "label": "A股宽基ETF战术轮动", "label_en": "CN Index ETF Tactical Rotation", "label_zh": "A股宽基ETF战术轮动", "domain": "cn_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package"}, {"profile": "cn_chinext_tactical_rotation", "label": "创业板战术轮动", "label_en": "CN ChiNext Tactical Rotation", "label_zh": "创业板战术轮动", "domain": "cn_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package"}, {"profile": "cn_chinext_growth_momentum_quality", "label": "创业板成长动量质量", "label_en": "CN ChiNext Growth Momentum Quality", "label_zh": "创业板成长动量质量", "domain": "cn_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package"}, {"profile": "cn_dividend_quality_snapshot", "label": "A股红利质量", "label_en": "CN Dividend Quality", "label_zh": "A股红利质量", "domain": "cn_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package"}, {"profile": "cn_chinext_growth_momentum_quality_snapshot", "label": "创业板成长质量快照", "label_en": "CN ChiNext Growth Quality Snapshot", "label_zh": "创业板成长质量快照", "domain": "cn_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package"}, {"profile": "cn_star_growth_momentum_quality", "label": "科创板成长动量质量", "label_en": "CN STAR Growth Momentum Quality", "label_zh": "科创板成长动量质量", "domain": "cn_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package"}, {"profile": "cn_equity_combo", "label": "A股进取组合", "label_en": "CN Alpha Combo", "label_zh": "A股进取组合", "domain": "cn_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": true, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "combo_mode": "dynamic"}, {"profile": "crypto_live_pool_rotation", "label": "加密实时池轮动", "label_en": "Crypto Live Pool Rotation", "label_zh": "加密实时池轮动", "domain": "crypto", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy"}, {"profile": "crypto_btc_dca", "label": "BTC定投", "label_en": "BTC DCA", "label_zh": "BTC定投", "domain": "crypto", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "shadow_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "shadow_candidate_requires_evidence_package"}, {"profile": "crypto_trend_rotation", "label": "山寨趋势轮动", "label_en": "Altcoin Trend", "label_zh": "山寨趋势轮动", "domain": "crypto", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package"}, {"profile": "crypto_equity_combo", "label": "加密动量组合", "label_en": "Crypto Core Combo", "label_zh": "加密动量组合", "domain": "crypto", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": true, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "combo_mode": "dynamic"}]; +export const DEFAULT_STRATEGY_PROFILES = [{"profile": "tqqq_growth_income", "label": "纳斯达克增长收益", "label_en": "NASDAQ Growth Income", "label_zh": "纳斯达克增长收益", "domain": "us_equity", "runtime_enabled": false, "income_layer_enabled": true, "option_overlay_enabled": true, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", "live_continuity": {"eligible": false, "allowed_platforms": []}, "income_layer_start_usd": "250000", "income_layer_max_ratio": "0.55", "income_layer_allocations": {"SCHD": 0.3, "DGRO": 0.2, "SGOV": 0.4, "SPYI": 0.08, "QQQI": 0.02}, "option_overlay_live_gate": "promotion_required", "option_overlay_live_status": "research_only", "option_growth_overlay_enabled": true, "option_growth_overlay_recipe": "tqqq_leaps_growth_v1", "option_growth_overlay_start_usd": "250000", "option_growth_overlay_nav_budget_ratio": "0.03"}, {"profile": "soxl_soxx_trend_income", "label": "半导体趋势收益", "label_en": "Semiconductor Trend Income", "label_zh": "半导体趋势收益", "domain": "us_equity", "runtime_enabled": false, "income_layer_enabled": true, "option_overlay_enabled": true, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", "live_continuity": {"eligible": true, "allowed_platforms": ["longbridge", "ibkr", "schwab"]}, "income_layer_start_usd": "150000", "income_layer_max_ratio": "0.95", "income_layer_allocations": {"SCHD": 0.15, "DGRO": 0.1, "SGOV": 0.7, "SPYI": 0.04, "QQQI": 0.01}, "option_overlay_live_gate": "promotion_required", "option_overlay_live_status": "research_only", "option_income_overlay_enabled": true, "option_income_overlay_recipe": "soxx_put_credit_spread_income_v1", "option_income_overlay_start_usd": "150000", "option_income_overlay_nav_risk_ratio": "0.01"}, {"profile": "nasdaq_sp500_smart_dca", "label": "纳指标普定投", "label_en": "NASDAQ/S&P 500 DCA", "label_zh": "纳指标普定投", "domain": "us_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", "live_continuity": {"eligible": false, "allowed_platforms": []}, "dca_enabled": true, "dca_default_mode": "fixed", "dca_default_base_investment_usd": "1000"}, {"profile": "ibit_smart_dca", "label": "IBIT比特币定投", "label_en": "IBIT Bitcoin DCA", "label_zh": "IBIT比特币定投", "domain": "us_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", "live_continuity": {"eligible": true, "allowed_platforms": ["firstrade"]}, "dca_enabled": true, "dca_default_mode": "fixed", "dca_default_base_investment_usd": "1000"}, {"profile": "global_etf_rotation", "label": "全球ETF轮动", "label_en": "Global ETF Rotation", "label_zh": "全球ETF轮动", "domain": "us_equity", "runtime_enabled": false, "income_layer_enabled": true, "option_overlay_enabled": true, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}, "income_layer_start_usd": "500000", "income_layer_max_ratio": "0.15", "income_layer_allocations": {"SCHD": 0.4, "DGRO": 0.25, "SGOV": 0.3, "SPYI": 0.05}, "option_overlay_live_gate": "promotion_required", "option_overlay_live_status": "research_only", "option_growth_overlay_enabled": true, "option_growth_overlay_recipe": "spy_leaps_growth_v1", "option_growth_overlay_start_usd": "500000", "option_growth_overlay_nav_budget_ratio": "0.015"}, {"profile": "russell_top50_leader_rotation", "label": "罗素Top50领涨", "label_en": "Russell Top50 Leaders", "label_zh": "罗素Top50领涨", "domain": "us_equity", "runtime_enabled": false, "income_layer_enabled": true, "option_overlay_enabled": true, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", "live_continuity": {"eligible": false, "allowed_platforms": []}, "income_layer_start_usd": "300000", "income_layer_max_ratio": "0.25", "income_layer_allocations": {"SCHD": 0.45, "DGRO": 0.3, "SGOV": 0.25}, "option_overlay_live_gate": "promotion_required", "option_overlay_live_status": "research_only", "option_growth_overlay_enabled": true, "option_growth_overlay_recipe": "spy_leaps_growth_v1", "option_growth_overlay_start_usd": "300000", "option_growth_overlay_nav_budget_ratio": "0.015"}, {"profile": "tecl_xlk_trend_income", "label": "TECL/XLK趋势收益", "label_en": "TECL/XLK Trend Income", "label_zh": "TECL/XLK趋势收益", "domain": "us_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "failed_promotion_vs_live_profiles", "live_continuity": {"eligible": false, "allowed_platforms": []}}, {"profile": "us_equity_combo", "label": "美股核心组合", "label_en": "US Core Combo", "label_zh": "美股核心组合", "domain": "us_equity", "runtime_enabled": false, "income_layer_enabled": true, "option_overlay_enabled": true, "combo_enabled": true, "lifecycle_stage": "shadow_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "shadow_candidate_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}, "combo_mode": "dynamic", "income_layer_start_usd": "300000", "income_layer_max_ratio": "0.25", "income_layer_allocations": {"SCHD": 0.25, "DGRO": 0.25, "SGOV": 0.2, "SPYI": 0.15, "QQQI": 0.15}, "option_overlay_live_gate": "promotion_required", "option_overlay_live_status": "research_only", "option_growth_overlay_enabled": true, "option_growth_overlay_recipe": "spy_leaps_growth_v1", "option_growth_overlay_start_usd": "300000", "option_growth_overlay_nav_budget_ratio": "0.015"}, {"profile": "us_equity_combo_core", "label": "美股核心组合影子", "label_en": "US Core Combo Shadow", "label_zh": "美股核心组合影子", "domain": "us_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": true, "lifecycle_stage": "shadow_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "shadow_candidate_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}, "combo_mode": "dynamic"}, {"profile": "us_equity_combo_leveraged", "label": "美股加速组合", "label_en": "US Alpha Combo", "label_zh": "美股加速组合", "domain": "us_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": true, "lifecycle_stage": "shadow_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "shadow_candidate_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}, "combo_mode": "dynamic"}, {"profile": "hk_global_etf_tactical_rotation", "label": "港股ETF战术轮动", "label_en": "HK ETF Tactical Rotation", "label_zh": "港股ETF战术轮动", "domain": "hk_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}}, {"profile": "hk_low_vol_dividend_quality_snapshot", "label": "港股红利质量", "label_en": "HK Dividend Quality", "label_zh": "港股红利质量", "domain": "hk_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", "live_continuity": {"eligible": false, "allowed_platforms": []}}, {"profile": "hk_equity_combo", "label": "港股恒生组合", "label_en": "HK Core Combo", "label_zh": "港股恒生组合", "domain": "hk_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": true, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}, "combo_mode": "dynamic"}, {"profile": "cn_industry_etf_rotation", "label": "A股行业ETF轮动", "label_en": "CN Industry ETF Rotation", "label_zh": "A股行业ETF轮动", "domain": "cn_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", "live_continuity": {"eligible": false, "allowed_platforms": []}}, {"profile": "cn_industry_etf_rotation_aggressive", "label": "A股ETF轮动", "label_en": "CN ETF Rotation", "label_zh": "A股ETF轮动", "domain": "cn_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "live_candidate", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "live_candidate_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}}, {"profile": "cn_index_etf_tactical_rotation", "label": "A股宽基ETF战术轮动", "label_en": "CN Index ETF Tactical Rotation", "label_zh": "A股宽基ETF战术轮动", "domain": "cn_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}}, {"profile": "cn_chinext_tactical_rotation", "label": "创业板战术轮动", "label_en": "CN ChiNext Tactical Rotation", "label_zh": "创业板战术轮动", "domain": "cn_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}}, {"profile": "cn_chinext_growth_momentum_quality", "label": "创业板成长动量质量", "label_en": "CN ChiNext Growth Momentum Quality", "label_zh": "创业板成长动量质量", "domain": "cn_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}}, {"profile": "cn_dividend_quality_snapshot", "label": "A股红利质量", "label_en": "CN Dividend Quality", "label_zh": "A股红利质量", "domain": "cn_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}}, {"profile": "cn_chinext_growth_momentum_quality_snapshot", "label": "创业板成长质量快照", "label_en": "CN ChiNext Growth Quality Snapshot", "label_zh": "创业板成长质量快照", "domain": "cn_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}}, {"profile": "cn_star_growth_momentum_quality", "label": "科创板成长动量质量", "label_en": "CN STAR Growth Momentum Quality", "label_zh": "科创板成长动量质量", "domain": "cn_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}}, {"profile": "cn_equity_combo", "label": "A股进取组合", "label_en": "CN Alpha Combo", "label_zh": "A股进取组合", "domain": "cn_equity", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": true, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}, "combo_mode": "dynamic"}, {"profile": "crypto_live_pool_rotation", "label": "加密实时池轮动", "label_en": "Crypto Live Pool Rotation", "label_zh": "加密实时池轮动", "domain": "crypto", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy", "live_continuity": {"eligible": true, "allowed_platforms": ["binance"]}}, {"profile": "crypto_btc_dca", "label": "BTC定投", "label_en": "BTC DCA", "label_zh": "BTC定投", "domain": "crypto", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "shadow_active", "can_switch_live": false, "allowed_execution_modes": ["paper", "dry_run"], "blocked_live_reason": "shadow_candidate_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}}, {"profile": "crypto_trend_rotation", "label": "山寨趋势轮动", "label_en": "Altcoin Trend", "label_zh": "山寨趋势轮动", "domain": "crypto", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": false, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}}, {"profile": "crypto_equity_combo", "label": "加密动量组合", "label_en": "Crypto Core Combo", "label_zh": "加密动量组合", "domain": "crypto", "runtime_enabled": false, "income_layer_enabled": false, "option_overlay_enabled": false, "combo_enabled": true, "lifecycle_stage": "research_active", "can_switch_live": false, "allowed_execution_modes": ["dry_run"], "blocked_live_reason": "research_backtest_only_requires_evidence_package", "live_continuity": {"eligible": false, "allowed_platforms": []}, "combo_mode": "dynamic"}];