Professional Desktop Trading Platform
π‘ Note: This project is inspired by Bloomberg Terminal, built as a personal learning project using free APIs. It's a work in progress with UI/UX improvements and code optimizations ongoing. Contributions are very welcome!
A desktop trading terminal inspired by Bloomberg Terminal, built as a personal learning project using exclusively free APIs. This platform combines market data, backtesting, options analytics, and portfolio management in one unified interface.
Creator: @letrinhandn
Status: Beta - Active Development
License: MIT - Free and Open Source
This is a personal learning project and work in progress:
- π¨ UI/UX has some glitches and visual inconsistencies
- π§ Code is not 100% complete or optimized
- π Documentation may be incomplete in some areas
- π Bugs and edge cases are being discovered and fixed
- β¨ Features and improvements are added regularly
We welcome contributions! Whether it's bug fixes, feature additions, UI improvements, or documentation - all help is appreciated. This is a community project built for learning and fun.
- π Real-time Market Data - Live quotes, charts, and market analytics
- π° Live News Feed - RSS integration with 6+ professional sources
- πΌ Portfolio Management - Track positions and performance
- π Options Analytics - Greeks calculation and volatility analysis
- π Backtesting Engine - Multi-strategy testing framework
- π Company Research - Fundamentals, financials, and news
- π― Professional UI - Intuitive terminal-style interface
- β‘ High Performance - Optimized for speed and reliability
Currently Using (All FREE):
- Deribit API - Options data, Greeks, volatility analytics (no auth required)
- yfinance - Stock/crypto historical prices and market data
- Finnhub Free Tier - Company fundamentals (60 calls/min)
- FRED API - Economic indicators (optional)
Future Roadmap:
- Additional free APIs integration (Alpha Vantage, Polygon, etc.)
- Premium data sources (Coindesk, OptionMetrics, etc.) - optional
- Custom data connectors
- Real-time WebSocket feeds
- More brokers integration
Note: This is a beta release focusing on free data sources. Paid APIs will be optional features in future versions.
# Clone repository
git clone https://github.com/lenan/Terminal-Trade.git
cd Terminal-Trade
# Install dependencies
pip install -r requirements.txt
# Configure API keys (optional - some features work without keys)
cp .env.example .env
# Edit .env and add your free API keysWindows (Recommended):
# Double-click to run
START_TERMINAL_TRADE.batPython Direct:
python run_app.pyAlternative (Debug Mode):
python -m src.appCreate a .env file for additional features:
| API Key | Purpose | Required | Free Tier |
|---|---|---|---|
FINNHUB_API_KEY |
Company fundamentals | Optional | 60 calls/min |
FRED_API_KEY |
Economic data | Optional | Unlimited |
No keys required for:
- Deribit options data (public API)
- yfinance market data
- Basic backtesting features
The platform is designed to support multiple data sources. Future versions may include:
- Free APIs: Alpha Vantage, Polygon.io, IEX Cloud (free tiers)
- Premium APIs: Optional paid features for advanced data
- Broker APIs: Interactive Brokers, TD Ameritrade, etc.
- Custom connectors: CSV imports, database connections
Current version focuses on free data. Premium features will be opt-in only.
Terminal-Trade/
βββ run_app.py # Main application entry point
βββ requirements.txt # Python dependencies
βββ .env.example # API key template (all FREE APIs)
β
βββ backtest/ # Backtesting engine
β βββ engine.py # Core backtesting logic
β
βββ strategies/ # Trading strategies
β βββ macd_strategy.py # Simple MACD strategy
β βββ macd_advanced.py # Advanced MACD with filters
β βββ options_strategies.py # Options-specific strategies
β
βββ data/ # Data management layer
β βββ data_loader.py # Multi-source data loader (Yahoo, Deribit, etc.)
β βββ cache_manager.py # SQLite/Parquet caching system
β
βββ realtime/ # Real-time data processing
β βββ price_viewer.py # Live price feeds
β βββ chart_display.py # Chart rendering
β βββ fundamentals.py # Company fundamentals fetcher
β βββ tradingview_integration.py
β
βββ metrics/ # Performance metrics
β βββ performance.py # Sharpe, Sortino, drawdown calculations
β βββ options_metrics.py # Greeks and IV calculations
β
βββ ui/ # User interface components
β βββ terminal_v2.py # CLI interface
β βββ visualizer.py # Chart and graph generators
β
βββ core/ # Core utilities
β βββ utils.py # Helper functions
β βββ strategy_base.py # Abstract strategy base class
β
βββ config/ # Configuration
βββ settings.py # Application settings
This project uses 100% FREE APIs. Create a .env file with the following keys:
| API Key | Purpose | Cost | Registration |
|---|---|---|---|
FINNHUB_API_KEY |
Company fundamentals, financial statements | π FREE (60 calls/min) | finnhub.io |
FRED_API_KEY |
Economic indicators (optional) | π FREE | fred.stlouisfed.org |
Note:
- Deribit API is FREE and requires no authentication for public market data (options chains, Greeks)
- yfinance is FREE for stock/crypto historical data
- All APIs used in this project are FREE - no paid subscriptions needed!
The application uses intelligent data routing with free APIs:
Free Operations:
- Deribit API (FREE): Options chain data, live Greeks, volatility analytics
- yfinance (FREE): Stock/crypto historical prices and market data
- Finnhub Free Tier (FREE): Company fundamentals, financial statements (60 calls/min)
- FRED API (FREE): Economic indicators
Features:
- Auto-refresh options chain every 60s
- Volatility smile and term structure (live snapshots)
- Greeks monitoring (continuous updates)
- 3D volatility surface (using free Deribit current data)
- Local caching to minimize API calls
- Real-time options chain with Greeks
- Volatility smile and term structure
- 3D volatility surface
- Strategy pricing calculator
- MACD and Advanced MACD strategies
- Custom strategy framework
- Performance metrics (Sharpe, Sortino, drawdown)
- Equity curve visualization
- Real-time quotes and charts
- Company fundamentals
- Financial statements (multi-period)
- News feed integration
- Command bar with autocomplete
- Multi-tab navigation
- Customizable layouts
- Professional dark theme
Core Modules:
terminal_trade_desktop.py- Main application entrybacktest/- Backtesting enginestrategies/- Trading strategiesdata/- Data loaders and cachemetrics/- Performance calculationsui/- Interface components
See code for detailed structure.
We'd love your help! This is a learning project and contributions are very welcome.
How to contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Areas where we need help:
- π¨ UI/UX improvements and bug fixes
- π§ Code optimization and refactoring
- π New data source integrations (free APIs preferred)
- π Additional trading strategies
- π Documentation improvements
- π Bug reports and fixes
- π‘ Feature suggestions and implementations
All skill levels welcome! Whether you're fixing a typo or adding a major feature, every contribution helps improve the project.
ModuleNotFoundError:
pip install -r requirements.txtAPI Authentication Errors:
- Verify API keys in
.envfile - Check key validity on provider websites (all are FREE to register)
- Ensure no extra spaces or quotes in
.env - Finnhub free tier: 60 calls/minute limit
Rate Limit Exceeded:
- Finnhub: Wait 1 minute or upgrade to paid tier (optional)
- Deribit: No rate limits on public data
- yfinance: No authentication required
UI Not Responding:
- Check terminal for error messages
- Verify PyQt6 installation
- Try:
pip install --upgrade PyQt6
License: MIT - Free and open source
Disclaimer:
- Personal learning project inspired by Bloomberg Terminal
- Built for educational and experimental purposes only
- Not financial advice - Do not use for real trading decisions
- No guarantees on data accuracy, performance, or reliability
- Use at your own risk - Creator assumes no liability
- This is a fun project using free APIs to learn and explore
- Work in progress - Expect bugs, glitches, and incomplete features
Project: Terminal Trade
Inspiration: Bloomberg Terminal (professional version)
Creator: @letrinhandn
Version: 4.0.0 (Beta)
Status: Active Development
Built with:
- Python 3.11+ & PyQt6
- Free APIs: yfinance, Finnhub, Deribit, FRED
- Open-source libraries: pandas, matplotlib, plotly
Acknowledgments:
- Bloomberg Terminal for inspiration
- Open-source community (Python, PyQt6, pandas, matplotlib)
- Free API providers (Deribit, Finnhub, yfinance, FRED)
- All contributors and supporters
Built with β€οΈ for learning, fun, and the trading community
This is a beta project under active development. Features, UI, and code are being improved continuously. Contributions welcome!





