fda6b6a2970b25ad719e1e64e16386c3d1c46114
Ticker normalization (_normalize_ticker): - EUR/USD slash-format → EURUSD=X (was passed raw to yfinance → 500/404 spam) - bare 6-char forex pairs EURUSD/USDJPY etc → append =X - commodity alias table: WHEAT→ZW=F, CORN→ZC=F, WTI→CL=F, BRENT→BZ=F, GOLD→GC=F, SILVER→SI=F, NATGAS→NG=F, SUGAR→SB=F, + 15 others - also normalize underlying at log_trade_entries time so stored tickers are already canonical before MtM lookups GPT-4o 429 rate limit: - _chat() retries up to 3× on rate_limit errors, respects retry-after hint from error message (e.g. "try again in 12.37s"), falls back to 2^n×5s - batch scorer: parallel workers 4→2 to halve the token burst per cycle (2 concurrent batches × ~6K tokens vs 4 × ~6K = 24K burst at 30K limit) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Description
No description provided
Languages
Python
46.8%
TypeScript
44.9%
HTML
7.9%
Shell
0.1%