Repository: PFund-Software-Ltd/pytrade.org Branch: main Commit: 3e816eee2948 Files: 70 Total size: 70.5 KB Directory structure: gitextract_qjpnztpu/ ├── .github/ │ └── workflows/ │ └── daily-deploy.yml ├── .gitignore ├── LICENSE ├── README.md ├── components/ │ ├── LibBlock.mdx │ ├── PypiBadge.jsx │ └── ReposTable.mdx ├── contents/ │ ├── FinanceDatabase.mdx │ ├── PyPortfolio0pt.mdx │ ├── Superalgos.mdx │ ├── alphalens-reloaded.mdx │ ├── arch.mdx │ ├── backtestingpy.mdx │ ├── backtrader.mdx │ ├── binance-public-data.mdx │ ├── blankly.mdx │ ├── bt.mdx │ ├── empyrical-reloaded.mdx │ ├── ffn.mdx │ ├── freqtrade.mdx │ ├── hummingbot.mdx │ ├── jesse.mdx │ ├── lean.mdx │ ├── nautilus_trader.mdx │ ├── pfeed.mdx │ ├── pfund.mdx │ ├── pybroker.mdx │ ├── pyfolio-reloaded.mdx │ ├── pyod.mdx │ ├── qstrader.mdx │ ├── qtpylib.mdx │ ├── quantstats.mdx │ ├── riskfolio-lib.mdx │ ├── skfolio.mdx │ ├── sktime.mdx │ ├── stumpy.mdx │ ├── trading-strategy.mdx │ ├── tsai.mdx │ ├── tsfresh.mdx │ ├── tslearn.mdx │ ├── vectorbt.mdx │ ├── vnpy.mdx │ ├── yfinance.mdx │ └── zipline_reloaded.mdx ├── next.config.mjs ├── package.json ├── pages/ │ ├── _app.jsx │ ├── _meta.js │ ├── analytics.mdx │ ├── api_integrations.mdx │ ├── backtest.mdx │ ├── backtest_data.mdx │ ├── competitions.mdx │ ├── dashboards.mdx │ ├── data_libs.mdx │ ├── data_tools.mdx │ ├── gpu_providers.mdx │ ├── index.mdx │ ├── live_data.mdx │ ├── ml_tools.mdx │ ├── mlops_tools.mdx │ ├── models.mdx │ ├── researches.mdx │ ├── resources.mdx │ ├── strategies.mdx │ ├── trading.mdx │ ├── trading_venues.mdx │ └── ts_analysis.mdx ├── theme.config.jsx └── utils/ └── getGitHubReposData.js ================================================ FILE CONTENTS ================================================ ================================================ FILE: .github/workflows/daily-deploy.yml ================================================ name: Daily Site Deploy on: # Runs on pushes targeting the default branch push: branches: ["main"] pull_request: branches: ["main"] # Runs at 00:00 UTC daily schedule: - cron: '0 0 * * *' # Allows you to run this workflow manually from the Actions tab workflow_dispatch: # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: contents: write pages: write id-token: write # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. concurrency: group: "pages" cancel-in-progress: false jobs: build: runs-on: ubuntu-latest steps: - name: Checkout Repository uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: "20" - name: Install pnpm run: npm install -g pnpm # Manually cache the pnpm store and node_modules - name: Cache pnpm store and node_modules uses: actions/cache@v4 with: path: | ~/.pnpm-store **/node_modules key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm- - name: Setup Pages uses: actions/configure-pages@v4 with: # Automatically inject basePath in your Next.js configuration file and disable # server side image optimization (https://nextjs.org/docs/api-reference/next/image#unoptimized). # # You may remove this line if you want to manage the configuration yourself. static_site_generator: next # - name: Restore cache # uses: actions/cache@v4 # with: # path: | # .next/cache # # Generate a new cache whenever packages or source files change. # key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }} # # If source files changed but packages didn't, rebuild from a prior cache. # restore-keys: | # ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}- - name: Install Dependencies run: pnpm install - name: Build run: pnpm run build env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NEXT_PUBLIC_GA_TRACKING_ID: ${{ secrets.GA_TRACKING_ID }} - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: path: ./out deploy: environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest needs: build steps: - name: Publish to GitHub Pages 🚀 id: deployment uses: actions/deploy-pages@v4 ================================================ FILE: .gitignore ================================================ node_modules/ # nextjs .next/ out/ # local stuff **/.local/ # vscode settings **/.vscode/ # macOS .DS_Store # Environments .env .venv env/ venv/ ENV/ env.bak/ venv.bak/ ================================================ FILE: LICENSE ================================================ Creative Commons Legal Code CC0 1.0 Universal CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER. Statement of Purpose The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work"). Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others. For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights. 1. Copyright and Related Rights. A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following: i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; ii. moral rights retained by the original author(s) and/or performer(s); iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below; v. rights protecting the extraction, dissemination, use and reuse of data in a Work; vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof. 2. Waiver. To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. 3. Public License Fallback. Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. 4. Limitations and Disclaimers. a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document. b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work. d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work. ================================================ FILE: README.md ================================================ [![Twitter Follow](https://img.shields.io/twitter/follow/pytradeorg?style=social)](https://x.com/pytradeorg) # Python packages and resources for algo-trading Inspired by [PyViz](https://pyviz.org/), [PyTrade](https://pytrade.org) is a website showing a curated list of Python libraries and resources for algorithmic trading. Think of it as an **awesome-algo-trading** list on GitHub, but with a better presentation. > This website is owned by [PFund.ai](https://pfund.ai), a trading platform that bridges algo-trading and manual trading using AI (LLM). ### Table of Contents - [Trading Frameworks](https://pytrade.org/trading), full-fledged frameworks that support backtesting, live trading etc. - [Backtesting Frameworks](https://pytrade.org/backtest), do **NOT** support live trading - [Strategies](https://pytrade.org/strategies), shared trading strategies, examples and templates - [Models](https://pytrade.org/models), shared machine learning models for trading - [Time Series Analysis](https://pytrade.org/ts_analysis), for analyzing time series data - [Analytics](https://pytrade.org/analytics), for showing performance metrics - [Backtesting Data](https://pytrade.org/backtest_data), providing data for backtesting, free or paid - [Live Trading Data](https://pytrade.org/live_data), providing data for live trading - [Data Libraries](https://pytrade.org/data_libs), for getting data from the data sources - [Machine Learning Tools](https://pytrade.org/ml_tools), for applying machine learning on data - [MLOps Tools](https://pytrade.org/mlops_tools), for applying machine learning operations - [Data Tools](https://pytrade.org/data_tools), for manipulating data, e.g. pandas - [Research Tools](https://pytrade.org/researches), for doing research on data - [Dashboard Tools](https://pytrade.org/dashboards), for creating dashboards for trading - [Brokers & Exchanges](https://pytrade.org/trading_venues), providing APIs to support algo-trading - [GPU Providers](https://pytrade.org/gpu_providers), providing GPUs to speed up training - [API Integrations](https://pytrade.org/api_integrations), integrating with trading APIs without any frameworks - [Competitions](https://pytrade.org/competitions), for algo-trading competitions - [Resources](https://pytrade.org/resources), other resources about algo-trading ### Installation ```bash pnpm install ``` ### Development ```bash pnpm dev ``` ### Build Static Files & Run ```bash pnpm build && pnpm start ``` ## Curated List ### Trading Frameworks (support backtesting and live trading) - [Lean](https://github.com/QuantConnect/Lean) - Lean Algorithmic Trading Engine by QuantConnect (Python, C#) - [nautilus_trader](https://github.com/nautechsystems/nautilus_trader) - A high-performance algorithmic trading platform and event-driven backtester - [backtrader](https://github.com/mementum/backtrader) - Python Backtesting library for trading strategies - [pfund](https://github.com/PFund-Software-Ltd/pfund) - An All-in-One Algo-Trading Framework: Backtest -> Train -> Trade -> Monitor. Machine / Deep Learning Ready. Supports All Trading: TradFi+CeFi+DeFi. Code Once, Trade Anywhere. - [trading-strategy](https://github.com/tradingstrategy-ai/trading-strategy) - Python framework for quantitative financial analysis and trading algorithms on decentralised exchanges - [blankly](https://github.com/blankly-finance/blankly) - 🚀 💸 Easily build, backtest and deploy your algo in just a few lines of code. Trade stocks, cryptos, and forex across exchanges w/ one package. - [vnpy](https://github.com/vnpy/vnpy) - a Python-based open source quantitative trading system development framework - [freqtrade](https://github.com/freqtrade/freqtrade) - Free, open source crypto trading bot - [hummingbot](https://github.com/hummingbot/hummingbot) - Open source software that helps you create and deploy high-frequency crypto trading bots - [jesse](https://github.com/jesse-ai/jesse) - An advanced crypto trading bot written in Python - [Superalgos](https://github.com/Superalgos/Superalgos) - Free, open-source crypto trading bot, automated bitcoin / cryptocurrency trading software, algorithmic trading bots. Visually design your crypto trading bot, leveraging an integrated charting system, data-mining, backtesting, paper trading, and multi-server crypto bot deployments. - [qstrader](https://github.com/mhallsmoore/qstrader) - QuantStart.com - QSTrader backtesting simulation engine. - [qtpylib](https://github.com/ranaroussi/qtpylib) - QTPyLib, Pythonic Algorithmic Trading - [Zipline-reloaded](https://github.com/stefan-jansen/zipline-reloaded) - Zipline, a Pythonic Algorithmic Trading Library ### Backtesting Frameworks (only support backtesting) - [vectorbt](https://github.com/polakowo/vectorbt) - Find your trading edge using the fastest engine for backtesting, algorithmic trading, and research. - [bt](https://github.com/pmorissette/bt) - Flexible backtesting library for Python. - [pybroker](https://github.com/edtechre/pybroker) - Algorithmic trading in Python with machine learning. - [backtesting.py](https://github.com/kernc/backtesting.py) - 🔍 📈 🐍 💰 Backtest trading strategies in Python. ### Trading Strategies - [Strategies on QuantConnect](https://www.quantconnect.com/learning/articles/investment-strategy-library) ### Machine Learning Models ### Time Series Analysis - [tsai](https://github.com/timeseriesAI/tsai) - Time series Timeseries Deep Learning Machine Learning Python Pytorch fastai | State-of-the-art Deep Learning library for Time Series and Sequences in Pytorch / fastai - [stumpy](https://github.com/TDAmeritrade/stumpy) - STUMPY is a powerful and scalable Python library for modern time series analysis - [tsfresh](https://github.com/blue-yonder/tsfresh) - Automatic extraction of relevant features from time series - [sktime](https://github.com/sktime/sktime) - A unified framework for machine learning with time series - [tslearn](https://github.com/tslearn-team/tslearn) - The machine learning toolkit for time series analysis in Python - [arch](https://github.com/bashtage/arch) - ARCH models in Python - [pyod](https://github.com/yzhao062/pyod) - A Python library for outlier and anomaly detection, integrating classical and deep learning techniques ### Analytics - [quantstats](https://github.com/ranaroussi/quantstats) - Portfolio analytics for quants, written in Python. - [skfolio](https://github.com/skfolio/skfolio) - Python library for portfolio optimization built on top of scikit-learn. - [Riskfolio-Lib](https://github.com/dcajasn/Riskfolio-Lib) - Portfolio Optimization and Quantitative Strategic Asset Allocation in Python. - [PyPortfolioOpt](https://github.com/robertmartin8/PyPortfolioOpt) - Financial portfolio optimisation in Python, including classical efficient frontier, Black-Litterman, Hierarchical Risk Parity. - [ffn](https://github.com/pmorissette/ffn) - ffn - a financial function library for Python. - [pyfolio-reloaded](https://github.com/stefan-jansen/pyfolio-reloaded) - Portfolio and risk analytics in Python. - [alphalens-reloaded](https://github.com/stefan-jansen/alphalens-reloaded) - Performance analysis of predictive (alpha) stock factors. - [empyrical-reloaded](https://github.com/stefan-jansen/empyrical-reloaded) - Common financial risk and performance metrics. Used by zipline and pyfolio. ### Backtesting Data #### Stock Data / TradFi Data - [FirstRateData](https://firstratedata.com/) - [Alpaca Data](https://alpaca.markets/data) - [Polygon](https://polygon.io/) #### Crypto Data - [Bybit](https://public.bybit.com/trading/) - [Bybit Spot](https://public.bybit.com/spot/) - [Binance](https://www.binance.com/en/landing/data) - [OKX](https://www.okx.com/data-download) - [CCXT](https://docs.ccxt.com/#/) #### DeFi Data - [Trading Strategy](https://tradingstrategy.ai/trading-view) ### Live Trading Data #### TradFi Data - [Interactive Brokers](https://www.interactivebrokers.ca/en/pricing/market-data-pricing.php) - [DTN IQFeed](https://www.dtn.com/refined-fuels/trader/iqfeed/) - [Alpaca Data](https://alpaca.markets/data) ### Data Libraries - [yfinance](https://github.com/ranaroussi/yfinance) - Download market data from Yahoo! Finance's API - [binance-public-data](https://github.com/binance/binance-public-data) - Details on how to get Binance public data - [pfeed](https://github.com/PFund-Software-Ltd/pfeed) - A Data Pipeline for Algo-Trading: Download -> Clean (ETL/ELT) -> Store Data. Supports Various Data Sources. Clean Once and Forget - [FinanceDatabase](https://github.com/JerBouma/FinanceDatabase) - This is a database of 300.000+ symbols containing Equities, ETFs, Funds, Indices, Currencies, Cryptocurrencies and Money Markets ### Machine Learning Tools - [scikit-learn](https://github.com/scikit-learn/scikit-learn) - scikit-learn: machine learning in Python - [pytorch](https://github.com/pytorch/pytorch) - Tensors and Dynamic neural networks in Python with strong GPU acceleration - [pyro](https://github.com/pyro-ppl/pyro) - Deep universal probabilistic programming with Python and PyTorch ### Machine Learing Operations Tools - [mlflow](https://github.com/mlflow/mlflow) - Open source platform for the machine learning lifecycle - [feast](https://github.com/feast-dev/feast) - The Open Source Feature Store for Machine Learning - [wandb](https://github.com/wandb/wandb) - The AI developer platform. Use Weights & Biases to train and fine-tune models, and manage models from experimentation to production. - [dvc](https://github.com/iterative/dvc) - 🦉 ML Experiments and Data Management with Git ### Data Tools - [pandas](https://github.com/pandas-dev/pandas) – Flexible and powerful data analysis/manipulation library for Python, providing labeled data structures similar to R data.frame objects, statistical functions, and much more - [polars](https://github.com/pola-rs/polars) – Dataframes powered by a multithreaded, vectorized query engine, written in Rust - [spark](https://github.com/apache/spark) – Apache Spark - A unified analytics engine for large-scale data processing - [dask](https://github.com/dask/dask) – Parallel computing with task scheduling - [modin](https://github.com/modin-project/modin) – Modin: Scale your Pandas workflows by changing a single line of code - [duckdb](https://github.com/duckdb/duckdb) – DuckDB is an analytical in-process SQL database management system - [vaex](https://github.com/vaexio/vaex) – Out-of-Core hybrid Apache Arrow/NumPy DataFrame for Python, ML, visualization, and exploration of big tabular data at a billion rows per second 🚀 - [fugue](https://github.com/fugue-project/fugue) – A unified interface for distributed computing. Fugue executes SQL, Python, Pandas, and Polars code on Spark, Dask, and Ray without any rewrites - [ibis](https://github.com/ibis-project/ibis) – The portable Python dataframe library - [Daft](https://github.com/Eventual-Inc/Daft) – Distributed DataFrame for Python designed for the cloud, powered by Rust ### Research Tools - [Quadratic](https://github.com/quadratichq/quadratic) – Quadratic | Spreadsheet with Python, SQL, and AI - [OpenBBTerminal](https://github.com/OpenBB-finance/OpenBBTerminal) – Investment Research for Everyone, Everywhere - [qlib](https://github.com/microsoft/qlib) – Qlib is an AI-oriented quantitative investment platform that aims to realize the potential, empower research, and create value using AI technologies in quantitative investment, from exploring ideas to implementing productions. Qlib supports diverse machine learning modeling paradigms. including supervised learning, market dynamics modeling, and RL ### Dashboard Tools - [Streamlit](https://github.com/streamlit/streamlit) – Streamlit — A faster way to build and share data apps - [Gradio](https://github.com/gradio-app/gradio) – Build and share delightful machine learning apps, all in Python. 🌟 Star to support our work! - [Dash](https://github.com/plotly/dash) – Data Apps & Dashboards for Python. No JavaScript Required - [Panel](https://github.com/holoviz/panel) – Panel: The powerful data exploration & web app framework for Python - [Taipy](https://github.com/AxeldeRomblay/taipy) – Turns Data and AI algorithms into production-ready web applications in no time ### GPU Providers #### Notebook-based - [Colab](https://colab.research.google.com/) - [Deepnote](https://deepnote.com/) - [Kaggle](https://www.kaggle.com/) - [Lightning.ai](https://lightning.ai/) #### Cloud-based - [Vast.ai](https://vast.ai/) - Vast.ai is the market leader in low-cost cloud GPU rental. Use one simple interface to save 5-6X on GPU compute. - [Lambda Labs](https://lambdalabs.com/) - The GPU Cloud for AI, On-demand & reserved cloud NVIDIA GPUs for AI training & inference - [Paperspace](https://www.paperspace.com/) - Build & Run AI/ML Models on NVIDIA H100 GPUs, Develop, train, and deploy AI applications. Join over 500,000 builders on Paperspace. - [Hyperstack](https://www.hyperstack.cloud/) - A Supercloud Specialised for AI - [Datacrunch.io](https://datacrunch.io/) - The ML Cloud, Premium dedicated GPU servers and clusters, Model inference services - [Nimbix](https://www.nimbix.net/) - On-demand access to GPU and CPU compute accelerators now and at scale. - [TensorDock](https://tensordock.com/) - We make the GPU servers that cost too much on other clouds available for a low, hourly price. - [Saturn Cloud](https://www.saturncloud.io/) - Saturn Cloud provides customizable, ready-to-use cloud environments for collaborative data teams. Run analyses, train models, deploy APIs, and more ### API Integrations/Connectors #### Traditional Brokers - [ibkr-docker](https://github.com/extrange/ibkr-docker) - Run IBKR Gateway/TWS in a Docker container - [ib_insync](https://github.com/erdewit/ib_insync) - Python sync/async framework for Interactive Brokers API - [alpaca-py](https://github.com/alpacahq/alpaca-py) - The Official Python SDK for Alpaca API #### Cryptocurrency Exchanges - [CCXT](https://github.com/ccxt/ccxt) - A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading API with support for more than 100 bitcoin/altcoin exchanges - [binance-connector-python](https://github.com/binance/binance-connector-python) - a simple connector to Binance Public API - [pybit](https://github.com/bybit-exchange/pybit) - Official Python3 API connector for Bybit's HTTP and WebSockets APIs. - [python-binance](https://github.com/sammchardy/python-binance) - Binance Exchange API python implementation for automated trading - [tda-api](https://github.com/alexgolec/tda-api) - A TD Ameritrade API client for Python. #### DeFi Exchanges - [dydx-v3-python](https://github.com/dydxprotocol/dydx-v3-python) - Python client for dYdX (API v3) ================================================ FILE: components/LibBlock.mdx ================================================ import { useData } from 'nextra/hooks'; import PypiBadge from '../components/PypiBadge'; export const LibBlock = ({ repo, REPOS }) => { const { repos } = useData(); const pypi = REPOS[repo]?.pypi; const repoData = repos.find(r => r.name === repo); const description = repoData?.description || REPOS[repo]?.description || ''; const content = REPOS[repo]?.content || ''; return ( <>

