Skip to content

Files

Latest commit

0133dcc · Jan 13, 2023

History

History
299 lines (220 loc) · 22.8 KB

Readme_cn.md

File metadata and controls

299 lines (220 loc) · 22.8 KB

棒棒的系统化交易

量化交易 + 一点数据科学

Awesome

Python Java C++ JavaScript Rust Go Jupyter Notebook Start Tracker

English Version

Open access: all rights granted for use and re-use of any kind, by anyone, at no cost, under your choice of either the free MIT License or Creative Commons CC-BY International Public License.

© 2021 Zhe Wang (知乎 | wangzhetju@gmail.com)

我们怎么选项目呢?

  • 属于系统交易和量化交易范畴
  • 现在还在积极维护的
  • 具有优秀的编程书写风格和软件架构
  • (不全是) 有覆盖到测试

如果你找到好的项目,或者想删除过时的项目,可以 raise PR 哦!

可以用快捷查找方式找到相关的libraries,比如:Ctrl+F, Rust

关于crypto相关的: >> 点这里 Systematic Crypto.

回测 + 实时交易

General purpose

事件驱动框架

Note: 如果标有Live Trading 表示具有实时交易功能(至少一个),否则的话,只有回测功能而已。

  • aat | Python, C++, Live Trading| - 一个异步的、事件驱动的框架,主要用于编写Python算法交易策略(可以选择C++作为加速)。其具有模块化,可扩展性,支持多种工具和策略的特点,同时支持多个交易所之间进行实时交易。
  • barter-rs | Rust | - 开源Rust框架,用于建立事件驱动实时交易&回测系统。Open-source Rust framework for building event-driven live-trading & backtesting systems. Algorithmic trade with the peace of mind that comes from knowing your strategies have been backtested with a near-identical trading Engine.
  • backtesting.py | Python | - Backtesting.py 是一个 Python 框架,用于根据历史(过去)数据推断交易策略的可行性。 在 Backtrader 的基础上进行了改进,且与其他的替代方案相比,Backtesting.py 是轻量级的、快速的、用户友好的、直观的、交互式的、智能的,并且有望面向未来。
  • backtrader | Python, Live Trading | - 用于交易策略的事件驱动 Python 回测库
  • FlashFunk | Rust | - High Performance Runtime in Rust
  • finmarketpy | Python | - 用于回测交易策略和分析金融市场的 Python 库(formerly pythalesians)
  • gobacktest | Go | - 基于Go的事件驱动回测框架
  • lumibot | Python | - 一个非常简单但有用的回测和基于样本的实时交易框架(运行起来有点慢......)
  • nautilus_trader | Python, Cython, Rust, Live Trading | - 高性能算法交易平台和事件驱动回测器
  • QuantConnect | C#, .NET, Live Trading | - Lean 算法交易引擎 by QuantConnect (Python, C#)
  • QUANTAXIS | Python, Rust, Live Trading | - QUANTAXIS 支持任务调度 分布式部署的 股票/期货/期权/港股/虚拟货币 数据/回测/模拟/交易/可视化/多账户 纯本地量化解决方案
  • Rqalpha | Python | - 一个可扩展、可替换的 Python 算法回测 && 交易框架,支持多种证券
  • quanttrader | Python | - 一个完全的基于python的事件驱动回测和量化交易者的实时交易库。
  • sdoosa-algo-trade-python | Python | - 该项目主要面向有兴趣学习使用 python 解释器编写自己的交易算法的算法交易新手。
  • vnpy | Python, Stock, Futures, Crypto, Live Trading | - 基于Python的开源量化交易系统开发框架,2015年1月正式发布,逐步成长为功能齐全的量化交易平台
  • WonderTrader | C++, Python | - WonderTrader——量化研发交易一站式框架
  • zvt | Python, Stock, Backtest | - Modular quant framework
  • zipline | Python | - Zipline 是一个 Pythonic 算法交易库,用于回测的事件驱动系统。

Vector Based Frameworks

  • bt | Python | - bt是一个基于Python的灵活回测框架,用于Algo和策略树中。
  • pysystemtrade | Python, Live Trading | - by Rob Carver这本书的系统交易代码实现
  • vectorbt | Python, numba | - vectorbt 采用了一种新颖的回测方法:它完全在 pandas 和 NumPy 对象上运行,并由 Numba 加速对大规模的数据进行分析,这使得于几秒钟内测试数千种策略。

