A lightweight native macOS application that tracks global trading sessions directly in your Menu Bar. Keep market information at your fingertips without cluttering your screen.
- Minimalist UI: Displays only in the top menu bar (Status Bar)
- Smart Tracking: Automatically detects the current trading session (Hong Kong, Frankfurt/XETRA, London, NYSE pre/main, CME)
- CME Gap Alert: Indicates volatility risks when markets open (weekends and Monday pre-open)
- BTC/ETH Premium: Spot prices from Coinbase and premium vs Binance in the menu
- Low Resource Usage: Built with Python using native macOS libraries (PyObjC)
The application uses the zoneinfo library (Python 3.9+ standard) for correct handling of daylight saving time transitions. This is critical for trading, as exchange opening times relative to UTC change twice a year.
Main tracked sessions:
- HKEX (Hong Kong) — Asia/Hong_Kong
- XETRA (Frankfurt) — Europe/Berlin
- LSE (London) — Europe/London
- NYSE (New York) — pre-market and main session, America/New_York
- CME (Chicago) — futures session, America/Chicago (with weekend wrap logic)
Note: The application automatically matches your Mac's system time with the configured exchange time zones, ensuring accurate display.
- macOS (Intel or Apple Silicon)
- Python 3.12 (recommended version for stable builds)
# Clone the repository
git clone https://github.com/yourusername/trading-bar.git
cd trading-bar
# Create a virtual environment
python3.12 -m venv .venv
source .venv/bin/activate
# Install dependencies
pip install pyobjc requestsTo create a standalone application, PyInstaller is used as it most correctly packages dependencies in newer macOS versions (including Sonoma and Sequoia).
If you encounter an "Operation not permitted" error during build, you need to grant Terminal full disk access:
System Settings → Privacy & Security → Full Disk Access → Enable Terminal
Execute the following command in the project root:
pip install pyinstaller
pyinstaller --noconsole --windowed --onefile --hidden-import=zoneinfo --name "TradingBar" main.py--noconsoleand--windowed: The application won't open an extra terminal window--onefile: All dependencies are packaged into a single executable file--hidden-import=zoneinfo: Forces inclusion of the timezone database
After the build process completes:
- Navigate to the
dist/folder - Drag
TradingBar.appto yourApplicationsfolder
To make the application launch automatically at system startup:
- Go to System Settings → General → Login Items
- In the "Open at Login" section, click the + button
- Select
TradingBar.appfrom your Applications folder
MIT License. Use for any purpose. Happy trading!