TradeKit
Note: I am currently gathering feedback on what to include in this image, this is not "final". I will add more packages based on feedback and eventually freeze the versions. Let me know your thoughts. Demo Video
The goal of TradeKit is to maintain a collection of open source server components and Python libraries for building your own financial applications, data analysis tools, and trading bots. These tools are packaged in a Docker container so that anyone can easily get up and running locally and develop with these components regardless of their operating system. Once a developer has successfully built their project locally, the Docker container can easily be deployed to a server (such as VPS on DigitalOcean or a cloud provider like AWS) for production use.
Server Components
- Debian Linux 10 - a stable and dependable linux distribution for servers
- Python 3.8 - the most popular language for data science, analysis, and machine learning
- PostgreSQL 12 - the world's most advanced open source database
- TimeScaleDB 2.0 - open source time-series database built on top of PostgreSQL
Web Frameworks
- FastAPI - FastAPI is a modern, fast (high-performance), web framework for building APIs with Python 3.6+ based on standard Python type hints.
- Flask - a lightweight, easy to learn microframework for Python web apps
Data Analysis
- pandas - library for data analysis and manipulation of numerical tables and time series
- NumPy - library for multi-dimensional arrays and matrices, mathematical functions
- SciPy - modules for linear algebra, integration, FFT, signal and image processing
- pandas-datareader - remote data access for pandas
Data Visualization
- matplotlib - comprehensive library for creating static, animated, and interactive visualizations in Python
- plotly - provides online graphing, analytics, and statistics tools for individuals and collaboration, as well as scientific graphing libraries for Python
- dash - build & deploy beautiful analytic web apps using Python
- mplfinance - matplotlib utilities for the visualization, and visual analysis, of financial data
- jupyterlab - web-based interactive development environment for Jupyter notebooks, code, and data pillow
Technical Analysis
- ta - Technical Analysis Library in Python based on pandas
- TA-Lib - Python wrapper for TA-Lib
- bta-lib - backtrader ta-lib
- pandas-ta - Pandas Technical Analysis (Pandas TA) is an easy to use library that leverages the Pandas library with more than 120 Indicators and Utility functions
- tulipy - Python bindings for Tulip Indicators
Database Libraries and Data Storage
- psycopg2 - most popular PostgreSQL database adapter for the Python programming language.
- sqlalchemy - SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL.
- redis - open source, in-memory data structure store, used as a database, cache, and message broker
- h5py - Pythonic interface to the HDF5 binary data format
Broker APIs
- alpaca-trade-api - python library for the Alpaca Commission Free Trading API. It allows rapid trading algo development easily, with support for both REST and streaming data interfaces.
- python-binance - unofficial Python wrapper for the Binance exchange REST API v3
- tda-api - tda-api is an unofficial wrapper around the TD Ameritrade APIs. It strives to be as thin and unopinionated as possible, offering an elegant programmatic interface over each endpoint
- ib_insync - The goal of the IB-insync library is to make working with the Trader Workstation API from Interactive Brokers as easy as possible.
- robin-stocks - simple to use functions to interact with the Robinhood Private API
Data Providers
- intrinio-sdk - Intrinio provides US market data, company fundamentals data, options data and SEC data, powered by advanced data quality technology
- polygon-api-client - python client for Polygon.io, provider of real-time and historical financial market data APIs
- iexfinance - Python SDK for IEX Cloud. Easy-to-use toolkit to obtain data for Stocks, ETFs, Mutual Funds, Forex/Currencies, Options, Commodities, Bonds, and Cryptocurrencies
- yfinance - yfinance offers a reliable, threaded, and Pythonic way to download historical market data from Yahoo! finance.
- quandl - source for financial, economic, and alternative datasets, serving investment professionals
- alpha-vantage - The Alpha Vantage Stock API provides free JSON access to the stock market, plus a comprehensive set of technical indicators
- sec-edgar-downloader - package for downloading company filings from the SEC EDGAR database
Backtesting
- backtrader - feature-rich Python framework for backtesting and trading
- pyalgotrade - Python Algorithmic Trading Library with focus on backtesting and support for paper-trading and live-trading
- bt - bt is a flexible backtesting framework for Python used to test quantitative trading strategies
- backtesting - Backtesting.py is a Python framework for inferring viability of trading strategies on historical (past) data
Portfolio and Performance Analysis
- pyfolio - library for performance and risk analysis of financial portfolios developed by Quantopian
- finquant - program for financial portfolio management, analysis and optimisation
Web Server, Task Queue
- uvicorn - lightning-fast ASGI server implementation
- gunicorn - Python WSGI HTTP Server for UNIX
- celery - simple, flexible, distributed task queue
Networking
- requests - elegant and simple HTTP library for Python
- boto3 - Amazon Web Services (AWS) SDK for Python. It enables Python developers to create, configure, and manage AWS services, such as EC2 and S3.
- urllib3 - powerful, user-friendly HTTP client for Python
- websocket-client - websocket client for python. This provide the low level APIs for WebSocket
- websockets - library for building WebSocket servers and clients in Python
Utilities
- beautifulsoup4 - library for screen-scraping
- pendulum - package to assist with date and time manipulation
- click - package for creating beautiful command line interfaces in a composable way with as little code as necessary
- passlib - password hashing library
Machine Learning
- tensorflow - open source library to help you develop and train ML models
- scikit-learn - machine learning library
- keras - deep learning framework
- pytorch - optimized tensor library for deep learning using GPUs and CPUs
- opencv-python - open source computer vision library