Skip to content

HoleyHan/Terminal-Trade

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Terminal Trade

Professional Desktop Trading Platform

Version Python License Status

πŸ’‘ 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!


πŸ“Έ Screenshots

Overview Tab - Market Data & Company Info

Overview Tab

Financial Statements Analysis

Financial Statements

Backtest Engine - Strategy Testing

Backtest Tab

Options Analytics - Greeks & Volatility

Options Tab

3D Volatility Surface

Volatility Surface

Portfolio Management

Portfolio Tab


πŸš€ Overview

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

⚠️ Project Status

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.

✨ Key Features (v4.0.0)

  • πŸ“ˆ 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

Data Sources

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.


Quick Start

Installation

# 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 keys

πŸš€ Launch Application

Windows (Recommended):

# Double-click to run
START_TERMINAL_TRADE.bat

Python Direct:

python run_app.py

Alternative (Debug Mode):

python -m src.app

Configuration

API Keys (All FREE to register)

Create 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

Future API Support

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

API Configuration

FREE API Keys

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!

Data Sources (All FREE!)

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

Features Overview

Options Analytics

  • Real-time options chain with Greeks
  • Volatility smile and term structure
  • 3D volatility surface
  • Strategy pricing calculator

Backtesting Engine

  • MACD and Advanced MACD strategies
  • Custom strategy framework
  • Performance metrics (Sharpe, Sortino, drawdown)
  • Equity curve visualization

Market Data

  • Real-time quotes and charts
  • Company fundamentals
  • Financial statements (multi-period)
  • News feed integration

Terminal UI

  • Command bar with autocomplete
  • Multi-tab navigation
  • Customizable layouts
  • Professional dark theme

Project Structure

Core Modules:

  • terminal_trade_desktop.py - Main application entry
  • backtest/ - Backtesting engine
  • strategies/ - Trading strategies
  • data/ - Data loaders and cache
  • metrics/ - Performance calculations
  • ui/ - Interface components

See code for detailed structure.


Contributing

We'd love your help! This is a learning project and contributions are very welcome.

How to contribute:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. 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.


Troubleshooting

ModuleNotFoundError:

pip install -r requirements.txt

API Authentication Errors:

  • Verify API keys in .env file
  • 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 & Disclaimer

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

About

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!

About

Open-source trading platform inspired by Bloomberg Terminal. Real-time data, backtesting & options analysis.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 99.9%
  • Batchfile 0.1%