💹

株式・暗号資産で儲けるための分析支援系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)

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)

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)

Qlib(Python)

GitHubで編集を提案

Discussion