はじめに
Qlibはマイクロソフトが開発したオープンソースプラットフォームで、AI技術を駆使してユーザーのクオンツ投資リサーチを支援することに主眼を置いている。Qlibは、基本的なデータ処理から始まり、ユーザーが投資アイデアを探求し、利用可能な戦略に転換するのをサポートする。qlibはデータ管理、モデルトレーニング、バックテスト機能を提供し、クオンツ投資の全プロセスをカバーする。マイクロソフト・リサーチ・チームによって立ち上げられたqlibは、複雑な金融データを扱うための最新のAI技術を組み込んでいる。現在2025年3月25日付で、QlibはGitHub上で継続的に更新されており、多くの開発者を惹きつける活発なコミュニティを持っている。
機能一覧
- データ処理:財務データの効率的な保存と処理をサポートし、迅速なアクセスと分析を実現。
- モデルトレーニング:教師あり学習や強化学習など様々な機械学習モデルを提供し、市場動向の予測に役立てる。
- バックテストツール:投資戦略のパフォーマンスをシミュレーションし、有効性を評価するバックテスト機能を内蔵。
- 投資戦略生成:シグナルから目標ポートフォリオを生成することで、取引決定を最適化します。
- カスタマイズ可能なモジュール:ユーザーは、個々のニーズに合わせてモデルや戦略を調整できる。
- オンラインモードとオフラインモード:ローカル展開または共有データサービスをサポートし、使用方法を柔軟に選択できます。
ヘルプの使用
設置プロセス
QlibはPythonをサポートする環境にインストールする必要があります。詳しい手順は以下の通り:
- 環境を整える
- Pythonがコンピュータにインストールされていることを確認してください(3.7または3.8推奨)。これは
<code>python --version</code>
バージョンを確認する。 - Anaconda 管理環境を使用することを推奨します。Anaconda をダウンロードしてインストールした後、新しい環境を作成します:
conda create -n qlib_env python=3.8
- 環境を活性化させる:
conda activate qlib_env
- Pythonがコンピュータにインストールされていることを確認してください(3.7または3.8推奨)。これは
- 依存関係のインストール
- まずベース・ライブラリをインストールする:
pip install numpy pip install --upgrade cython
- GitHubからQlibをインストールする:
git clone https://github.com/microsoft/qlib.git cd qlib pip install .
- 機能を開発する必要がある場合は
<code>pip install -e .[dev]</code>
.
- まずベース・ライブラリをインストールする:
- データ取得
- サンプルデータのダウンロード(中国市場向け):
python scripts/get_data.py qlib_data --target_dir ~/.qlib/qlib_data/cn_data --region cn
- データはユーザー・ディレクトリに保存され、以後使用することができる。
- サンプルデータのダウンロード(中国市場向け):
主な機能の使い方
データ処理
Qlibのデータ処理は高速で、財務データを分析に適した形式に整理することができます。上記のデータ・ダウンロード・コマンドを実行すると、データは自動的に <code>~/.qlib/qlib_data/cn_data</code>
Pythonスクリプトでデータをロードできます。Pythonスクリプトでデータをロードできます:
import qlib
qlib.init(provider_uri="~/.qlib/qlib_data/cn_data")
from qlib.data import D
instruments = D.instruments(market="csi300")
data = D.features(instruments, ["$close", "$volume"], start_time="2023-01-01", end_time="2025-03-25")
print(data.head())
指定した銘柄の終値と出来高を表示します。
モデルトレーニング
Qlibは、LightGBMのような様々なモデルをサポートしています。以下は、簡単なモデルをトレーニングする手順です:
- データセットとモデルパラメーターを設定し、次のように保存する。
<code>workflow_config.yaml</code>
::dataset: class: DatasetH module_path: qlib.data.dataset kwargs: handler: class: Alpha158 module_path: qlib.contrib.data.handler segments: train: ["2023-01-01", "2024-01-01"] valid: ["2024-01-02", "2024-06-30"] test: ["2024-07-01", "2025-03-25"] model: class: LGBModel module_path: qlib.contrib.model.gbdt
- トレーニングコマンドを実行する:
qrun workflow_config.yaml
- トレーニングが完了すると、モデルはデフォルトのパス
<code>~/.qlib/qlib_data/models</code>
.
バックテスト・ツール
バックテストはストラテジーの有効性をテストします。以下のコードでバックテストを実行する:
from qlib.contrib.strategy import TopkDropoutStrategy
from qlib.backtest import backtest
strategy = TopkDropoutStrategy(topk=10, drop=2)
report = backtest(strategy=strategy, start_time="2024-01-01", end_time="2025-03-25")
print(report)
<code>topk=10</code>
上位10銘柄を示す。<code>drop=2</code>
毎日、パフォーマンスの悪い2銘柄が破棄されることを示す。
その結果、リターンとリスク指標が表示される。
注目の機能操作
オンラインモード
Qlibは、Qlib-Serverを通じてデータを共有するオンラインモードをサポートしています:
- Qlib-Serverをインストールします:
git clone https://github.com/microsoft/qlib-server.git cd qlib-server docker-compose -f docker_support/docker-compose.yaml up -d
- クライアントがサーバーに接続できるように設定する:
qlib.init(provider_uri="http://<server_ip>:port")
- 効率化のため、データはサーバーから取得される。
カスタマイズ戦略
独自の戦略を試したい?継承は可能 <code>WeightStrategyBase</code>
クラス:
from qlib.contrib.strategy import WeightStrategyBase
class MyStrategy(WeightStrategyBase):
def generate_trade_decision(self, data):
return {stock: 0.1 for stock in data.index[:5]} # 前5只股票平分权重
その後、バックテストツールで結果をテストする。
アプリケーションシナリオ
- 個別投資リサーチ
ユーザーはQlibを使って、過去のデータを分析し、投資アイデアをテストし、より高いリターンが期待できる戦略を見つけることができる。 - 財務調査チーム
チームは Qlib のモデリングとバックテスト機能を利用して、学術的な理論を市場で迅速に検証することができます。 - 教育的学習
学生はQlibを使って、クオンツ投資、実践的なデータ処理、モデル・トレーニングについて学ぶことができる。
品質保証
- Qlibはどのオペレーティング・システムに対応していますか?
Windows、macOS、Linuxがサポートされており、Pythonと依存ライブラリがインストールされている限り動作する。 - データはどこから来るのか?
デフォルトのデータはYahoo Financeから取得したものだが、ユーザーが独自のデータに置き換えることもできる。 - プログラミングの基礎が必要ですか?
基本的なPythonの知識は必要だが、公式のドキュメントやサンプルは初心者でも十分に使い始められるように詳しく書かれている。