💹
株式・暗号資産で儲けるための分析支援系OSS一覧
以下に、株式および暗号資産を対象にファンダメンタル分析またはテクニカル分析が可能で、バックテスト機能を備えた主要なオープンソース・ソフトウェア(OSS)をリストアップしました。
まだどれも試せていないので使った方は使用感をコメント欄で教えてくださると嬉しいです。
Backtrader(Python)
- 対応言語: Python
- 主な機能: 豊富なテクニカル指標と分析機能を内蔵し、過去データを用いたバックテストやライブ取引に対応。再利用可能なストラテジーやインジケーターの作成に集中できる設計 (Welcome - Backtrader)(ファンダメンタル分析機能は特になし)。
- 対象資産: 株式、暗号資産ほか(CSVやAPI経由で任意の市場データを投入可能)
- 特徴・強み: 機能が充実したイベント駆動型のバックテスト&トレーディングフレームワーク。コミュニティも活発で、暗号資産取引所との連携(CCXT経由)にも対応する拡張が存在します。
- リンク: GitHub:mementum/backtrader
Zipline(Python)
- 対応言語: Python
- 主な機能: イベント駆動型のアルゴリズムトレーディングシミュレータで、過去データでの戦略バックテストおよびライブトレードに対応 (Zipline — Zipline 3.0 docs)。移動平均などの基本的なテクニカル指標や統計分析をアルゴリズム内で利用可能 (Zipline — Zipline 3.0 docs)。
- 対象資産: 株式(Quantopianでは米国株中心)。暗号資産は公式には未対応ですが、Enigma CatalystなどZiplineを拡張したプロジェクトで対応例あり。
- 特徴・強み: Quantopian社によって開発された実績があり、Pandasデータフレームによる入出力や統計・機械学習ライブラリ(matplotlib, SciPy, StatsModels, scikit-learn等)との統合が容易 (Zipline — Zipline 3.0 docs)。アルゴリズムの開発に専念できる「電池付き(batteries included)」の設計が特徴です。
- リンク: GitHub: quantopian/zipline
Backtesting.py(Python)
- 対応言語: Python
- 主な機能: 軽量で高速なバックテストフレームワーク。PandasやNumPy上に構築されており、ローソク足形式の歴史データがあれば株式・暗号資産・為替など様々な資産で戦略検証が可能 (Backtesting.py - Backtest trading strategies in Python)。テクニカル指標ライブラリ(TA-Libやpandas-taなど)と組み合わせた分析、パラメータ最適化、対話的な可視化機能を備えています (Backtesting.py - Backtest trading strategies in Python) (Backtesting.py - Backtest trading strategies in Python)。
- 対象資産: 株式、暗号資産、為替、先物など(時系列データがあれば対応) (Backtesting.py - Backtest trading strategies in Python)
- 特徴・強み: ユーザーフレンドリーかつ直感的なAPIで、数行のコードからバックテストが可能。Jupyterノートブック上でインタラクティブにチャートを操作できる点や、高速なベクトル演算による最適化(数百通りの戦略を秒単位でテスト)など実用性が高いです (Backtesting.py - Backtest trading strategies in Python) (Backtesting.py - Backtest trading strategies in Python)。
- リンク: GitHub: kernc/backtesting.py
QSTrader(Python)
- 対応言語: Python
- 主な機能: オブジェクト指向でモジュール化されたバックテストフレームワーク。長短両建てのシステムトレード戦略のシミュレーションを主目的としており、株式やETFのポートフォリオを想定した機能を持ちます (QSTrader)(ファンダメンタル分析機能は特になし)。イベントスケジューラによる定期リバランスなども実装可能です。
- 対象資産: 株式(現物株)、ETF(主に現物資産にフォーカス) (QSTrader)
- 特徴・強み: QuantStart(クオンートスタート)チームによって開発・運用されており、プロ向けの拡張性と信頼性があります (QSTrader)。オープンソースコミュニティやヘッジファンド内でも利用されている実績があります。
- リンク: GitHub: mhallsmoore/qstrader
Freqtrade(Python)
- 対応言語: Python
- 主な機能: 暗号資産専用の自動売買ボット。主要取引所への接続に対応し、ユーザ定義の戦略でテクニカル指標を用いた取引が可能です。バックテスト機能や収益曲線のプロット、資金管理ツールを備え、機械学習による戦略のパラメータ最適化(ハイパー最適化)にも対応しています (Freqtrade) (Freqtrade)。Telegram経由の遠隔操作やウェブUIも利用可能です。
- 対象資産: 暗号資産(BinanceやCoinbaseなど主要取引所の現物・先物に対応) (Freqtrade)
- 特徴・強み: 完全無料かつオープンソースであり、ドキュメントやサンプル戦略も充実しています。バックテストで戦略の有効性を検証し、そのままペーパー(仮想)トレードや本番取引に移行できる一貫したワークフローを提供します。コミュニティが活発で、ストラテジーの共有リポジトリも存在します。
- リンク: GitHub: freqtrade/freqtrade
Jesse(Python)
- 対応言語: Python
- 主な機能: 暗号資産トレード向けの包括的フレームワーク。300種類以上のテクニカル指標を標準搭載し、複数タイムフレーム・複数通貨ペアを組み合わせた戦略の構築、過去データでの高精度バックテスト、パラメータ最適化、さらには現物・先物を含むライブ取引まで一貫してサポートします (GitHub - jesse-ai/jesse: An advanced crypto trading bot written in Python)。
- 対象資産: 暗号資産(スポット現物および先物)
- 特徴・強み: シンプルな文法で戦略を定義でき、バックテストエンジンは高速かつ正確(ルックアヘッドバイアス排除)です (Jesse - The Open-source Python Bot For Trading Cryptocurrencies)。自己ホスティング型でプライバシーが守られ、Docker環境でも動作可能。コミュニティによる戦略共有やサポートもあり、ドキュメントも整備されています。
- リンク: GitHub: jesse-ai/jesse
Lean (QuantConnect Lean)(C#コア/Python対応)
- 対応言語: C# (エンジン本体)、Python/C# (戦略記述言語として利用可能)
- 主な機能: QuantConnect社が開発したプロ向けのオープンソース統合プラットフォーム。イベント駆動型で、バックテスト・最適化・ライブトレードまで一貫して行えるのが特徴です (LEAN Algorithmic Trading Engine - QuantConnect.com)。株式の財務データや代替データを含む様々なデータソースに対応し、100種類以上のテクニカル指標を標準搭載 (LEAN Algorithmic Trading Engine - QuantConnect.com)。分割や配当など企業アクションの自動処理、ユニバース選択機能など高度な機能も備えます。
- 対象資産: 株式、暗号資産、先物、オプション、FXなど主要な9資産クラスを同一ポートフォリオ内で扱えます (LEAN Algorithmic Trading Engine - QuantConnect.com) (LEAN Algorithmic Trading Engine - QuantConnect.com)。
- 特徴・強み: 機関投資家レベルの性能と拡張性を持つフレームワークです。スリッページモデルや手数料モデルなどを差し替え可能なプラグインアーキテクチャで、精緻なシミュレーションが可能。QuantConnectクラウドと同じエンジンでありながらオープンソースで自由に使える点も強みです。
- リンク: GitHub: QuantConnect/Lean
PyAlgoTrade(Python)
- 対応言語: Python
- 主な機能: イベント駆動型のアルゴリズム取引ライブラリ。過去データでのバックテストを主眼に設計され、Yahoo! FinanceやQuandlから取得した株価データ(CSV)やBitcoinの価格データ(Bitstamp対応)で検証が可能です (GitHub - gbeced/pyalgotrade: Python Algorithmic Trading Library)。テクニカル指標(SMA、EMA、RSI、ボリンジャーバンド等)やフィルター、シャープレシオやドローダウン分析などのパフォーマンス指標も備え、TA-Libとの統合にも対応しています (GitHub - gbeced/pyalgotrade: Python Algorithmic Trading Library)。一部取引所(Bitstamp)ではペーパートレード・ライブ取引も可能です (GitHub - gbeced/pyalgotrade: Python Algorithmic Trading Library)。
- 対象資産: 株式(Yahoo!などの市場データ)、暗号資産(Bitstamp対応) (GitHub - gbeced/pyalgotrade: Python Algorithmic Trading Library)
- 特徴・強み: シンプルなAPIで扱いやすく、チュートリアルやドキュメントも整っています。※開発者による保守は停止していますが、同開発者から後継のasync対応フレームワーク「Basana」が公開されています。
- リンク: GitHub: gbeced/pyalgotrade
VectorBT(Python)
- 対応言語: Python
- 主な機能: NumPyやPandasを駆使したベクトル化による高速バックテストが可能なクオンツ分析ライブラリです。数行のコードで資産配分や売買シグナルのテストを実行でき、テクニカル指標や売買シグナルの生成、ポートフォリオシミュレーション、パラメータ最適化など定量分析全般をカバーします (VectorBT - An Introductory Guide - AlgoTrading101 Blog)(ファンダメンタル分析機能は特になし)。Jupyter上での対話的チャート描画やTelegram通知など拡張機能もあります。
- 対象資産: 株式、暗号資産、ほか各種資産(任意の時系列データに対応)
- 特徴・強み: 非常に高速で、大量の注文やシミュレーションを短時間で処理可能(“オープンソース中最速のバックテストエンジン”とうたわれ、100万件の注文を0.1秒程度で執行 (Features - vectorbt))。オープンソース版は無料で利用でき、必要に応じて上位版(VectorBT Pro)へのアップグレードも可能です (VectorBT - An Introductory Guide - AlgoTrading101 Blog) (VectorBT - An Introductory Guide - AlgoTrading101 Blog)。
- リンク: GitHub: polakowo/vectorbt
Zenbot(JavaScript/Node.js)
- 対応言語: JavaScript (Node.js)
- 主な機能: CLI上で動作する暗号資産トレーディングボット。テクニカル分析に基づく自動売買戦略の構築が可能で、BinanceやBitfinexなど多数の暗号資産取引所に対応しています (GitHub - DeviaVir/zenbot: Zenbot is a command-line cryptocurrency trading bot using Node.js and MongoDB.)。プラグイン方式で新たな取引所やストラテジーを追加でき、過去データで戦略を検証する**シミュレーター(バックテスト)**やペーパートレード(仮想売買)モードも備えています (GitHub - DeviaVir/zenbot: Zenbot is a command-line cryptocurrency trading bot using Node.js and MongoDB.) (GitHub - DeviaVir/zenbot: Zenbot is a command-line cryptocurrency trading bot using Node.js and MongoDB.)。
- 対象資産: 暗号資産(主要取引所の現物取引に幅広く対応) (GitHub - DeviaVir/zenbot: Zenbot is a command-line cryptocurrency trading bot using Node.js and MongoDB.)
- 特徴・強み: 完全自動のシステムトレードが可能で、売買シグナル発生から発注までをフルサイクルで実行します。Node.jsとMongoDBで構築されており、コマンドラインから細かな設定を変更可能です。※開発のアクティブ度は低下していますが、利用者コミュニティによるフォークや改善が引き続き行われています。
- リンク: GitHub: DeviaVir/zenbot
Qlib(Python)
- 対応言語: Python
- 主な機能: Microsoftリサーチが公開したAI志向の定量投資プラットフォームです。機械学習(教師あり学習、強化学習など)を活用したアルファ因子の研究からモデル構築、バックテストまで一貫して行えます (GitHub - 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.)。財務データやテキスト情報からのファクターマイニング(例:決算報告分析)機能も備えており、テクニカル指標とファンダメンタル指標の両面から投資戦略を設計可能です。ポイントインタイムデータ管理やリスクモデル、ポートフォリオ最適化までカバーする高度なフレームワークです。
- 対象資産: 株式中心(中国A株や米国株のデータセット例が提供されている)。ユーザがデータを用意すれば暗号資産など他資産にも応用可能。
- 特徴・強み: 最新の研究成果を取り入れた強力なクオンツ研究プラットフォームであり、学術論文レベルのモデル(時系列AIモデルや強化学習エージェントなど)を実装・検証できます。オープンソースでありつつ商用利用も可能な柔軟性を持ち、AIを活用したファンダメンタル分析に強みがあります (GitHub - 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.)。
- リンク: GitHub: microsoft/qlib
Discussion