What started as a quick countdown timer for the London Stock Exchange close has turned into a full-blown global financial markets dashboard — and it’s all built in PowerShell.

Today I’m releasing PSExchangeClock on the PowerShell Gallery.

The Origin Story

Back in 2021, I was supporting traders and needed a simple way to see when the LSE was closing. So I threw together a wee WPF timer in PowerShell — about 80 lines, hardcoded date, job done.

Then I needed NASDAQ and NYSE. Then Frankfurt and Tokyo. Then I thought “wouldn’t a world map be cool?” and before I knew it, I had a 3,500-line WPF dashboard covering 20 exchanges across every major timezone.

It was time to give it a proper name and ship it as a module.

What It Does

PSExchangeClock is a real-time WPF dashboard that monitors global stock exchange closing times alongside live market data.

Countdown Timers

The core feature — live countdown timers for 20 major exchanges worldwide. Each card shows the exchange status with color transitions:

  • Green — market open, plenty of time
  • Yellow — closing within 30 minutes
  • Red — closing within 15 minutes
  • Purple — market holiday

Desktop notifications pop up at 30, 15, and 5 minutes before close (configurable).

Interactive World Map

Click any exchange marker on the NASA Earth at Night satellite map to see a flyout panel with full exchange details — primary index, market cap, listed companies, currency, regulator, description, and live status.

Map Overlays

The map toolbar includes a toggleable overlay system with three categories:

  • Geo layers — day/night terminator, timezone bands, political borders, and timezone boundaries
  • Live data — earthquakes from USGS, volcano alerts from the Smithsonian GVP, and armed conflict zones from UCDP/PRIO
  • Infrastructure — submarine cable routes and major power plants colour-coded by fuel type (nuclear, coal, gas, hydro, wind, solar, geothermal, oil)

When conflict zones, power plants, or volcanoes are active, an overlay legend appears at the bottom-left of the map showing what the markers and colours mean.

Market Data Sidebar

Six tabbed panels of live data, no terminal required:

  • News — Financial headlines from Reuters, BBC, and CNBC RSS feeds
  • Forex — Live currency rates via Frankfurter API
  • Crypto — Top 10 cryptocurrency prices from CoinGecko
  • Indices — S&P 500, NASDAQ, DAX, FTSE 100, Nikkei 225 (via ETF proxies)
  • Commodities — Gold, Silver, Oil, Natural Gas, Wheat, Platinum
  • Stocks — Individual quote lookup with company profiles and statistics

All Exchanges Tab

A sortable, filterable DataGrid showing all 20 exchanges with live status indicators. Select/deselect exchanges to customise your dashboard.

Settings

Configure everything from the UI — notification thresholds, API keys (securely stored via Windows Credential Manager), display preferences, and secrets backend.

Install It

Install-Module PSExchangeClock -Scope CurrentUser
Start-PSExchangeClock

That’s it. Two commands. The dashboard launches, downloads the NASA map image on first run, and you’re monitoring 20 exchanges.

For the full feature set (indices, commodities, stock quotes), grab free API keys from Twelve Data and Alpha Vantage and enter them in the Settings tab. News, forex, and crypto work without any keys.

Technical Bits

  • ~4,500 lines of PowerShell + WPF XAML — no compiled code, no C#, just scripts
  • 5 API integrations — Frankfurter, CoinGecko, Twelve Data, Alpha Vantage, Wikipedia
  • 3 secure storage backends — Windows Credential Manager, SecretManagement module, CliXml
  • Offline fallback — hardcoded exchange data for all 20 exchanges
  • CI/CD — PSScriptAnalyzer linting on every PR, automatic PSGallery publish on version tags

Give it a try, star the repo if you find it useful, and PRs are always welcome.


<
Previous Post
Powershell Profiles Keepass And Psbluesky
>
Blog Archive
Archive of all previous blog posts