加密货币相关

  • bTrader | Rust | - Binance三角套利交易机器人
  • crypto-crawler-rs | Rust | - 从加密货币交易所抓取订单簿和交易消息
  • cryptotrader-core | Rust | - 简单易用的Crypto Exchange REST API client(in Rust)
  • openlimits | Rust | - 一个 Rust 高性能加密货币交易 API,支持多个交易所和语言包装器。
  • Freqtrade | Python | - Freqtrade 是一个用 Python 编写的免费开源加密交易机器人。 它旨在支持所有主要交易所并通过 Telegram 进行控制。 它包含回测、绘图和资金管理工具以及通过机器学习进行的策略优化。
  • Hummingbot | Python, Cython, Live Trading | - A client for crypto market making
  • Jesse | Python | - Jesse 是一个先进的加密交易框架,旨在简化交易策略的研究和定义。
  • OctoBot | Python, Cython, Live Trading| - 具有高级 Web 界面的用于 TA、套利和社交交易的加密货币交易机器人
  • Kelp | Go, Live Trading | - Kelp 是一个免费的开源交易机器人,适用于 Stellar DEX 和 100 多个中心化交易所
  • exc | Rust | - Exc 是一个加密货币交易所API抽象层实现,旨在让使用者更关注于策略实现。

机器学习/强化学习

ML, RL

  • FinRL | Python | - FinRL 是第一个展示在量化金融中应用深度强化学习的巨大潜力的开源框架。
  • QLib (Microsoft) | Python, Cython | - Qlib是一个面向AI的量化投资平台,旨在挖掘潜力,赋能研究,创造AI技术在量化投资中的价值。 使用 Qlib,您可以轻松尝试您的想法以创建更好的量化投资策略。 越来越多的 SOTA Quant 研究作品/论文在 Qlib 中发布。
  • TradingGym | Python, Live Trading | - 用于训练强化学习代理或简单规则库算法的交易和回测环境。
  • Stock Trading Bot using Deep Q-Learning | Python | - 使用Deep Q Learning的股票交易机器人

Alpha 集合

Alpha

套利 (Crypto)

注意:这些项目很旧,没有维护。 我把它们放在这里只是为了展示一些加密套利的逻辑。

  • Blackbird | C++ | - 黑鸟比特币套利:多头/空头市场中性策略
  • bitcoin-arbitrage | Python | - 比特币套利 - 机会监控器
  • R2 Bitcoin Arbitrager | TypeScript | - R2 Bitcoin Arbitrager 是一个由 Node.js + TypeScript 提供支持的自动套利交易系统。

基本日常用到的库集合

基础库

  • Cvxpy | Python, C++ | - 用于凸优化问题的 Python 嵌入式建模语言.
  • Numpy | Python, C | - 使用 Python 进行科学计算的基础库
  • Scipy | Python, C | - 科学计算的基础算法(Python)
  • Pandas | Python, Cython | - 灵活而强大的 Python 数据分析/操作库,提供类似于 R 的数据结构、框架对象、统计函数等
  • Sikit-learn | Python, Cython | - Machine learning in Python
  • Keras | Python | - 最友好的强化学习(in Python)
  • TensorFlow | Python, C++ | - 更底层的深度学习框架
  • Pytorch | Python | - 具有强大 GPU 加速功能的 Python 张量和动态神经网络
  • PyMC | Python | - Python 中的概率编程:使用 Aesara 进行贝叶斯建模和概率机器学习

Computation Graph计算图

  • Dask | Python | - 在 Python 中使用 Pandas 之类 API 进行任务调度的并行计算
  • Ray | Python, C++ | - An open source framework that provides a simple, universal API for building distributed applications.
  • Incremental (JaneStreet) | Ocaml | - Incremental 是一个库,它为您提供了一种构建复杂计算的方法,该计算可以有效地更新以响应输入的变化,灵感来自 Umut Acar et. al。关于自调整计算。 incremental在许多应用程序中都很有用
  • GraphKit | Python | - 用于创建和运行有序计算图的轻量级 Python 模块。
  • Man MDF | Python | - Python数据流编程工具包
  • Tributary | Python | - Python 流式处理反应式和数据流图

其他可用的库 libraries

Numpy Alternatives

  • ndarray | Rust | - ndarray: 具有数组视图、多维切片和高效操作的 N 维数组

Pandas Alternatives

  • Polars | Rust, Python | - Polars 是使用 Apache Arrow Columnar Format 作为内存模型在 Rust 中实现的速度极快的 DataFrames 库。
  • Vaex | Python, C++ | - Out-of-Core hybrid Apache Arrow/NumPy DataFrame for Python, ML, visualization and exploration of big tabular data at a billion rows per second
  • Modin | Python | - Modin:通过更改一行代码来加快 Pandas 工作流程
  • Koalas | Python | - Koalas: pandas API on Apache Spark

分析工具 Analytic tools

指标计算 Metrics computation

  • ffn | Python | - Python的金融函数库
  • quantstats | Python | - 用 Python 编写的量化投资组合分析

