@@ -1505,14 +1505,93 @@ <h2 data-i18n="summary">切换摘要</h2>
15051505 const defaultRepositories = platformRepositories ;
15061506
15071507 const defaultAccountOptions = {
1508- binance : [ { "key" : "preview" , "label" : "Binance" , "target_name" : "crypto_combo" , "supported_domains" : [ "crypto" ] , "default_strategy_profile" : "crypto_equity_combo" } ] ,
1509- firstrade : [ { "key" : "preview" , "label" : "Firstrade" , "target_name" : "preview" , "supported_domains" : [ "us_equity" ] } ] ,
1510- ibkr : [ { "key" : "preview" , "label" : "IBKR" , "target_name" : "preview" , "supported_domains" : [ "us_equity" , "hk_equity" ] } ] ,
1511- longbridge : [ { "key" : "preview" , "label" : "LongBridge" , "target_name" : "preview" , "supported_domains" : [ "us_equity" , "hk_equity" ] } ] ,
1508+ binance : [ { "key" : "preview" , "label" : "Binance" , "target_name" : "crypto_combo" , "supported_domains" : [ "crypto" ] , "default_strategy_profile" : "crypto_equity_combo" , "cash_currency" : "USD" , "default_execution_mode" : "live" } ] ,
1509+ firstrade : [ { "key" : "preview" , "label" : "Firstrade" , "target_name" : "preview" , "supported_domains" : [ "us_equity" ] , "cash_currency" : "USD" , "default_execution_mode" : "live" } ] ,
1510+ ibkr : [ { "key" : "preview" , "label" : "IBKR" , "target_name" : "preview" , "supported_domains" : [ "us_equity" , "hk_equity" ] , "cash_currency" : "USD" , "default_execution_mode" : "live" } ] ,
1511+ longbridge : [ { "key" : "preview" , "label" : "LongBridge" , "target_name" : "preview" , "supported_domains" : [ "us_equity" , "hk_equity" ] , "cash_currency" : "USD" , "default_execution_mode" : "live" } ] ,
15121512 qmt : [ { "key" : "preview" , "label" : "QMT dry-run" , "target_name" : "industry_etf_dry_run" , "cash_currency" : "CNY" , "default_strategy_profile" : "cn_industry_etf_rotation" , "supported_domains" : [ "cn_equity" ] } ] ,
1513- schwab : [ { "key" : "preview" , "label" : "Schwab" , "target_name" : "preview" , "supported_domains" : [ "us_equity" ] } ] ,
1513+ schwab : [ { "key" : "preview" , "label" : "Schwab" , "target_name" : "preview" , "supported_domains" : [ "us_equity" ] , "cash_currency" : "USD" , "default_execution_mode" : "live" } ] ,
15141514 } ;
15151515
1516+ const domainLabels = {
1517+ cn_equity : { zh : "A股" , en : "CN A-share" } ,
1518+ crypto : { zh : "加密" , en : "Crypto" } ,
1519+ hk_equity : { zh : "港股" , en : "HK Equity" } ,
1520+ us_equity : { zh : "美股" , en : "US Equity" } ,
1521+ } ;
1522+
1523+ const platformConfig = {
1524+ binance : {
1525+ dry_run_only : false ,
1526+ margin_policy : false ,
1527+ reserved_cash : false ,
1528+ income_layer : false ,
1529+ option_overlay : false ,
1530+ dca : true ,
1531+ execution_mode : "live" ,
1532+ service_name : "binance-quant-service" ,
1533+ default_execution_mode : "live"
1534+ } ,
1535+ firstrade : {
1536+ dry_run_only : false ,
1537+ margin_policy : true ,
1538+ reserved_cash : true ,
1539+ income_layer : true ,
1540+ option_overlay : true ,
1541+ dca : true ,
1542+ execution_mode : "live" ,
1543+ service_name : "firstrade-quant-service" ,
1544+ default_execution_mode : "live"
1545+ } ,
1546+ ibkr : {
1547+ dry_run_only : false ,
1548+ margin_policy : true ,
1549+ reserved_cash : true ,
1550+ income_layer : true ,
1551+ option_overlay : true ,
1552+ dca : false ,
1553+ execution_mode : "live" ,
1554+ service_name : "ibkr-quant-service" ,
1555+ default_execution_mode : "live"
1556+ } ,
1557+ longbridge : {
1558+ dry_run_only : false ,
1559+ margin_policy : true ,
1560+ reserved_cash : true ,
1561+ income_layer : true ,
1562+ option_overlay : true ,
1563+ dca : false ,
1564+ execution_mode : "live" ,
1565+ service_name : "longbridge-quant-service" ,
1566+ default_execution_mode : "live"
1567+ } ,
1568+ qmt : {
1569+ dry_run_only : true ,
1570+ margin_policy : false ,
1571+ reserved_cash : false ,
1572+ income_layer : false ,
1573+ option_overlay : false ,
1574+ dca : false ,
1575+ execution_mode : "paper" ,
1576+ service_name : "qmt-quant-service" ,
1577+ default_execution_mode : "paper"
1578+ } ,
1579+ schwab : {
1580+ dry_run_only : false ,
1581+ margin_policy : true ,
1582+ reserved_cash : true ,
1583+ income_layer : true ,
1584+ option_overlay : true ,
1585+ dca : false ,
1586+ execution_mode : "live" ,
1587+ service_name : "schwab-quant-service" ,
1588+ default_execution_mode : "live"
1589+ } ,
1590+ } ;
1591+
1592+
1593+
1594+
15161595
15171596
15181597
@@ -2074,21 +2153,21 @@ <h2 data-i18n="summary">切换摘要</h2>
20742153 }
20752154
20762155 function domainLabel ( domain ) {
2077- if ( domain === "hk_equity" ) return t ( "hkEquity" ) ;
2078- if ( domain === "cn_equity" ) return t ( "cnEquity" ) ;
2079- return t ( "usEquity" ) ;
2156+ const entry = domainLabels [ domain ] ;
2157+ if ( entry ) return state . lang === "zh" ? entry . zh : entry . en ;
2158+ return domain ;
20802159 }
20812160
20822161 function platformSupportsMarginPolicy ( platform = state . selected ) {
2083- return platform !== "qmt" && platform !== "binance" ;
2162+ return platformConfig [ platform ] ?. margin_policy ?? true ;
20842163 }
20852164
20862165 function platformSupportsReservedCashPolicy ( platform = state . selected ) {
2087- return platform !== "qmt" && platform !== "binance" ;
2166+ return platformConfig [ platform ] ?. reserved_cash ?? true ;
20882167 }
20892168
20902169 function platformDryRunOnly ( platform = state . selected ) {
2091- return platform === "qmt" ;
2170+ return platformConfig [ platform ] ?. dry_run_only ?? false ;
20922171 }
20932172
20942173 function allowMarginExplicitlySelected ( form ) {
@@ -2127,9 +2206,6 @@ <h2 data-i18n="summary">切换摘要</h2>
21272206 const domain = strategyDomain ( state . forms [ platform ] ?. strategy ) ;
21282207 if ( domain === "hk_equity" ) return "HKD" ;
21292208 if ( domain === "cn_equity" ) return "CNY" ;
2130- const supported = supportedDomainsForAccount ( platform , account ) ;
2131- if ( supported . length === 1 && supported [ 0 ] === "hk_equity" ) return "HKD" ;
2132- if ( supported . length === 1 && supported [ 0 ] === "cn_equity" ) return "CNY" ;
21332209 return "USD" ;
21342210 }
21352211
@@ -2291,7 +2367,7 @@ <h2 data-i18n="summary">切换摘要</h2>
22912367 }
22922368
22932369 function platformSupportsDca ( platform = state . selected ) {
2294- return platform === "firstrade" || platform === "binance" ;
2370+ return platformConfig [ platform ] ?. dca ?? false ;
22952371 }
22962372
22972373 function strategyAllowedForAccount ( platform , account , profile ) {
0 commit comments