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
================================================
<img src="./public/logo.jpg" width="160">
[](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 (
<>
<h2>{repo}</h2>
{pypi && <PypiBadge pypiName={pypi} />}
<div>
{description}
</div>
<div style={{ marginTop: '-1.2rem' }}>
{content}
</div>
</>
);
}
================================================
FILE: components/PypiBadge.jsx
================================================
const PypiBadge = ({ pypiName }) => {
return (
<div style={{display: 'inline-flex', alignItems: 'center', gap: '4px'}}>
<a href={`https://pypi.org/project/${pypiName}`}><img src={`https://img.shields.io/pypi/v/${pypiName}.svg`} alt="PyPI" /></a>
<img src={`https://img.shields.io/pypi/dm/${pypiName}?label=downloads`} alt="PyPI downloads" />
<img src={`https://img.shields.io/pypi/pyversions/${pypiName}`} alt="PyPI - Support Python Versions" />
</div>
);
};
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 (
<tr>
<td>
<a href={`https://github.com/${repo.fullName}`}>
{repo.name}
</a>
</td>
<td>
{repo.website && (
<a href={repo.website} target="_blank" rel="noopener noreferrer">
<FaExternalLinkAlt />
</a>
)}
</td>
<td><strong>{repo.stars}</strong></td>
<td>{repo.issues}</td>
<td>{repo.contributors}</td>
<td>{repo.version}</td>
<td>{repo.publishedAt}</td>
<td>{repo.forks}</td>
<td>{repo.watchers}</td>
</tr>
);
};
export const ReposTable = () => {
// Get the data from SSG, and render it as a component.
const { repos } = useData();
return (
<table>
<thead>
<tr>
<th>Repo</th>
<th>Site</th>
<th>Stars</th>
<th>Issues</th>
<th>Contributors</th>
<th>Version</th>
<th>Last Publish</th>
<th>Forks</th>
<th>Watchers</th>
</tr>
</thead>
<tbody>
{repos.map(repo => <Row key={repo.name} repo={repo} />)}
</tbody>
</table>
);
};
================================================
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 <Component {...pageProps} />
}
================================================
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
<ReposTable />
{Object.keys(REPOS).map(repo => <LibBlock key={repo} repo={repo} REPOS={REPOS} />)}
================================================
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: <Vectorbt />
},
bt: {
pypi: 'bt',
github: 'pmorissette/bt',
content: <Bt />
},
pybroker: {
pypi: 'lib-pybroker',
github: 'edtechre/pybroker',
content: <Pybroker />
},
'backtesting.py': {
pypi: 'backtesting',
github: 'kernc/backtesting.py',
content: <Backtestingpy />
},
};
export const getStaticProps = async ({ params }) => {
const githubRepos = Object.values(REPOS).map(repo => repo.github);
return await getGitHubReposData(githubRepos);
};
# Backtesting Frameworks, only support backtesting
<ReposTable />
{Object.keys(REPOS).map(repo => <LibBlock key={repo} repo={repo} REPOS={REPOS} />)}
================================================
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
<ReposTable />
{Object.keys(REPOS).map(repo => <LibBlock key={repo} repo={repo} REPOS={REPOS} />)}
================================================
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`.
<ReposTable />
{Object.keys(REPOS).map(repo => <LibBlock key={repo} repo={repo} REPOS={REPOS} />)}
================================================
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
<ReposTable />
{Object.keys(REPOS).map(repo => <LibBlock key={repo} repo={repo} REPOS={REPOS} />)}
================================================
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!
<Callout type="warning" emoji="⚠️">
This documentation is in the making...
</Callout>
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
<div style={{fontSize: '18px'}}>
- [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
</div>
================================================
FILE: pages/live_data.mdx
================================================
import { Callout } from 'nextra/components';
# Data Sources for live trading
<Callout>
If you are looking for free data to get started, please consider paper trading or crypto trading,
since crypto data feeds are free.
</Callout>
> \* = 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
<ReposTable />
{Object.keys(REPOS).map(repo => <LibBlock key={repo} repo={repo} REPOS={REPOS} />)}
================================================
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
<ReposTable />
{Object.keys(REPOS).map(repo => <LibBlock key={repo} repo={repo} REPOS={REPOS} />)}
================================================
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
<ReposTable />
{Object.keys(REPOS).map(repo => <LibBlock key={repo} repo={repo} REPOS={REPOS} />)}
================================================
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: <Lean />
},
nautilus_trader: {
pypi: 'nautilus_trader',
github: 'nautechsystems/nautilus_trader',
content: <Nautilus_trader />
},
backtrader: {
pypi: 'backtrader',
github: 'backtrader/backtrader',
content: <Backtrader />
},
pfund: {
pypi: 'pfund',
github: 'PFund-Software-Ltd/pfund',
content: <Pfund />
},
'trading-strategy': {
pypi: 'trading-strategy',
github: 'tradingstrategy-ai/trading-strategy',
content: <Trading_strategy />
},
blankly: {
pypi: 'blankly',
github: 'Blankly-Finance/blankly',
content: <Blankly />
},
vnpy: {
pypi: 'vnpy',
github: 'vnpy/vnpy',
content: <Vnpy />
},
freqtrade: {
pypi: 'freqtrade',
github: 'freqtrade/freqtrade',
content: <Freqtrade />
},
hummingbot: {
pypi: 'hummingbot',
github: 'hummingbot/hummingbot',
content: <Hummingbot />
},
jesse: {
pypi: 'jesse',
github: 'jesse-ai/jesse',
content: <Jesse />
},
Superalgos: {
pypi: 'superalgos',
github: 'Superalgos/Superalgos',
content: <SuperalgosContent />
},
qstrader: {
pypi: 'qstrader',
github: 'mhallsmoore/qstrader',
content: <Qstrader />
},
qtpylib: {
pypi: 'qtpylib',
github: 'ranaroussi/qtpylib',
content: <Qtpylib />
},
'zipline-reloaded': {
pypi: 'zipline-reloaded',
github: 'stefan-jansen/zipline-reloaded',
content: <ZiplineReloaded />
},
};
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`.
<ReposTable />
{Object.keys(REPOS).map(repo => <LibBlock key={repo} repo={repo} REPOS={REPOS} />)}
================================================
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
<ReposTable />
{Object.keys(REPOS).map(repo => <LibBlock key={repo} repo={repo} REPOS={REPOS} />)}
================================================
FILE: theme.config.jsx
================================================
import Image from "next/image";
export default {
logo: (
<>
<Image
src={"/logo.png"}
priority={true}
alt="PyTrade.org Logo"
width={72}
height={72}
/>
<span style={{ fontWeight: 'bold', fontFamily: 'Futura', fontSize: '28px' }}>
<text style={{color: '#306998'}}>
Py
</text>
<text style={{color: '#FFD43B'}}>
Trade
</text>
</span>
</>
),
logoLink: 'https://pytrade.org',
// faviconGlyph: "PT",
head: (
<>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="A comprehensive collection of algorithmic trading libraries and tools in Python." />
<meta property="og:title" content="PyTrade.org" />
<meta property="og:description" content="Curated algo-trading libraries in Python" />
{/* tell search engines what the "preferred" version of a webpage is */}
<link rel="canonical" href="https://pytrade.org/" />
<link rel="icon" href="/favicon.ico" />
{/* <!-- Google tag (gtag.js) --> */}
<script async src={`https://www.googletagmanager.com/gtag/js?id=${process.env.NEXT_PUBLIC_GA_TRACKING_ID}`}></script>
<script dangerouslySetInnerHTML={{
__html: `
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', ${process.env.NEXT_PUBLIC_GA_TRACKING_ID});
`,
}}></script>
</>
),
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;
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
SYMBOL INDEX (1 symbols across 1 files)
FILE: pages/_app.jsx
function App (line 1) | function App({ Component, pageProps }) {
Condensed preview — 70 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (78K chars).
[
{
"path": ".github/workflows/daily-deploy.yml",
"chars": 2867,
"preview": "name: Daily Site Deploy\n\non:\n # Runs on pushes targeting the default branch\n push:\n branches: [\"main\"]\n pull_reque"
},
{
"path": ".gitignore",
"chars": 174,
"preview": "node_modules/\n\n# nextjs\n.next/\nout/\n\n# local stuff\n**/.local/\n\n# vscode settings\n**/.vscode/\n\n# macOS\n.DS_Store\n\n# Envir"
},
{
"path": "LICENSE",
"chars": 7048,
"preview": "Creative Commons Legal Code\n\nCC0 1.0 Universal\n\n CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE\n"
},
{
"path": "README.md",
"chars": 14867,
"preview": "<img src=\"./public/logo.jpg\" width=\"160\"> \n\n[ => {\n return (\n <div style={{display: 'inline-flex', alignItems: 'center', gap: '4p"
},
{
"path": "components/ReposTable.mdx",
"chars": 1359,
"preview": "{/* NOTE: must use the file extension mdx instead of jsx to make the styling on the table works */}\n\nimport { useData } "
},
{
"path": "contents/FinanceDatabase.mdx",
"chars": 264,
"preview": "###### About\nFinanceDatabase is a database of 300.000+ symbols containing Equities, ETFs, Funds, Indices, Currencies, Cr"
},
{
"path": "contents/PyPortfolio0pt.mdx",
"chars": 164,
"preview": "###### About\npyfolio is a Python library for performance and risk analysis of financial portfolios that works well with "
},
{
"path": "contents/Superalgos.mdx",
"chars": 179,
"preview": "###### About\n> Superalgos is a community-owned open-source project with a decentralized and token-incentivized Social Tr"
},
{
"path": "contents/alphalens-reloaded.mdx",
"chars": 258,
"preview": "###### About\nAlphalens is a Python library for performance analysis of predictive (alpha) stock factors.\nAlphalens works"
},
{
"path": "contents/arch.mdx",
"chars": 182,
"preview": "###### About\nAutoregressive Conditional Heteroskedasticity (ARCH) and other tools for financial econometrics, written in"
},
{
"path": "contents/backtestingpy.mdx",
"chars": 742,
"preview": "###### About\n> Backtesting.py is a Python framework for inferring viability of trading strategies on historical (past) d"
},
{
"path": "contents/backtrader.mdx",
"chars": 1038,
"preview": "###### About\n> Backtrader is a feature-rich Python framework for backtesting and trading. It allows you to focus on writ"
},
{
"path": "contents/binance-public-data.mdx",
"chars": 169,
"preview": "###### About\nThe website Binance Data Collection offers easy access for anyone to download Binance's public market data,"
},
{
"path": "contents/blankly.mdx",
"chars": 514,
"preview": "###### About\n> Blankly is an ecosystem for algotraders enabling anyone to build, monetize and scale their trading algori"
},
{
"path": "contents/bt.mdx",
"chars": 1060,
"preview": "###### About\n> bt is a flexible backtesting framework for Python used to test quantitative trading strategies.\n\n###### C"
},
{
"path": "contents/empyrical-reloaded.mdx",
"chars": 64,
"preview": "###### About\nCommon financial return and risk metrics in Python."
},
{
"path": "contents/ffn.mdx",
"chars": 304,
"preview": "###### About\nffn is a library that contains many useful functions for those who work in quantitative finance.\nIt stands "
},
{
"path": "contents/freqtrade.mdx",
"chars": 895,
"preview": "###### About\n> Freqtrade is a free and open source crypto trading bot written in Python. It is designed to support all m"
},
{
"path": "contents/hummingbot.mdx",
"chars": 792,
"preview": "###### About\n> Hummingbot is an open source framework that helps you build automated trading strategies, or bots that ru"
},
{
"path": "contents/jesse.mdx",
"chars": 789,
"preview": "###### About\n> Jesse is an advanced crypto trading framework that aims to simplify researching and defining YOUR OWN tra"
},
{
"path": "contents/lean.mdx",
"chars": 1142,
"preview": "###### About\n> LEAN is an event-driven, professional-caliber algorithmic trading platform built with a passion for elega"
},
{
"path": "contents/nautilus_trader.mdx",
"chars": 966,
"preview": "###### About\n> NautilusTrader is an open-source, high-performance, production-grade algorithmic trading platform, provid"
},
{
"path": "contents/pfeed.mdx",
"chars": 345,
"preview": "###### About\nPfeed is a data pipeline for algorithmic trading, serving as a bridge between raw data sources and traders."
},
{
"path": "contents/pfund.mdx",
"chars": 1274,
"preview": "###### About\n> PFund is a complete algo-trading Framework powered by machine Learning and data Engineering, TradFi, CeFi"
},
{
"path": "contents/pybroker.mdx",
"chars": 660,
"preview": "###### About\n> PyBroker is a Python framework is designed for developing algorithmic trading strategies, with a focus on"
},
{
"path": "contents/pyfolio-reloaded.mdx",
"chars": 164,
"preview": "###### About\npyfolio is a Python library for performance and risk analysis of financial portfolios that works well with "
},
{
"path": "contents/pyod.mdx",
"chars": 233,
"preview": "###### About\nPyOD is a comprehensive but easy-to-use Python library for detecting anomalies in multivariate data. \nWheth"
},
{
"path": "contents/qstrader.mdx",
"chars": 667,
"preview": "###### About\n> QSTrader is a free Python-based open-source modular schedule-driven backtesting framework for long-short "
},
{
"path": "contents/qtpylib.mdx",
"chars": 760,
"preview": "###### About\n> QTPyLib (Quantitative Trading Python Library) is a simple, event-driven algorithmic trading library writt"
},
{
"path": "contents/quantstats.mdx",
"chars": 216,
"preview": "###### About\nQuantStats is a Python library that performs portfolio profiling, allowing quants and portfolio managers to"
},
{
"path": "contents/riskfolio-lib.mdx",
"chars": 295,
"preview": "###### About\nRiskfolio-Lib is a library for making quantitative strategic asset allocation or portfolio optimization in "
},
{
"path": "contents/skfolio.mdx",
"chars": 224,
"preview": "###### About\nskfolio is a Python library for portfolio optimization built on top of scikit-learn.\nIt offers a unified in"
},
{
"path": "contents/sktime.mdx",
"chars": 367,
"preview": "###### About\nsktime is a library for time series analysis in Python.\nIt provides a unified interface for multiple time s"
},
{
"path": "contents/stumpy.mdx",
"chars": 286,
"preview": "###### About\nSTUMPY is a powerful and scalable Python library that efficiently computes something called the matrix prof"
},
{
"path": "contents/trading-strategy.mdx",
"chars": 516,
"preview": "###### About\n> Trading Strategy is a Python framework for quantitative financial analysis and trading algorithms on dece"
},
{
"path": "contents/tsai.mdx",
"chars": 209,
"preview": "###### About\nTsai is an open-source deep learning package built on top of Pytorch & fastai focused on state-of-the-art t"
},
{
"path": "contents/tsfresh.mdx",
"chars": 257,
"preview": "###### About\nTSFRESH is a python package that provides systematic time-series feature extraction by combining establishe"
},
{
"path": "contents/tslearn.mdx",
"chars": 86,
"preview": "###### About\nTslearn is a machine learning toolkit for time series analysis in Python\n"
},
{
"path": "contents/vectorbt.mdx",
"chars": 1006,
"preview": "###### About\n> Vectorbt is a Python package for quantitative analysis that takes a novel approach to backtesting: it ope"
},
{
"path": "contents/vnpy.mdx",
"chars": 590,
"preview": "###### About\n> Vnpy is a Python-based open source quantitative trading system development framework.\n\n###### Core Featur"
},
{
"path": "contents/yfinance.mdx",
"chars": 102,
"preview": "###### About\nyfinance offers a threaded and Pythonic way to download market data from Yahoo!Ⓡ finance."
},
{
"path": "contents/zipline_reloaded.mdx",
"chars": 841,
"preview": "###### About\n> Zipline is a Pythonic event-driven system for backtesting, developed and used as the backtesting and live"
},
{
"path": "next.config.mjs",
"chars": 395,
"preview": "import nextra from 'nextra'\n\nconst nextConfig = {\n output: 'export',\n images: {\n unoptimized: true,\n },\n}\n\nconst w"
},
{
"path": "package.json",
"chars": 307,
"preview": "{\n\t\"scripts\": {\n\t\t\"dev\": \"next\",\n\t\t\"build\": \"next build\",\n\t\t\"start\": \"serve out\"\n\t},\n\t\"dependencies\": {\n\t\t\"@next/mdx\": \""
},
{
"path": "pages/_app.jsx",
"chars": 99,
"preview": "export default function App({ Component, pageProps }) {\n return <Component {...pageProps} />\n }"
},
{
"path": "pages/_meta.js",
"chars": 999,
"preview": "export default {\n \"index\": \"Overview\",\n \"trading\": \"Trading Frameworks\",\n \"backtest\": \"Backtesting Frameworks\",\n \"-\""
},
{
"path": "pages/analytics.mdx",
"chars": 1286,
"preview": "import { ReposTable } from '../components/ReposTable.mdx';\nimport { LibBlock } from '../components/LibBlock.mdx';\nimport"
},
{
"path": "pages/api_integrations.mdx",
"chars": 1143,
"preview": "# API Integrations/Connectors\n\n\n## Traditional Brokers\n- [ibkr-docker](https://github.com/extrange/ibkr-docker), Run IBK"
},
{
"path": "pages/backtest.mdx",
"chars": 1127,
"preview": "import { ReposTable } from '../components/ReposTable.mdx';\nimport { LibBlock } from '../components/LibBlock.mdx';\nimport"
},
{
"path": "pages/backtest_data.mdx",
"chars": 487,
"preview": "# Data Sources for backtesting\n\n> \\* = paid data\n\n## Stock Data / TradFi Data\n- *[FirstRateData](https://firstratedata.c"
},
{
"path": "pages/competitions.mdx",
"chars": 337,
"preview": "# Competitions\n\n## [WorldQuant BRAIN](https://platform.worldquantbrain.com/)\nThe platform that helps you Learn, Earn and"
},
{
"path": "pages/dashboards.mdx",
"chars": 832,
"preview": "import { ReposTable } from '../components/ReposTable.mdx';\nimport { LibBlock } from '../components/LibBlock.mdx';\nimport"
},
{
"path": "pages/data_libs.mdx",
"chars": 921,
"preview": "import { ReposTable } from '../components/ReposTable.mdx';\nimport { LibBlock } from '../components/LibBlock.mdx';\nimport"
},
{
"path": "pages/data_tools.mdx",
"chars": 1164,
"preview": "import { ReposTable } from '../components/ReposTable.mdx';\nimport { LibBlock } from '../components/LibBlock.mdx';\nimport"
},
{
"path": "pages/gpu_providers.mdx",
"chars": 1293,
"preview": "# GPU Providers\n\n\n## Notebook-based\n- [Colab](https://colab.research.google.com)\n- [Deepnote](https://deepnote.com)\n- [K"
},
{
"path": "pages/index.mdx",
"chars": 2009,
"preview": "import { Callout } from 'nextra/components'\n\n# Welcome to PyTrade.org!\n\n<Callout type=\"warning\" emoji=\"⚠️\">\n This docum"
},
{
"path": "pages/live_data.mdx",
"chars": 621,
"preview": "import { Callout } from 'nextra/components';\n\n# Data Sources for live trading\n\n<Callout>\n If you are looking for free d"
},
{
"path": "pages/ml_tools.mdx",
"chars": 728,
"preview": "import { ReposTable } from '../components/ReposTable.mdx';\nimport { LibBlock } from '../components/LibBlock.mdx';\nimport"
},
{
"path": "pages/mlops_tools.mdx",
"chars": 767,
"preview": "import { ReposTable } from '../components/ReposTable.mdx';\nimport { LibBlock } from '../components/LibBlock.mdx';\nimport"
},
{
"path": "pages/models.mdx",
"chars": 342,
"preview": "# Machine Learning Models for algo-trading\n\n## PFund's Model Hub\nImagine a space where algo-traders can share their mach"
},
{
"path": "pages/researches.mdx",
"chars": 796,
"preview": "import { ReposTable } from '../components/ReposTable.mdx';\nimport { LibBlock } from '../components/LibBlock.mdx';\nimport"
},
{
"path": "pages/resources.mdx",
"chars": 1826,
"preview": "# Useful Resources\n\n\n## [TradingView](https://www.tradingview.com/)\n> Track All Markets\n\nWhere the world charts, chats a"
},
{
"path": "pages/strategies.mdx",
"chars": 189,
"preview": "# Trading Strategies, Examples, and Templates\n\n\n## QuantConnect's Strategy Library\n- [Strategies on QuantConnect](https:"
},
{
"path": "pages/trading.mdx",
"chars": 2867,
"preview": "import { ReposTable } from '../components/ReposTable.mdx';\nimport { LibBlock } from '../components/LibBlock.mdx';\nimport"
},
{
"path": "pages/trading_venues.mdx",
"chars": 422,
"preview": "# Trading Venues for algo-trading\n\n\n## Traditional Brokers\n- [Interactive Brokers](https://www.interactivebrokers.com)\n-"
},
{
"path": "pages/ts_analysis.mdx",
"chars": 1035,
"preview": "import { ReposTable } from '../components/ReposTable.mdx';\nimport { LibBlock } from '../components/LibBlock.mdx';\nimport"
},
{
"path": "theme.config.jsx",
"chars": 2084,
"preview": "import Image from \"next/image\";\n\nexport default {\n logo: (\n <>\n <Image\n src={\"/logo.png\"}\n "
},
{
"path": "utils/getGitHubReposData.js",
"chars": 2058,
"preview": "const getReposData = async (repos) => {\n const reposData = await Promise.all(\n repos.map(async (repo) => {\n let"
}
]
About this extraction
This page contains the full source code of the PFund-Software-Ltd/pytrade.org GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 70 files (70.5 KB), approximately 19.3k tokens, and a symbol index with 1 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.