{repo}

{pypi && }
{description}
{content}
); } ================================================ FILE: components/PypiBadge.jsx ================================================ const PypiBadge = ({ pypiName }) => { return (
PyPI PyPI downloads PyPI - Support Python Versions
); }; export default PypiBadge; ================================================ FILE: components/ReposTable.mdx ================================================ {/* NOTE: must use the file extension mdx instead of jsx to make the styling on the table works */} import { useData } from 'nextra/data'; import { FaExternalLinkAlt } from 'react-icons/fa'; export const Row = ({ repo }) => { return ( {repo.name} {repo.website && ( )} {repo.stars} {repo.issues} {repo.contributors} {repo.version} {repo.publishedAt} {repo.forks} {repo.watchers} ); }; export const ReposTable = () => { // Get the data from SSG, and render it as a component. const { repos } = useData(); return ( {repos.map(repo => )}
Repo Site Stars Issues Contributors Version Last Publish Forks Watchers
); }; ================================================ FILE: contents/FinanceDatabase.mdx ================================================ ###### About FinanceDatabase is a database of 300.000+ symbols containing Equities, ETFs, Funds, Indices, Currencies, Cryptocurrencies and Money Markets. It therefore allows you to obtain a broad overview of sectors, industries, types of investments and much more. ================================================ FILE: contents/PyPortfolio0pt.mdx ================================================ ###### About pyfolio is a Python library for performance and risk analysis of financial portfolios that works well with the Zipline open source backtesting library. ================================================ FILE: contents/Superalgos.mdx ================================================ ###### About > Superalgos is a community-owned open-source project with a decentralized and token-incentivized Social Trading Network crowdsourcing superpowers for retail traders. ================================================ FILE: contents/alphalens-reloaded.mdx ================================================ ###### About Alphalens is a Python library for performance analysis of predictive (alpha) stock factors. Alphalens works great with the Zipline open source backtesting library, and Pyfolio which provides performance and risk analysis of financial portfolios. ================================================ FILE: contents/arch.mdx ================================================ ###### About Autoregressive Conditional Heteroskedasticity (ARCH) and other tools for financial econometrics, written in Python (with Cython and/or Numba used to improve performance) ================================================ FILE: contents/backtestingpy.mdx ================================================ ###### About > Backtesting.py is a Python framework for inferring viability of trading strategies on historical (past) data. ###### Core Features > - Built on top of cutting-edge ecosystem libraries (i.e. Pandas, NumPy, Bokeh) for maximum usability > - Vectorized or event-based backtesting: Signal-driven or streaming, model your strategy enjoying the flexibility of both approaches > - Interactive visualization: Simulated trading results in telling interactive charts you can zoom into > - Composable strategies: Contains a library of predefined utilities and general-purpose strategies that are made to stack > - Built-in optimizer: Test hundreds of strategy variants in mere seconds, resulting in heatmaps you can interpret at a glance ================================================ FILE: contents/backtrader.mdx ================================================ ###### About > Backtrader is a feature-rich Python framework for backtesting and trading. It allows you to focus on writing reusable trading strategies, indicators and analyzers instead of having to spend time building infrastructure. ###### Core Features > - Live Data Feeds and Broker Integration: Supports Interactive Brokers, Oanda (REST API), and Visual Chart for live trading. > - Multi-Asset & Strategy Support: Allows multiple data feeds, timeframes, and strategies to run simultaneously. > - Technical Indicators: Offers a wide range of indicators, including TA-Lib support, and easy creation of custom indicators. > - Performance Analysis: Includes built-in analyzers (Sharpe ratio, SQN, etc.) and pyfolio integration (deprecated). > - Commission & Order Management: Flexible commission schemes, broker simulation, support for advanced orders (OCO, bracket orders), and automated staking with sizers. > - Trading Utilities: Features like cheat-on-open/close modes, trading calendars, schedulers, and matplotlib-based plotting. ================================================ FILE: contents/binance-public-data.mdx ================================================ ###### About The website Binance Data Collection offers easy access for anyone to download Binance's public market data, which is aggregated into daily or monthly files. ================================================ FILE: contents/blankly.mdx ================================================ ###### About > Blankly is an ecosystem for algotraders enabling anyone to build, monetize and scale their trading algorithms for stocks, crypto, futures or forex. The same code can be backtested, paper traded, sandbox tested and run live by simply changing a single line. ###### Core Features > - One Codebase, Cross-Exchange, Trading Multiple Entities > - Optimized for Performance at Scale > - Easy Integration with Existing Codebases > - Built-In Backtesting with Portfolio Metrics > - Production in One Line ================================================ FILE: contents/bt.mdx ================================================ ###### About > bt is a flexible backtesting framework for Python used to test quantitative trading strategies. ###### Core Features > - Tree Structure: The tree structure facilitates the construction and composition of complex algorithmic trading strategies that are modular and reusable > - Algorithm Stacks: Algos and AlgoStacks are another core feature that facilitate the creation of modular and reusable strategy logic > - Transaction Cost Modeling: Through the use of a commission function and instrument-specific, time-varying bid/offer spreads passed to the Backtest > - Fixed Income: Strategies can include coupon-paying instruments such as bonds, unfunded instruments such as swaps, holding costs, and the option for notional weighting > - Charting and Reporting: bt also provides many useful charting functions that help visualize backtest results > - Detailed Statistics: bt calculates a bunch of stats relating to a backtest and offers a quick way to compare these various statistics across many different backtests via Results' display methods. ================================================ FILE: contents/empyrical-reloaded.mdx ================================================ ###### About Common financial return and risk metrics in Python. ================================================ FILE: contents/ffn.mdx ================================================ ###### About ffn is a library that contains many useful functions for those who work in quantitative finance. It stands on the shoulders of giants (Pandas, Numpy, Scipy, etc.) and provides a vast array of utilities, from performance measurement and evaluation to graphing and common data transformations. ================================================ FILE: contents/freqtrade.mdx ================================================ ###### About > Freqtrade is a free and open source crypto trading bot written in Python. It is designed to support all major exchanges and be controlled via Telegram or webUI. It contains backtesting, plotting and money management tools as well as strategy optimization by machine learning. ###### Core Features > - Strategy Optimization by machine learning: Use machine learning to optimize your buy/sell strategy parameters with real exchange data. > - Adaptive prediction modeling: Build a smart strategy with FreqAI that self-trains to the market via adaptive machine learning methods. Learn more > - Edge position sizing Calculate your win rate, risk reward ratio, the best stoploss and adjust your position size before taking a position for each specific market. Learn more. > - Builtin WebUI: Builtin web UI to manage your bot. > - Manageable via Telegram: Manage the bot with Telegram. ================================================ FILE: contents/hummingbot.mdx ================================================ ###### About > Hummingbot is an open source framework that helps you build automated trading strategies, or bots that run on cryptocurrency exchanges. ###### Core Features > - Both CEX and DEX connectors: Hummingbot supports connectors to centralized exchanges like Binance and KuCoin, as well as decentralized exchanges like Uniswap and PancakeSwap on various blockchains (Ethereum, BNB Chain, etc). > - Cutting edge strategy framework: Its new V2 Strategies framework allows you to compose powerful, backtestable, multi-venue, multi-timeframe strategies of any type > - Secure local client: Hummingbot is a local client software that you install and run on your own devices or cloud virtual machines. It encrypts your API keys and private keys and never exposes them to any third parties. ================================================ FILE: contents/jesse.mdx ================================================ ###### About > Jesse is an advanced crypto trading framework that aims to simplify researching and defining YOUR OWN trading strategies. ###### Core Features > - Multiple Timeframes and Symbols: Backtest and livetrade multiple timeframes and symbols simultaneously without look-ahead bias > - Risk Management: Built-in helper functions for robust risk management > - Smart Ordering: Supports market, limit, and stop orders, automatically choosing the best one for you > - Comprehensive Indicator Library: Access a complete library of technical indicators with easy-to-use syntax > - Partial Fills: Supports entering and exiting positions in multiple orders, allowing for greater flexibility > - Auto-Generated Charts: View your portfolio's performance with automatically generated charts ================================================ FILE: contents/lean.mdx ================================================ ###### About > LEAN is an event-driven, professional-caliber algorithmic trading platform built with a passion for elegant engineering and deep quant concept modeling. Out-of-the-box alternative data and live-trading support. Written in C# with Python integration. ###### Core Features > - Survivorship-Bias-Free Data: Automated accounting for splits, dividends, and corporate actions > - Universe Selection: Avoid selection bias with algorithmically selected assets. Create and select asset universes based on proprietary data and indicators. > - Portfolio Management: Automatically track portfolio performance, profit and loss, buying power, and holdings across multiple asset classes and margin models in the same strategy > - Scheduled Events: Trigger regular functions to occur at desired times during market hours, on certain days of the week, or at specific times of the day > - Import Custom Data: Backtest on almost any time series and import your proprietary signal data into your strategy > - Powerful Modeling: Everything is configurable and pluggable. LEAN’s highly modular foundation can easily be extended for your fund needs ================================================ FILE: contents/nautilus_trader.mdx ================================================ ###### About > NautilusTrader is an open-source, high-performance, production-grade algorithmic trading platform, providing quantitative traders with the ability to backtest portfolios of automated trading strategies on historical data with an event-driven engine, and also deploy those same strategies live, with no code changes. ###### Core Features > - Core is written in Rust with asynchronous networking using tokio. > - Type safety and thread safety through Rust. Redis-backed performant state persistence. > - OS independent, runs on Linux, macOS, and Windows. Deploy using Docker. > - Add user-defined custom components, or assemble entire systems from scratch leveraging the cache and message bus. > - Run with multiple venues, instruments and strategies simultaneously using historical quote tick, trade tick, bar, order book and custom data with nanosecond resolution. > - Use identical strategy implementations between backtesting and live deployments. ================================================ FILE: contents/pfeed.mdx ================================================ ###### About Pfeed is a data pipeline for algorithmic trading, serving as a bridge between raw data sources and traders. It enables you to download historical data, stream real-time data, and store cleaned data in a local data lake for quantitative analysis, by automating the processes of data collection, cleaning, transformation, and storage. ================================================ FILE: contents/pfund.mdx ================================================ ###### About > PFund is a complete algo-trading Framework powered by machine Learning and data Engineering, TradFi, CeFi and DeFi ready. Code Once, Trade Anywhere. ###### Core Features > - Vectorized Backtesting: Supports vectorized and event-driven backtesting with different resolutions of data, e.g. tick data, second data and minute data etc. > - Flexible Data Integration: Allows choosing your preferred data tool, e.g. pandas, polars, pyspark etc. > - Machine Learning Integration: Supports machine learning models, features, technical analysis indicators. Trains machine learning models using your favorite frameworks, i.e. PFund is ML-framework agnostic > - Modular Strategy Building: Offers LEGO-style strategy and model building, allowing strategies to add other strategies, models to add other models > - Streamlined Workflow: Streamlines the algo-trading flow, from vectorized backtesting for strategy prototyping and event-driven backtesting for strategy development, to live trading for strategy deployment > - Parallel Data Processing: Enables parallel data processing, e.g. Interactive Brokers and Binance each have their own process for receiving data feeds > - Trading Pipeline: Switches from backtesting to live trading by just changing ONE line of code ================================================ FILE: contents/pybroker.mdx ================================================ ###### About > PyBroker is a Python framework is designed for developing algorithmic trading strategies, with a focus on strategies that use machine learning. ###### Core Features > - A super-fast backtesting engine built in NumPy and accelerated with Numba. > - The option to train and backtest models using Walkforward Analysis, which simulates how the strategy would perform during actual trading. > - More reliable trading metrics that use randomized bootstrapping to provide more accurate results. > - Caching of downloaded data, indicators, and models to speed up your development process. > - Parallelized computations that enable faster performance. ================================================ FILE: contents/pyfolio-reloaded.mdx ================================================ ###### About pyfolio is a Python library for performance and risk analysis of financial portfolios that works well with the Zipline open source backtesting library. ================================================ FILE: contents/pyod.mdx ================================================ ###### About PyOD is a comprehensive but easy-to-use Python library for detecting anomalies in multivariate data. Whether you're tackling a small-scale project or large datasets, PyOD offers a range of algorithms to suit your needs. ================================================ FILE: contents/qstrader.mdx ================================================ ###### About > QSTrader is a free Python-based open-source modular schedule-driven backtesting framework for long-short equities and ETF based systematic trading strategies. ###### Core Features > - Backtesting Engine: Employs a schedule-based portfolio construction approach to systematic trading. > - Signal generation is decoupled from portfolio construction, risk management, execution and simulated brokerage accounting in a modular, object-oriented fashion. > - Performance Statistics: Provides typical 'tearsheet' performance assessment of strategies. It also supports statistics export via JSON to allow external software to consume metrics from backtests. ================================================ FILE: contents/qtpylib.mdx ================================================ ###### About > QTPyLib (Quantitative Trading Python Library) is a simple, event-driven algorithmic trading library written in Python, that supports backtesting, as well as paper and live trading via Interactive Brokers. ###### Core Features > - A continuously-running Blotter that lets you capture market data even when your algos aren't running. > - Tick, Bar and Trade data is stored in MySQL for later analysis and backtesting. > - Using pub/sub architecture using ØMQ (ZeroMQ) for communicating between the Algo and the Blotter allows for a single Blotter/multiple Algos running on the same machine. > - Market data events use asynchronous, non-blocking architecture. > - Have orders delivered to your mobile via SMS (requires a Nexmo or Twilio account). ================================================ FILE: contents/quantstats.mdx ================================================ ###### About QuantStats is a Python library that performs portfolio profiling, allowing quants and portfolio managers to understand their performance better by providing them with in-depth analytics and risk metrics. ================================================ FILE: contents/riskfolio-lib.mdx ================================================ ###### About Riskfolio-Lib is a library for making quantitative strategic asset allocation or portfolio optimization in Python made in Peru 🇵🇪. Its objective is to help students, academics and practitioners to build investment portfolios based on mathematically complex models with low effort. ================================================ FILE: contents/skfolio.mdx ================================================ ###### About skfolio is a Python library for portfolio optimization built on top of scikit-learn. It offers a unified interface and tools compatible with scikit-learn to build, fine-tune, and cross-validate portfolio models. ================================================ FILE: contents/sktime.mdx ================================================ ###### About sktime is a library for time series analysis in Python. It provides a unified interface for multiple time series learning tasks. Currently, this includes time series classification, regression, clustering, annotation, and forecasting. It comes with time series algorithms and scikit-learn compatible tools to build, tune, and validate time series models. ================================================ FILE: contents/stumpy.mdx ================================================ ###### About STUMPY is a powerful and scalable Python library that efficiently computes something called the matrix profile, which is just an academic way of saying "for every (green) subsequence within your time series, automatically identify its corresponding nearest-neighbor (grey). ================================================ FILE: contents/trading-strategy.mdx ================================================ ###### About > Trading Strategy is a Python framework for quantitative financial analysis and trading algorithms on decentralized exchanges. ###### Core Features > - Supports multiple blockchains like Ethereum mainnet, Binance Smart Chain and Polygon > - Access trading data from on-chain decentralized exchanges like SushiSwap, QuickSwap and PancakeSwap > - Integration with Jupyter Notebook for easy manipulation of data. See example notebooks. > - Write algorithmic trading strategies for decentralized exchange ================================================ FILE: contents/tsai.mdx ================================================ ###### About Tsai is an open-source deep learning package built on top of Pytorch & fastai focused on state-of-the-art techniques for time series tasks like classification, regression, forecasting, imputation… ================================================ FILE: contents/tsfresh.mdx ================================================ ###### About TSFRESH is a python package that provides systematic time-series feature extraction by combining established algorithms from statistics, time-series analysis, signal processing, and nonlinear dynamics with a robust feature selection algorithm. ================================================ FILE: contents/tslearn.mdx ================================================ ###### About Tslearn is a machine learning toolkit for time series analysis in Python ================================================ FILE: contents/vectorbt.mdx ================================================ ###### About > Vectorbt is a Python package for quantitative analysis that takes a novel approach to backtesting: it operates entirely on pandas and NumPy objects, and is accelerated by Numba to analyze any data at speed and scale. This allows for testing of many thousands of strategies in seconds. ###### Core Features > - Vectorized Backtesting: Executes backtests in seconds by operating directly on Pandas and NumPy objects, optimized further with Numba > - Technical indicators: Most popular technical indicators with full Numba support. Out-of-the-box support for 99% indicators in Technical Analysis Library, Pandas TA, and TA-Lib thanks to built-in parsers > - Performance Optimization: Facilitates hyperparameter optimization and bulk strategy testing with minimal computational overhead > - Interactive Visualization: Supports interactive charting with Jupyter Notebooks for in-depth analysis and visualization of trading strategies > - Notifications: Telegram bot based on Python Telegram Bot ================================================ FILE: contents/vnpy.mdx ================================================ ###### About > Vnpy is a Python-based open source quantitative trading system development framework. ###### Core Features > - Integrates a variety of trading interfaces and provides simple and easy-to-use APIs for specific strategy algorithm and function development > - Trading interfaces covering all China domestic and international trading varieties > - Out-of-the-box trading applications for various quantitative strategies > - Python trading API interface package > - Simple and easy-to-use event-driven engine > - Standardized management client interfacing with various databases ================================================ FILE: contents/yfinance.mdx ================================================ ###### About yfinance offers a threaded and Pythonic way to download market data from Yahoo!Ⓡ finance. ================================================ FILE: contents/zipline_reloaded.mdx ================================================ ###### About > Zipline is a Pythonic event-driven system for backtesting, developed and used as the backtesting and live-trading engine by crowd-sourced investment fund Quantopian. ###### Core Features > - Ease of Use: Zipline tries to get out of your way so that you can focus on algorithm development > - Batteries Included: many common statistics like moving average and linear regression can be readily accessed from within a user-written algorithm. > - PyData Integration: Input of historical data and output of performance statistics are based on Pandas DataFrames to integrate nicely into the existing PyData ecosystem. > - Statistics and Machine Learning Libraries: You can use libraries like matplotlib, scipy, statsmodels, and scikit-klearn to support development, analysis, and visualization of state-of-the-art trading systems. ================================================ FILE: next.config.mjs ================================================ import nextra from 'nextra' const nextConfig = { output: 'export', images: { unoptimized: true, }, } const withNextra = nextra({ theme: 'nextra-theme-docs', themeConfig: './theme.config.jsx' }) export default withNextra(nextConfig) // If you have other Next.js configurations, you can pass them as the parameter: // module.exports = withNextra({ /* other next.js config */ }) ================================================ FILE: package.json ================================================ { "scripts": { "dev": "next", "build": "next build", "start": "serve out" }, "dependencies": { "@next/mdx": "^15.0.3", "next": "^15.0.3", "nextra": "^3.2.3", "nextra-theme-docs": "^3.2.3", "react": "^18.3.1", "react-dom": "^18.3.1", "react-icons": "^5.0.1", "serve": "^14.2.4" } } ================================================ FILE: pages/_app.jsx ================================================ export default function App({ Component, pageProps }) { return } ================================================ FILE: pages/_meta.js ================================================ export default { "index": "Overview", "trading": "Trading Frameworks", "backtest": "Backtesting Frameworks", "-": { "type": "separator" }, "strategies": "Strategies", "models": "Models", "ts_analysis": "Time Series Analysis", "analytics": "Analytics", "--": { "type": "separator" }, "backtest_data": "Backtesting Data", "live_data": "Live Trading Data", "data_libs": "Data Libraries", "---": { "type": "separator" }, "ml_tools": "Machine Learning Tools", "mlops_tools": "MLOps Tools", "data_tools": "Data Tools", "researches": "Research Tools", "dashboards": "Dashboard Tools", "----": { "type": "separator" }, "trading_venues": "Brokers & Exchanges", "gpu_providers": "GPU Providers", "api_integrations": "API Integrations", "competitions": "Competitions", "resources": "Resources", "contact": { "title": "Contact ↗", "type": "page", "href": "https://github.com/softwareentrepreneer", "newWindow": true } } ================================================ FILE: pages/analytics.mdx ================================================ import { ReposTable } from '../components/ReposTable.mdx'; import { LibBlock } from '../components/LibBlock.mdx'; import getGitHubReposData from '../utils/getGitHubReposData'; export const REPOS = { quantstats: { pypi: 'quantstats', github: 'ranaroussi/quantstats', }, skfolio: { pypi: 'skfolio', github: 'skfolio/skfolio', }, 'Riskfolio-Lib': { pypi: 'riskfolio-lib', github: 'dcajasn/Riskfolio-Lib', }, PyPortfolioOpt: { pypi: 'PyPortfolioOpt', github: 'robertmartin8/PyPortfolioOpt', }, ffn: { pypi: 'ffn', github: 'pmorissette/ffn', }, 'pyfolio-reloaded': { pypi: 'pyfolio-reloaded', github: 'stefan-jansen/pyfolio-reloaded', }, 'alphalens-reloaded': { pypi: 'alphalens-reloaded', github: 'stefan-jansen/alphalens-reloaded', }, 'empyrical-reloaded': { pypi: 'empyrical-reloaded', github: 'stefan-jansen/empyrical-reloaded', }, }; export const getStaticProps = async ({ params }) => { const githubRepos = Object.values(REPOS).map(repo => repo.github); return await getGitHubReposData(githubRepos); }; # Trading Analytics, Performance Metrics, Statistics and Portfolio Optimization {Object.keys(REPOS).map(repo => )} ================================================ FILE: pages/api_integrations.mdx ================================================ # API Integrations/Connectors ## Traditional Brokers - [ibkr-docker](https://github.com/extrange/ibkr-docker), Run IBKR Gateway/TWS in a Docker container - [ib_insync](https://github.com/erdewit/ib_insync), Python sync/async framework for Interactive Brokers API - [alpaca-py](https://github.com/alpacahq/alpaca-py), The Official Python SDK for Alpaca API ## Cryptocurrency Exchanges - [CCXT](https://github.com/ccxt/ccxt), A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading API with support for more than 100 bitcoin/altcoin exchanges - [binance-connector-python](https://github.com/binance/binance-connector-python), a simple connector to Binance Public API - [pybit](https://github.com/bybit-exchange/pybit), Official Python3 API connector for Bybit's HTTP and WebSockets APIs. - [python-binance](https://github.com/sammchardy/python-binance), Binance Exchange API python implementation for automated trading - [tda-api](https://github.com/alexgolec/tda-api), A TD Ameritrade API client for Python. ## DeFi Exchanges - [dydx-v3-python](https://github.com/dydxprotocol/dydx-v3-python), Python client for dYdX (API v3) ================================================ FILE: pages/backtest.mdx ================================================ import { ReposTable } from '../components/ReposTable.mdx'; import { LibBlock } from '../components/LibBlock.mdx'; import getGitHubReposData from '../utils/getGitHubReposData'; import Vectorbt from '../contents/vectorbt.mdx'; import Bt from '../contents/bt.mdx'; import Pybroker from '../contents/pybroker.mdx'; import Backtestingpy from '../contents/backtestingpy.mdx'; export const REPOS = { vectorbt: { pypi: 'vectorbt', github: 'polakowo/vectorbt', content: }, bt: { pypi: 'bt', github: 'pmorissette/bt', content: }, pybroker: { pypi: 'lib-pybroker', github: 'edtechre/pybroker', content: }, 'backtesting.py': { pypi: 'backtesting', github: 'kernc/backtesting.py', content: }, }; export const getStaticProps = async ({ params }) => { const githubRepos = Object.values(REPOS).map(repo => repo.github); return await getGitHubReposData(githubRepos); }; # Backtesting Frameworks, only support backtesting {Object.keys(REPOS).map(repo => )} ================================================ FILE: pages/backtest_data.mdx ================================================ # Data Sources for backtesting > \* = paid data ## Stock Data / TradFi Data - *[FirstRateData](https://firstratedata.com) - *[Alpaca Data](https://alpaca.markets/data) - *[Polygon](https://polygon.io/) ## Crypto Data - [Bybit](https://public.bybit.com/trading/) - [Bybit Spot](https://public.bybit.com/spot/) - [Binance](https://www.binance.com/en/landing/data) - [OKX](https://www.okx.com/data-download) ## DeFi Data - [Trading Strategy](https://tradingstrategy.ai/trading-view/) ================================================ FILE: pages/competitions.mdx ================================================ # Competitions ## [WorldQuant BRAIN](https://platform.worldquantbrain.com/) The platform that helps you Learn, Earn and Grow in the field of Quantitative Finance. ## [Quantiacs](https://quantiacs.com/) Quantiacs offers a robust platform for quantitative traders and researchers, specializing in algorithm development and backtesting. ================================================ FILE: pages/dashboards.mdx ================================================ import { ReposTable } from '../components/ReposTable.mdx'; import { LibBlock } from '../components/LibBlock.mdx'; import getGitHubReposData from '../utils/getGitHubReposData'; export const REPOS = { streamlit: { pypi: 'streamlit', github: 'streamlit/streamlit', }, gradio: { pypi: 'gradio', github: 'gradio-app/gradio', }, dash: { pypi: 'dash', github: 'plotly/dash', }, panel: { pypi: 'panel', github: 'holoviz/panel', }, taipy: { pypi: 'taipy', github: 'Avaiga/taipy', }, }; export const getStaticProps = async ({ params }) => { const githubRepos = Object.values(REPOS).map(repo => repo.github); return await getGitHubReposData(githubRepos); }; ## Dashboard Tools {Object.keys(REPOS).map(repo => )} ================================================ FILE: pages/data_libs.mdx ================================================ import { ReposTable } from '../components/ReposTable.mdx'; import { LibBlock } from '../components/LibBlock.mdx'; import getGitHubReposData from '../utils/getGitHubReposData'; export const REPOS = { yfinance: { pypi: 'yfinance', github: 'ranaroussi/yfinance', }, 'binance-public-data': { github: 'binance/binance-public-data', }, pfeed: { pypi: 'pfeed', github: 'PFund-Software-Ltd/pfeed', }, FinanceDatabase: { pypi: 'financedatabase', github: 'JerBouma/FinanceDatabase', } }; export const getStaticProps = async ({ params }) => { const githubRepos = Object.values(REPOS).map(repo => repo.github); return await getGitHubReposData(githubRepos); }; ## Packages for data handling > **Disclaimer**: The founding contributor of pytrade.org is also the creator of `pfeed`. {Object.keys(REPOS).map(repo => )} ================================================ FILE: pages/data_tools.mdx ================================================ import { ReposTable } from '../components/ReposTable.mdx'; import { LibBlock } from '../components/LibBlock.mdx'; import getGitHubReposData from '../utils/getGitHubReposData'; export const REPOS = { pandas: { pypi: 'pandas', github: 'pandas-dev/pandas', }, polars: { pypi: 'polars', github: 'pola-rs/polars', }, spark: { pypi: 'pyspark', github: 'apache/spark', }, dask: { pypi: 'dask', github: 'dask/dask', }, modin: { pypi: 'modin', github: 'modin-project/modin', }, duckdb: { pypi: 'duckdb', github: 'duckdb/duckdb', }, vaex: { pypi: 'vaex', github: 'vaexio/vaex', }, fugue: { pypi: 'fugue', github: 'fugue-project/fugue', }, ibis: { pypi: 'ibis-framework', github: 'ibis-project/ibis', }, Daft: { pypi: 'getdaft', github: 'Eventual-Inc/Daft', }, }; export const getStaticProps = async ({ params }) => { const githubRepos = Object.values(REPOS).map(repo => repo.github); return await getGitHubReposData(githubRepos); }; # Data Tools {Object.keys(REPOS).map(repo => )} ================================================ FILE: pages/gpu_providers.mdx ================================================ # GPU Providers ## Notebook-based - [Colab](https://colab.research.google.com) - [Deepnote](https://deepnote.com) - [Kaggle](https://www.kaggle.com) - [Lightning.ai](https://lightning.ai) ## Cloud-based - [Vast.ai](https://vast.ai), Vast.ai is the market leader in low-cost cloud GPU rental. Use one simple interface to save 5-6X on GPU compute. - [Lambda Labs](https://lambdalabs.com), The GPU Cloud for AI, On-demand & reserved cloud NVIDIA GPUs for AI training & inference - [Paperspace](https://www.paperspace.com), Build & Run AI/ML Models on NVIDIA H100 GPUs, Develop, train, and deploy AI applications. Join over 500,000 builders on Paperspace. - [Hyperstack](https://www.hyperstack.cloud), A Supercloud Specialised for AI - [Datacrunch.io](https://datacrunch.io), The ML Cloud, Premium dedicated GPU servers and clusters, Model inference services - [Nimbix](https://www.nimbix.net), On-demand access to GPU and CPU compute accelerators now and at scale. - [TensorDock](https://tensordock.com), We make the GPU servers that cost too much on other clouds available for a low, hourly price. - [Saturn Cloud](https://www.saturncloud.io), Saturn Cloud provides customizable, ready-to-use cloud environments for collaborative data teams. Run analyses, train models, deploy APIs, and more ================================================ FILE: pages/index.mdx ================================================ import { Callout } from 'nextra/components' # Welcome to PyTrade.org! This documentation is in the making... Inspired by [PyViz](https://pyviz.org/), **PyTrade** is a website showing a curated list of Python libraries and resources for algorithmic trading. Think of it as an **awesome-algo-trading** list on GitHub, but with a better presentation. > This website is owned by [PFund.ai](https://pfund.ai), a trading platform that bridges algo-trading and manual trading using AI (LLM). ### Table of Contents
- [Trading Frameworks](trading.mdx), full-fledged frameworks that support backtesting, live trading etc. - [Backtesting Frameworks](backtest.mdx), do **NOT** support live trading - [Strategies](strategies.mdx), shared trading strategies, examples and templates - [Models](models.mdx), shared machine learning models for trading - [Time Series Analysis](ts_analysis.mdx), for analyzing time series data - [Analytics](analytics.mdx), for showing performance metrics - [Backtesting Data](backtest_data.mdx), providing data for backtesting, free or paid - [Live Trading Data](live_data.mdx), providing data for live trading - [Data Libraries](data_libs.mdx), for getting data from the data sources - [Machine Learning Tools](ml_tools.mdx), for applying machine learning on data - [MLOps Tools](mlops_tools.mdx), for applying machine learning operations - [Data Tools](data_tools.mdx), for manipulating data, e.g. pandas - [Research Tools](researches.mdx), for doing research on data - [Dashboard Tools](dashboards.mdx), for creating dashboards for trading - [Brokers & Exchanges](trading_venues.mdx), providing APIs to support algo-trading - [GPU Providers](gpu_providers.mdx), providing GPUs to speed up training - [API Integrations](api_integrations.mdx), integrating with trading APIs without any frameworks - [Resources](resources.mdx), other resources about algo-trading
================================================ FILE: pages/live_data.mdx ================================================ import { Callout } from 'nextra/components'; # Data Sources for live trading If you are looking for free data to get started, please consider paper trading or crypto trading, since crypto data feeds are free. > \* = paid data ## [TradFi](https://academy.binance.com/en/glossary/tradfi) Data - *[Interactive Brokers](https://www.interactivebrokers.ca/en/pricing/research-news-marketdata.php) - *[DTN IQFeed](https://www.dtn.com/refined-fuels/trader/iqfeed/) - *[Alpaca Data](https://alpaca.markets/data) > **Alpaca** also has a free plan, https://docs.alpaca.markets/docs/about-market-data-api ================================================ FILE: pages/ml_tools.mdx ================================================ import { ReposTable } from '../components/ReposTable.mdx'; import { LibBlock } from '../components/LibBlock.mdx'; import getGitHubReposData from '../utils/getGitHubReposData'; export const REPOS = { 'scikit-learn': { pypi: 'scikit-learn', github: 'scikit-learn/scikit-learn', }, pytorch: { pypi: 'torch', github: 'pytorch/pytorch', }, pyro: { pypi: 'pyro-ppl', github: 'pyro-ppl/pyro', }, } export const getStaticProps = async ({ params }) => { const githubRepos = Object.values(REPOS).map(repo => repo.github); return await getGitHubReposData(githubRepos); }; ## Machine Learing Tools {Object.keys(REPOS).map(repo => )} ================================================ FILE: pages/mlops_tools.mdx ================================================ import { ReposTable } from '../components/ReposTable.mdx'; import { LibBlock } from '../components/LibBlock.mdx'; import getGitHubReposData from '../utils/getGitHubReposData'; export const REPOS = { mlflow: { pypi: 'mlflow', github: 'mlflow/mlflow', }, feast: { pypi: 'feast', github: 'feast-dev/feast', }, wandb: { pypi: 'wandb', github: 'wandb/wandb', }, dvc: { pypi: 'dvc', github: 'iterative/dvc', }, } export const getStaticProps = async ({ params }) => { const githubRepos = Object.values(REPOS).map(repo => repo.github); return await getGitHubReposData(githubRepos); }; ## Machine Learing Operations Tools {Object.keys(REPOS).map(repo => )} ================================================ FILE: pages/models.mdx ================================================ # Machine Learning Models for algo-trading ## PFund's Model Hub Imagine a space where algo-traders can share their machine learning models with one another. Strategy and model development could be so much faster since you can build on top of an existing working model. > Model Hub is coming soon on [PFund.ai](https://pfund.ai), Stay Tuned! ================================================ FILE: pages/researches.mdx ================================================ import { ReposTable } from '../components/ReposTable.mdx'; import { LibBlock } from '../components/LibBlock.mdx'; import getGitHubReposData from '../utils/getGitHubReposData'; export const REPOS = { quadratic: { github: 'quadratichq/quadratic', description: 'Quadratic | Data Science Spreadsheet with Python & SQL', // optional }, OpenBBTerminal: { pypi: 'openbb', github: 'OpenBB-Finance/OpenBBTerminal', }, qlib: { pypi: 'pyqlib', github: 'microsoft/qlib', }, }; export const getStaticProps = async ({ params }) => { const githubRepos = Object.values(REPOS).map(repo => repo.github); return await getGitHubReposData(githubRepos); }; ## Research Tools {Object.keys(REPOS).map(repo => )} ================================================ FILE: pages/resources.mdx ================================================ # Useful Resources ## [TradingView](https://www.tradingview.com/) > Track All Markets Where the world charts, chats and trades markets. We're a supercharged super-charting platform and social network for traders and investors. ## [QuantConnect](https://www.quantconnect.com/) > OPEN-SOURCE FINANCIAL TECHNOLOGY, PAVING THE FUTURE OF TRADING Power your quantitative research with a cutting-edge, unified API for research, backtesting, and live trading on the world's leading algorithmic trading platform. ## [NautilusTrader](https://nautilustrader.io/) > Next-Generation Distributed Automated Algorithmic Trading Platform ## [PFund.ai](https://pfund.ai/) > Trading platform that bridges algo-trading and manual trading using AI (LLM). ## [The Python Quants](https://tpq.io/) > THE PYTHON QUANTS GROUP The Experts in Data-Driven and AI-First Finance with Python. We focus on Python and Open Source Technologies for Financial Data Science, Artificial Intelligence, Asset Management, Algorithmic Trading, and Computational Finance. ## [PyQuant News](https://pyquantnews.com/) > Get powerful Python code for algo trading, data analysis, and quant finance Twice weekly, in-depth quant code for Python. ## [QuantStart](https://www.quantstart.com/) > Become Financially Independent Through Algorithmic Trading Learn systematic trading techniques to automate your trading, manage your risk and grow your account. Whether you are a complete beginner to quantitative finance or have been trading for years, QuantStart will help you achieve consistent profitability with algorithmic trading techniques. ## [QuantPy](https://quantpy.com.au/) > Learn Quantitative Finance THE ULTIMATE PYTHON BASED QUANTITATIVE FINANCE COURSES ## [AlgoTrading101](https://algotrading101.com/) > Learn Algorithmic Trading & Python ================================================ FILE: pages/strategies.mdx ================================================ # Trading Strategies, Examples, and Templates ## QuantConnect's Strategy Library - [Strategies on QuantConnect](https://www.quantconnect.com/learning/articles/investment-strategy-library) ================================================ FILE: pages/trading.mdx ================================================ import { ReposTable } from '../components/ReposTable.mdx'; import { LibBlock } from '../components/LibBlock.mdx'; import getGitHubReposData from '../utils/getGitHubReposData'; import Lean from '../contents/lean.mdx'; import Nautilus_trader from '../contents/nautilus_trader.mdx'; import Backtrader from '../contents/backtrader.mdx'; import Pfund from '../contents/pfund.mdx'; import Trading_strategy from '../contents/trading-strategy.mdx'; import Blankly from '../contents/blankly.mdx'; import Vnpy from '../contents/vnpy.mdx'; import Freqtrade from '../contents/freqtrade.mdx'; import Hummingbot from '../contents/hummingbot.mdx'; import Jesse from '../contents/jesse.mdx'; import SuperalgosContent from '../contents/Superalgos.mdx'; import Qstrader from '../contents/qstrader.mdx'; import Qtpylib from '../contents/qtpylib.mdx'; import ZiplineReloaded from '../contents/zipline_reloaded.mdx'; export const REPOS = { lean: { pypi: 'lean', github: 'QuantConnect/Lean', content: }, nautilus_trader: { pypi: 'nautilus_trader', github: 'nautechsystems/nautilus_trader', content: }, backtrader: { pypi: 'backtrader', github: 'backtrader/backtrader', content: }, pfund: { pypi: 'pfund', github: 'PFund-Software-Ltd/pfund', content: }, 'trading-strategy': { pypi: 'trading-strategy', github: 'tradingstrategy-ai/trading-strategy', content: }, blankly: { pypi: 'blankly', github: 'Blankly-Finance/blankly', content: }, vnpy: { pypi: 'vnpy', github: 'vnpy/vnpy', content: }, freqtrade: { pypi: 'freqtrade', github: 'freqtrade/freqtrade', content: }, hummingbot: { pypi: 'hummingbot', github: 'hummingbot/hummingbot', content: }, jesse: { pypi: 'jesse', github: 'jesse-ai/jesse', content: }, Superalgos: { pypi: 'superalgos', github: 'Superalgos/Superalgos', content: }, qstrader: { pypi: 'qstrader', github: 'mhallsmoore/qstrader', content: }, qtpylib: { pypi: 'qtpylib', github: 'ranaroussi/qtpylib', content: }, 'zipline-reloaded': { pypi: 'zipline-reloaded', github: 'stefan-jansen/zipline-reloaded', content: }, }; export const getStaticProps = async ({ params }) => { const githubRepos = Object.values(REPOS).map(repo => repo.github); return await getGitHubReposData(githubRepos); }; # Trading Frameworks, support backtesting and live trading > **Disclaimer**: The founding contributor of pytrade.org is also the creator of `pfund`. {Object.keys(REPOS).map(repo => )} ================================================ FILE: pages/trading_venues.mdx ================================================ # Trading Venues for algo-trading ## Traditional Brokers - [Interactive Brokers](https://www.interactivebrokers.com) - [Alpaca](https://alpaca.markets) - [TD Ameritrade](https://www.tdameritrade.com) ## Cryptocurrency Exchanges - [Bybit](https://www.bybit.com) - [Binance](https://www.binance.com) - [OKX](https://www.okx.com) - [Coinbase](https://www.coinbase.com) ## DeFi Exchanges - [dYdX](https://dydx.exchange/) ================================================ FILE: pages/ts_analysis.mdx ================================================ import { ReposTable } from '../components/ReposTable.mdx'; import { LibBlock } from '../components/LibBlock.mdx'; import getGitHubReposData from '../utils/getGitHubReposData'; export const REPOS = { tsai: { pypi: 'tsai', github: 'timeseriesAI/tsai', }, stumpy: { pypi: 'stumpy', github: 'TDAmeritrade/stumpy', }, tsfresh: { pypi: 'tsfresh', github: 'blue-yonder/tsfresh', }, sktime: { pypi: 'sktime', github: 'sktime/sktime', }, tslearn: { pypi: 'tslearn', github: 'tslearn-team/tslearn', }, arch: { pypi: 'arch', github: 'bashtage/arch', }, pyod: { pypi: 'pyod', github: 'yzhao062/pyod', }, }; export const getStaticProps = async ({ params }) => { const githubRepos = Object.values(REPOS).map(repo => repo.github); return await getGitHubReposData(githubRepos); }; # Trading Analytics, Performance Metrics, Statistics and Portfolio Optimization {Object.keys(REPOS).map(repo => )} ================================================ FILE: theme.config.jsx ================================================ import Image from "next/image"; export default { logo: ( <> PyTrade.org Logo Py Trade ), logoLink: 'https://pytrade.org', // faviconGlyph: "PT", head: ( <> {/* tell search engines what the "preferred" version of a webpage is */} {/* */} ), project: { link: 'https://github.com/PFund-Software-Ltd/pytrade.org' }, feedback: { content: null, // disable "Question? Give us feedback →" }, docsRepositoryBase: 'https://github.com/PFund-Software-Ltd/pytrade.org', sidebar: { toggleButton: true, }, footer: { component: null, // disable footer }, useNextSeoProps: () => ({ }), // ... other theme options } ================================================ FILE: utils/getGitHubReposData.js ================================================ const getReposData = async (repos) => { const reposData = await Promise.all( repos.map(async (repo) => { let resRepo, resContributors, resReleases; // GITHUB_TOKEN is for development only, and should not be used in production. const headers = process.env.GITHUB_TOKEN ? { 'Authorization': `token ${process.env.GITHUB_TOKEN}`, } : {}; // Fetch repo resRepo = await fetch(`https://api.github.com/repos/${repo}`, { headers }); const data = await resRepo.json(); // const pushedAtDateOnly = new Date(data.pushed_at).toISOString().split('T')[0]; // Fetch contributors resContributors = await fetch(`https://api.github.com/repos/${repo}/contributors`, { headers }); const dataContributors = await resContributors.json(); const numberOfContributors = dataContributors.length; // Fetch tags for latest version resReleases = await fetch(`https://api.github.com/repos/${repo}/releases`, { headers }); const dataReleases = await resReleases.json(); const version = dataReleases.length > 0 ? dataReleases[0].name : ''; let lastPublishedAt; lastPublishedAt = dataReleases.length > 0 ? dataReleases[0].published_at : ''; // Convert lastPublishedAt to date-only format if (lastPublishedAt) { lastPublishedAt = new Date(lastPublishedAt).toISOString().split('T')[0]; } return { name: data.name, fullName: data.full_name, description: data.description, website: data.homepage, stars: data.stargazers_count, issues: data.open_issues, contributors: numberOfContributors, publishedAt: lastPublishedAt, version, forks: data.forks, watchers: data.subscribers_count, }; }) ); return { props: { // We add an `ssg` field to the page props, // which will be provided to the Nextra `useData` hook. ssg: { repos: reposData, } }, }; } export default getReposData;