mirror of
https://github.com/TauricResearch/TradingAgents.git
synced 2026-09-27 15:02:39 +03:00
feat(config): benchmark Taiwan, Korea, Singapore and the main European exchanges (#1392)
- .TW, .TWO, .KS, .KQ, .SI, .DE, .PA, .AS, .SW and .MI tickers are measured against their regional index instead of SPY
This commit is contained in:
@@ -628,6 +628,16 @@ class TestDeferredReflection:
|
|||||||
"benchmark_map": DEFAULT_CONFIG["benchmark_map"]}
|
"benchmark_map": DEFAULT_CONFIG["benchmark_map"]}
|
||||||
assert settlement.resolve_benchmark("PETR4.SA", config) == "^BVSP"
|
assert settlement.resolve_benchmark("PETR4.SA", config) == "^BVSP"
|
||||||
|
|
||||||
|
@pytest.mark.parametrize(("ticker", "index"), [
|
||||||
|
("2330.TW", "^TWII"), ("6488.TWO", "^TWII"), ("005930.KS", "^KS11"), ("247540.KQ", "^KQ11"), ("D05.SI", "^STI"), ("SAP.DE", "^GDAXI"),
|
||||||
|
("MC.PA", "^FCHI"), ("ASML.AS", "^AEX"), ("NESN.SW", "^SSMI"), ("ENI.MI", "FTSEMIB.MI"),
|
||||||
|
])
|
||||||
|
def test_resolve_benchmark_regional_indexes(self, ticker, index):
|
||||||
|
"""Taiwan, Korea, Singapore and the main European exchanges were measured against SPY."""
|
||||||
|
from tradingagents.default_config import DEFAULT_CONFIG
|
||||||
|
config = {"benchmark_ticker": None, "benchmark_map": DEFAULT_CONFIG["benchmark_map"]}
|
||||||
|
assert settlement.resolve_benchmark(ticker, config) == index
|
||||||
|
|
||||||
def test_resolve_benchmark_us_ticker_defaults_to_spy(self):
|
def test_resolve_benchmark_us_ticker_defaults_to_spy(self):
|
||||||
"""US tickers (no dotted suffix) take the empty-suffix entry."""
|
"""US tickers (no dotted suffix) take the empty-suffix entry."""
|
||||||
config = {
|
config = {
|
||||||
|
|||||||
@@ -161,8 +161,18 @@ DEFAULT_CONFIG = _apply_env_overrides({
|
|||||||
".NS": "^NSEI", # NSE India (Nifty 50)
|
".NS": "^NSEI", # NSE India (Nifty 50)
|
||||||
".BO": "^BSESN", # BSE India (Sensex)
|
".BO": "^BSESN", # BSE India (Sensex)
|
||||||
".T": "^N225", # Tokyo (Nikkei 225)
|
".T": "^N225", # Tokyo (Nikkei 225)
|
||||||
|
".TW": "^TWII", # Taiwan (TAIEX)
|
||||||
|
".TWO": "^TWII", # Taipei OTC (TPEx has no Yahoo index; TAIEX)
|
||||||
|
".KS": "^KS11", # Korea (KOSPI)
|
||||||
|
".KQ": "^KQ11", # Korea (KOSDAQ)
|
||||||
".HK": "^HSI", # Hong Kong (Hang Seng)
|
".HK": "^HSI", # Hong Kong (Hang Seng)
|
||||||
|
".SI": "^STI", # Singapore (Straits Times)
|
||||||
".L": "^FTSE", # London (FTSE 100)
|
".L": "^FTSE", # London (FTSE 100)
|
||||||
|
".DE": "^GDAXI", # Germany (DAX)
|
||||||
|
".PA": "^FCHI", # Paris (CAC 40)
|
||||||
|
".AS": "^AEX", # Amsterdam (AEX)
|
||||||
|
".SW": "^SSMI", # Switzerland (SMI)
|
||||||
|
".MI": "FTSEMIB.MI", # Milan (FTSE MIB)
|
||||||
".TO": "^GSPTSE", # Toronto (TSX Composite)
|
".TO": "^GSPTSE", # Toronto (TSX Composite)
|
||||||
".AX": "^AXJO", # Australia (ASX 200)
|
".AX": "^AXJO", # Australia (ASX 200)
|
||||||
".SS": "000001.SS", # Shanghai (SSE Composite)
|
".SS": "000001.SS", # Shanghai (SSE Composite)
|
||||||
|
|||||||
@@ -16,10 +16,9 @@ def resolve_benchmark(ticker: str, config: dict) -> str:
|
|||||||
``config["benchmark_ticker"]`` overrides everything when set; otherwise
|
``config["benchmark_ticker"]`` overrides everything when set; otherwise
|
||||||
the suffix map matches the ticker's exchange suffix (e.g. ``.T`` for
|
the suffix map matches the ticker's exchange suffix (e.g. ``.T`` for
|
||||||
Tokyo). US-listed tickers without a dotted suffix fall through to the
|
Tokyo). US-listed tickers without a dotted suffix fall through to the
|
||||||
empty-suffix entry (SPY by default). Unrecognised suffixes (including
|
empty-suffix entry (SPY by default). Unrecognised suffixes, including
|
||||||
US tickers with dots like ``BRK.B``) also fall back to the empty-suffix
|
US tickers with dots like ``BRK.B``, also take the empty-suffix entry.
|
||||||
entry, which is the right default because the alpha calculation works
|
Returns are compared as percentages, each in its own currency.
|
||||||
in USD.
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
explicit = config.get("benchmark_ticker")
|
explicit = config.get("benchmark_ticker")
|
||||||
|
|||||||
Reference in New Issue
Block a user