Skip to content

v1.5.0 — International Currency Support

Latest

Choose a tag to compare

@furic furic released this 28 Apr 10:24
· 4 commits to main since this release
ddffe32

What's New

International Currency Support

  • Portfolio now supports non-USD tickers (LSE, Frankfurt, and other exchanges) — configure defaultCurrency in config.json and holdings are automatically converted
  • FX rates fetched live from Yahoo Finance (GBPUSD=X convention) in a single batch per run — no extra API key needed
  • Sub-unit fix for exchanges quoting in fractional units: GBp/GBX (LSE pence → GBP), ILA (TASE agorot), ZAc (JSE cents) automatically divided by 100
  • All prices, limit orders, dividends, suggested buy values, and portfolio stats displayed in your default currency
  • Multi-currency caveat shown in emails and Telegram when the portfolio spans currencies
  • totalPortfolioValueUSD deprecated in favour of totalPortfolioValue + defaultCurrency in config

Ticker Name Tooltips

  • Company full names shown as hover tooltips on ticker symbols in all emails (daily, intraday, weekly, refresh)
  • Names sourced from Yahoo Finance longName field

CI & Code Quality

  • GitHub Actions CI now runs on all pull requests — catches type errors and formatting drift before merge
  • Prettier formatting enforced across src/ and test/
  • Unit tests (63 tests via node:test, zero dependencies) covering formatMoney, applyFxRate, and SUB_UNIT_FIX
  • npm test — unit tests; npm run smoke — live API smoke tests (manual)

Bug Fixes & Improvements

  • Two-stage AI analysis (Observe → Decide) improves STRONG BUY consistency by separating data parsing from decision-making
  • Earnings calendar guard: hard HOLD if earnings ≤3 days, cap at BUY if ≤7 days
  • Guard pipeline (guards.ts) programmatically enforces STRONG BUY criteria as a post-AI safety net
  • ATR (Average True Range), Stochastic %K/%D, and OBV trend added to technical indicators
  • News sentiment scoring: each headline rated bullish/bearish/neutral + impact with overall per-ticker sentiment fed to AI
  • Reasoning persistence: 7-day rolling history of AI conviction trends shown to Gemini each run
  • Fixed STRONG BUY over-strictness and bond ETF confidence constant

Full Changelog: v1.4.0...v1.5.0