指标 Indicators

  • TA-Lib | C | - 对金融市场数据进行技术分析
  • ta-rust | Rust | - Rust金融分析库
  • finta | Python | - Pandas常用金融技术指标
  • pandas-ta | Python | - Pandas TA is an easy to use library that leverages the Pandas package with more than 130 Indicators and Utility functions and more than 60 TA Lib Candlestick Patterns.

定价 Pricing

  • Quantlib
    • PyQL | Python, Cython | - Python wrapper of the famous pricing library QuantLib
    • QuantLib.jl | Julia | - Quantlib implementation in pure Julia.
  • FinancePy | Python | - Python 金融库,专注于金融衍生品的定价和风险管理,包括固定收益、股票、外汇和信用衍生品。
  • tf-quant-finance - 量化金融的高性能 TensorFlow 库。

风险 Risk

  • pyfolio | Python | - Python 投资组合和风险分析

优化 Optimization

  • Deepdow | Python | - Python package connecting portfolio optimization and deep learning. Its goal is to facilitate research of networks that perform weight allocation in one forward pass.
  • PyPortfolioOpt | Python | - python 中的金融投资组合优化,包括经典有效前缘、Black-Litterman、分层风险平价策略
  • Riskfolio-Lib | Python | - Python 投资组合优化和量化战略资产配置
  • empyrial | Python | - Empyrial 是一个基于 Python 的开源量化投资库,致力于金融机构和散户投资者,于 2021 年 3 月正式发布。
  • spectre | Python | - Spectre 是一个 GPU 加速的并行量化交易库,专注于性能。

时间序列分析 TimeSeries Analysis

  • statsmodels - 允许用户探索数据、估计统计模型和执行统计测试的 Python 模块。
  • tsfresh - 从时间序列中自动提取相关特征。
  • Facebook Prophet - 用于为具有线性或非线性增长的多个季节性的时间序列数据生成高质量预测的工具。
  • pmdarima - 一个统计库,旨在填补 Python 时间序列分析功能的空白,包括与 R 的 auto.arima 函数等效的功能。

可视化 Visualization

  • D-Tale (Man Group) | JavaScript, Python | - D-Tale 是 Flask 后端和 React 前端的组合,提供查看和分析 Pandas 数据结构功能。
  • mplfinance | Python | - 使用 Matplotlib 进行金融市场数据可视化
  • btplotting | Python, bokeh | - btplotting 提供回测、优化结果和来自 backtrader 的实时数据的绘图。

数据库 Databases

  • Arctic (Man Group) | Python | - 时间序列和tick data的高性能数据存储
  • Marketstore | Go | - 金融时间序列数据的 DataFrame 服务器
  • Tectonicdb | Rust | - Tectonicdb 是一个快速、高度压缩的独立数据库和order book tick串流协议。

数据源 Data Source

股票和其他 Stocks and General

  • findatapy |Python| - findatapy 创建了一个易于使用的 Python API,使用统一的高级接口从 Quandl、Bloomberg、Yahoo、Google 等多个来源下载市场数据。
  • yfinance |Python| - yfinance 提供了从 Yahoo!Ⓡ Finance 下载市场数据。
  • pandas-datareader |Python| - 最新远程数据访问,适用于多个版本的 pandas。
  • Wallstreet |Python| - Wallstreet: 实时股票和期权工具
  • TuShare |Python| - TuShare是一个用于抓取中国股票历史数据的实用程序
  • Investpy - 使用 Python 从 Investing.com 提取财务数据
  • AkShare |Python| - AKShare 是一个优雅简洁的 Python 金融数据接口库,专为人类打造! 开源财经数据接口库
  • Fundamental Analysis Data | Python | - 是一个成熟的基本面分析库,能够收集 20.000 多家公司的 20 年公司简介、财务报表、比率和股票数据。

Crypto

  • Cryptofeed |Python| - Cryptocurrency Exchange Websocket Data Feed Handler with Asyncio

Broker APIs

  • Ib_insync | Python | - P盈透证券API的同步/异步python框架
  • ccxt | Python, JavaScript | - 一个 JavaScript / Python / PHP 加密货币交易 API,支持 100 多个比特币/山寨币交易所
  • Coinnect | Rust | - Coinnect 是一个 Rust 库,旨在通过 REST API 提供对主要加密货币交易所的完整访问。
  • More is coming... (欢迎PR)

资源 Resources

书籍

博客

教程 Tutorials

专业课程 Courses

相关项目 Relevant Projects

Buy me a coffee?

作者收集资料和维护项目等花费了不少心思和时间,如果你想支持一下的话,可以送我一杯咖啡呀!:)

  • Patreon
  • BTC: bc1qrjrffv7aaf5f4f6dydkt4yaukt4297vedd6w6p
  • 支付宝