feat(ui): Argentina is a market in the Web UI too, with the two suffixes that were already missing (#1543)
Desktop Windows / package (push) Waiting to run
Build and Push Docker Image / validate-build (push) Waiting to run
Build and Push Docker Image / build-and-push (push) Skipped
CI / Hash lock / macOS ARM64 (push) Waiting to run
CI / Hash lock / Linux x64 (push) Waiting to run
CI / Hash lock / Windows x64 (push) Waiting to run
CI / test / Python 3.11 (push) Waiting to run
CI / test / Python 3.14 (push) Waiting to run
CI / frontend (push) Waiting to run
CI / Windows 11 ARM64 / Python 3.14 background lifecycle (push) Waiting to run
CI / Windows Server 2025 x64 / Python 3.14 background lifecycle (push) Waiting to run
CI / Windows desktop source lifecycle (push) Waiting to run
Desktop Windows / package (push) Waiting to run
Build and Push Docker Image / validate-build (push) Waiting to run
Build and Push Docker Image / build-and-push (push) Skipped
CI / Hash lock / macOS ARM64 (push) Waiting to run
CI / Hash lock / Linux x64 (push) Waiting to run
CI / Hash lock / Windows x64 (push) Waiting to run
CI / test / Python 3.11 (push) Waiting to run
CI / test / Python 3.14 (push) Waiting to run
CI / frontend (push) Waiting to run
CI / Windows 11 ARM64 / Python 3.14 background lifecycle (push) Waiting to run
CI / Windows Server 2025 x64 / Python 3.14 background lifecycle (push) Waiting to run
CI / Windows desktop source lifecycle (push) Waiting to run
#1543 added the backend routing only, and a market here is full-stack: the Settings source-priority list would have shown Argentina as a raw i18n key, and a .BA position would have been grouped as "other" in a run's positions tab. Both gaps already existed for the markets that landed earlier, so this closes the class rather than the instance: - `positions.ts`: `ar_equity` / `uk_equity` / `vietnam_equity` join `AssetClass` and the suffix map gets BA / L / VN. PositionsTab's label map is `satisfies Record<AssetClass, string>`, so tsc now demands a key per class. - `api.ts`: `SectorAssetClass` is what `_detect_market` can return over the sector endpoint; it was missing those three and `index`. - `SourcePrioritySettings`: labels for `ar_equity`, `uk_equity` and `index` (the last two have been falling back to their raw key). - Six new keys across all nine locales. - `EnvConfig.data` gains `MARKET_DATA_ORDER_AR_EQUITY` / `_UK_EQUITY`, and the test that guarded that block now derives the market list from `FALLBACK_CHAINS` instead of hand-listing it -- the hand list is why uk_equity never had a typed field. Frontend: 656 tests pass, `tsc -b` clean.
This commit is contained in:
1 parent
5397f230ae
commit
6000b3e61d
16 files changed
+87
-6
No files matched your search
@@ -235,6 +235,8 @@ class DataConfig(_EnvBase):
|
||||
market_data_order_india_equity: str = Field(alias="MARKET_DATA_ORDER_INDIA_EQUITY", default="")
|
||||
market_data_order_kr_equity: str = Field(alias="MARKET_DATA_ORDER_KR_EQUITY", default="")
|
||||
market_data_order_ca_equity: str = Field(alias="MARKET_DATA_ORDER_CA_EQUITY", default="")
|
||||
market_data_order_ar_equity: str = Field(alias="MARKET_DATA_ORDER_AR_EQUITY", default="")
|
||||
market_data_order_uk_equity: str = Field(alias="MARKET_DATA_ORDER_UK_EQUITY", default="")
|
||||
market_data_order_vietnam_equity: str = Field(alias="MARKET_DATA_ORDER_VIETNAM_EQUITY", default="")
|
||||
market_data_order_crypto: str = Field(alias="MARKET_DATA_ORDER_CRYPTO", default="")
|
||||
market_data_order_futures: str = Field(alias="MARKET_DATA_ORDER_FUTURES", default="")
|
||||
|
||||
@@ -127,12 +127,15 @@ class TestEnvConfigDefaults:
|
||||
assert c.data.longbridge_app_secret == ""
|
||||
assert c.data.longbridge_access_token == ""
|
||||
# Per-market source-order overrides default to unset (default chains).
|
||||
for market in (
|
||||
"a_share", "us_equity", "hk_equity", "india_equity", "kr_equity",
|
||||
"ca_equity", "vietnam_equity", "crypto", "futures", "fund",
|
||||
"macro", "forex", "index",
|
||||
):
|
||||
assert getattr(c.data, f"market_data_order_{market}") == ""
|
||||
# Derived from the chains, not hand-listed: the hand-written list here
|
||||
# and the field block it guarded both missed uk_equity for as long as
|
||||
# that market existed, so a new market shipped without its typed field.
|
||||
from backtest.loaders.registry import FALLBACK_CHAINS
|
||||
|
||||
for market in FALLBACK_CHAINS:
|
||||
field = f"market_data_order_{market}"
|
||||
assert hasattr(c.data, field), f"{field} missing from EnvConfig.data"
|
||||
assert getattr(c.data, field) == ""
|
||||
|
||||
def test_api_defaults(self) -> None:
|
||||
c = EnvConfig()
|
||||
|
||||
@@ -27,6 +27,9 @@ const ASSET_CLASS_LABEL_KEYS = {
|
||||
us_equity: "runDetail.positions.assetClass.us_equity",
|
||||
hk_equity: "runDetail.positions.assetClass.hk_equity",
|
||||
ca_equity: "runDetail.positions.assetClass.ca_equity",
|
||||
ar_equity: "runDetail.positions.assetClass.ar_equity",
|
||||
uk_equity: "runDetail.positions.assetClass.uk_equity",
|
||||
vietnam_equity: "runDetail.positions.assetClass.vietnam_equity",
|
||||
kr_equity: "runDetail.positions.assetClass.kr_equity",
|
||||
india_equity: "runDetail.positions.assetClass.india_equity",
|
||||
crypto: "runDetail.positions.assetClass.crypto",
|
||||
|
||||
@@ -34,6 +34,9 @@ export function SourcePrioritySettings() {
|
||||
kr_equity: t("settings.sourcePriority.markets.kr_equity"),
|
||||
ca_equity: t("settings.sourcePriority.markets.ca_equity"),
|
||||
vietnam_equity: t("settings.sourcePriority.markets.vietnam_equity"),
|
||||
ar_equity: t("settings.sourcePriority.markets.ar_equity"),
|
||||
uk_equity: t("settings.sourcePriority.markets.uk_equity"),
|
||||
index: t("settings.sourcePriority.markets.index"),
|
||||
crypto: t("settings.sourcePriority.markets.crypto"),
|
||||
futures: t("settings.sourcePriority.markets.futures"),
|
||||
fund: t("settings.sourcePriority.markets.fund"),
|
||||
|
||||
@@ -571,6 +571,9 @@
|
||||
"kr_equity": "الأسهم الكورية",
|
||||
"ca_equity": "الأسهم الكندية",
|
||||
"vietnam_equity": "أسهم فيتنام",
|
||||
"ar_equity": "الأسهم الأرجنتينية",
|
||||
"uk_equity": "الأسهم البريطانية",
|
||||
"index": "المؤشرات",
|
||||
"crypto": "العملات الرقمية",
|
||||
"futures": "العقود المستقبلية",
|
||||
"fund": "الصناديق",
|
||||
@@ -870,6 +873,9 @@
|
||||
"crypto": "عملات رقمية",
|
||||
"futures": "عقود آجلة",
|
||||
"forex": "عملات أجنبية",
|
||||
"ar_equity": "أسهم أرجنتينية",
|
||||
"uk_equity": "أسهم بريطانية",
|
||||
"vietnam_equity": "أسهم فيتنامية",
|
||||
"other": "أخرى"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -576,6 +576,9 @@
|
||||
"kr_equity": "Korea-Aktien",
|
||||
"ca_equity": "Kanada-Aktien",
|
||||
"vietnam_equity": "Vietnam-Aktien",
|
||||
"ar_equity": "Argentinien-Aktien",
|
||||
"uk_equity": "UK-Aktien",
|
||||
"index": "Indizes",
|
||||
"crypto": "Krypto",
|
||||
"futures": "Futures",
|
||||
"fund": "Fonds",
|
||||
@@ -875,6 +878,9 @@
|
||||
"crypto": "Krypto",
|
||||
"futures": "Futures",
|
||||
"forex": "Devisen",
|
||||
"ar_equity": "Argentinien-Aktien",
|
||||
"uk_equity": "UK-Aktien",
|
||||
"vietnam_equity": "Vietnam-Aktien",
|
||||
"other": "Sonstige"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -576,6 +576,9 @@
|
||||
"kr_equity": "Korea Equities",
|
||||
"ca_equity": "Canada Equities",
|
||||
"vietnam_equity": "Vietnam Equities",
|
||||
"ar_equity": "Argentina Equities",
|
||||
"uk_equity": "UK Equities",
|
||||
"index": "Indices",
|
||||
"crypto": "Crypto",
|
||||
"futures": "Futures",
|
||||
"fund": "Funds",
|
||||
@@ -875,6 +878,9 @@
|
||||
"crypto": "Crypto",
|
||||
"futures": "Futures",
|
||||
"forex": "Forex",
|
||||
"ar_equity": "Argentina equity",
|
||||
"uk_equity": "UK equity",
|
||||
"vietnam_equity": "Vietnam equity",
|
||||
"other": "Other"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -576,6 +576,9 @@
|
||||
"kr_equity": "Acciones de Corea",
|
||||
"ca_equity": "Acciones de Canadá",
|
||||
"vietnam_equity": "Acciones de Vietnam",
|
||||
"ar_equity": "Acciones de Argentina",
|
||||
"uk_equity": "Acciones del Reino Unido",
|
||||
"index": "Índices",
|
||||
"crypto": "Cripto",
|
||||
"futures": "Futuros",
|
||||
"fund": "Fondos",
|
||||
@@ -875,6 +878,9 @@
|
||||
"crypto": "Criptomonedas",
|
||||
"futures": "Futuros",
|
||||
"forex": "Divisas",
|
||||
"ar_equity": "Renta variable Argentina",
|
||||
"uk_equity": "Renta variable Reino Unido",
|
||||
"vietnam_equity": "Renta variable Vietnam",
|
||||
"other": "Otros"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -576,6 +576,9 @@
|
||||
"kr_equity": "Saham Korea",
|
||||
"ca_equity": "Saham Kanada",
|
||||
"vietnam_equity": "Saham Vietnam",
|
||||
"ar_equity": "Saham Argentina",
|
||||
"uk_equity": "Saham Inggris",
|
||||
"index": "Indeks",
|
||||
"crypto": "Crypto",
|
||||
"futures": "Futures",
|
||||
"fund": "Fund",
|
||||
@@ -875,6 +878,9 @@
|
||||
"crypto": "Crypto",
|
||||
"futures": "Futures",
|
||||
"forex": "Forex",
|
||||
"ar_equity": "Saham Argentina",
|
||||
"uk_equity": "Saham Inggris",
|
||||
"vietnam_equity": "Saham Vietnam",
|
||||
"other": "Lainnya"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -571,6 +571,9 @@
|
||||
"kr_equity": "韓国株",
|
||||
"ca_equity": "カナダ株",
|
||||
"vietnam_equity": "ベトナム株",
|
||||
"ar_equity": "アルゼンチン株",
|
||||
"uk_equity": "英国株",
|
||||
"index": "指数",
|
||||
"crypto": "暗号資産",
|
||||
"futures": "先物",
|
||||
"fund": "ファンド",
|
||||
@@ -870,6 +873,9 @@
|
||||
"crypto": "暗号資産",
|
||||
"futures": "先物",
|
||||
"forex": "外国為替",
|
||||
"ar_equity": "アルゼンチン株",
|
||||
"uk_equity": "英国株",
|
||||
"vietnam_equity": "ベトナム株",
|
||||
"other": "その他"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -571,6 +571,9 @@
|
||||
"kr_equity": "한국 주식",
|
||||
"ca_equity": "캐나다 주식",
|
||||
"vietnam_equity": "베트남 주식",
|
||||
"ar_equity": "아르헨티나 주식",
|
||||
"uk_equity": "영국 주식",
|
||||
"index": "지수",
|
||||
"crypto": "암호화폐",
|
||||
"futures": "선물",
|
||||
"fund": "펀드",
|
||||
@@ -870,6 +873,9 @@
|
||||
"crypto": "암호화폐",
|
||||
"futures": "선물",
|
||||
"forex": "외환",
|
||||
"ar_equity": "아르헨티나 주식",
|
||||
"uk_equity": "영국 주식",
|
||||
"vietnam_equity": "베트남 주식",
|
||||
"other": "기타"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -576,6 +576,9 @@
|
||||
"kr_equity": "Ações da Coreia",
|
||||
"ca_equity": "Ações do Canadá",
|
||||
"vietnam_equity": "Ações do Vietnã",
|
||||
"ar_equity": "Ações da Argentina",
|
||||
"uk_equity": "Ações do Reino Unido",
|
||||
"index": "Índices",
|
||||
"crypto": "Criptografia",
|
||||
"futures": "Futuros",
|
||||
"fund": "Fundos",
|
||||
@@ -875,6 +878,9 @@
|
||||
"crypto": "Criptoativos",
|
||||
"futures": "Futuros",
|
||||
"forex": "Forex",
|
||||
"ar_equity": "Ações da Argentina",
|
||||
"uk_equity": "Ações do Reino Unido",
|
||||
"vietnam_equity": "Ações do Vietnã",
|
||||
"other": "Outro"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -571,6 +571,9 @@
|
||||
"kr_equity": "韩国股票",
|
||||
"ca_equity": "加拿大股票",
|
||||
"vietnam_equity": "越南股票",
|
||||
"ar_equity": "阿根廷股票",
|
||||
"uk_equity": "英国股票",
|
||||
"index": "指数",
|
||||
"crypto": "加密货币",
|
||||
"futures": "期货",
|
||||
"fund": "基金",
|
||||
@@ -870,6 +873,9 @@
|
||||
"crypto": "加密货币",
|
||||
"futures": "期货",
|
||||
"forex": "外汇",
|
||||
"ar_equity": "阿根廷股",
|
||||
"uk_equity": "英股",
|
||||
"vietnam_equity": "越股",
|
||||
"other": "其他"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -110,6 +110,12 @@ describe("classifyAssetClass parity with backend rules", () => {
|
||||
["BRK-B.US", "us_equity"],
|
||||
["TD.TO", "ca_equity"],
|
||||
["PNG.V", "ca_equity"],
|
||||
// Argentina (#1543) plus the two suffixes that landed on the backend
|
||||
// earlier and were never classified here, so they read as "other".
|
||||
["GGAL.BA", "ar_equity"],
|
||||
["GOOGL.BA", "ar_equity"],
|
||||
["VOD.L", "uk_equity"],
|
||||
["VIC.VN", "vietnam_equity"],
|
||||
["005930.KS", "kr_equity"],
|
||||
["035720.KQ", "kr_equity"],
|
||||
["RELIANCE.NS", "india_equity"],
|
||||
|
||||
@@ -1227,6 +1227,10 @@ export type SectorAssetClass =
|
||||
| "india_equity"
|
||||
| "kr_equity"
|
||||
| "ca_equity"
|
||||
| "ar_equity"
|
||||
| "uk_equity"
|
||||
| "vietnam_equity"
|
||||
| "index"
|
||||
| "crypto"
|
||||
| "futures"
|
||||
| "forex";
|
||||
|
||||
@@ -9,6 +9,9 @@ export type AssetClass =
|
||||
| "us_equity"
|
||||
| "hk_equity"
|
||||
| "ca_equity"
|
||||
| "ar_equity"
|
||||
| "uk_equity"
|
||||
| "vietnam_equity"
|
||||
| "kr_equity"
|
||||
| "india_equity"
|
||||
| "crypto"
|
||||
@@ -42,6 +45,9 @@ const EQUITY_SUFFIX_MAP: Record<string, AssetClass> = {
|
||||
US: "us_equity",
|
||||
TO: "ca_equity",
|
||||
V: "ca_equity",
|
||||
BA: "ar_equity",
|
||||
L: "uk_equity",
|
||||
VN: "vietnam_equity",
|
||||
KS: "kr_equity",
|
||||
KQ: "kr_equity",
|
||||
NS: "india_equity",
|
||||
|
||||
Reference in new issue
Block a user