Python クオンツ金融ライブラリ
クオンツ金融の分野でよく使われる Python ライブラリを学びます。例えば:
zipline: バックテストと取引アルゴリズムの実装に使用するライブラリ。インストールコマンド:pip install zipline。
Quantlib: 金融商品の価格設定と金融計算の実行に使用するライブラリ。インストールコマンド:pip install Quantlib。
TA-Lib: テクニカル分析のためのライブラリ。インストールコマンド:pip install TA-Lib。
pyfolio: ポートフォリオのパフォーマンスを評価するためのライブラリです。zipline などのバックテストツールと統合でき、ポートフォリオの収益やリスクなどの分析ツールを提供します。インストールコマンド:pip install pyfolio。
statsmodels: 統計モデルを推定するためのライブラリで、線形回帰、時系列分析などを含みます。クオンツ金融では、取引戦略の構築とテストに使用できます。インストールコマンド:pip install statsmodels。
zipline
zipline は、クオンツ金融の研究とアルゴリズム取引のためのオープンソースフレームワークです。
これは Quantopian 社によって開発され、研究者や開発者に、クオンツ取引戦略を構築、テスト、実行するための便利なツールを提供することを目的としています。
zipline を使用する前に、このライブラリがインストールされていることを確認してください。次のコマンドでインストールできます:
conda install -c conda-forge zipline
ここでは、Anacondazipline をインストールして、後でおかしな問題が発生するのを防ぎます。
次に、quandl公式サイトにログインして登録し、API キーを取得します:https://data.nasdaq.com/account/profile。
次に API キーを設定し、データパッケージをダウンロードします。具体的なコマンドは次のとおりです:
set QUANDL_API_KEY=your_key
macOS システムでは次のコマンドを使用します:
export QUANDL_API_KEY=your_key-zZQN
データパッケージをダウンロード:
zipline ingest -b quandl
データパッケージを確認:
# zipline bundles csvdir <no ingestions> quandl 2023-12-09 06:02:03.178299 quandl 2023-12-09 05:59:04.273082 quandl 2023-12-09 05:54:57.277732 quandl 2023-12-09 05:52:15.532504 quandl 2023-12-09 03:32:03.853032 quantopian-quandl <no ingestions>
それでは、zipline を使って簡単なテストを行いましょう。
以下は、株式取引のバックテストを行うための簡単な Zipline 戦略スクリプトです:
実例
def initialize(context):
pass
def handle_data(context, data):
order(symbol('AAPL'), 10)
record(AAPL=data.current(symbol('AAPL'), 'price'))
上記は、各取引日に現在価格で Apple 社の株式を 10 株購入し、各取引日の AAPL の現在価格を記録する単純な戦略です。
order(symbol('AAPL'), 10):この行は、各取引日に現在価格で Apple(AAPL)の株式を 10 株購入することを示します。symbol('AAPL')AAPL の株式シンボルを取得するために使用されます。record(AAPL=data.current(symbol('AAPL'), 'price')):この行は、各取引日の AAPL の現在価格を記録することを示します。data.current(symbol('AAPL'), 'price')現在の AAPL の株価を取得するために使用されます。
次に、以下のコマンドを実行します:
# zipline run -f my_strategy.py --start 2016-1-1 --end 2018-1-1 -o buyapple_out.pickle --no-benchmark Simulated 503 trading days first open: 2016-01-04 14:30:00+00:00 last close: 2017-12-29 21:00:00+00:00
実行に成功すると、buyapple_out.pickleファイルが生成されます。私たちはpickleモジュールを使用してそれを読み取ります。
コマンドの説明:
zipline run:Zipline を起動してバックテストを実行します。-f my_strategy.py:戦略ファイルを指定します。この例では、my_strategy.pyあなたが作成した戦略を含む Python ファイルです。--start 2016-1-1と--end 2018-1-1:バックテストの開始日と終了日を指定します。この例のバックテストの期間は、2016 年 1 月 1 日から 2018 年 1 月 1 日までです。-o buyapple_out.pickle:出力ファイルの名前を指定します。この例では、バックテストの結果はbuyapple_out.pickleファイルとして保存されます。このファイルには、バックテストのさまざまな出力情報(取引記録、パフォーマンス指標など)が含まれます。--no-benchmark:ベンチマークを無効にします。バックテストでは、戦略のパフォーマンスを比較するために何らかのベンチマークを使用することがあります。--no-benchmarkオプションを使用して、いかなるベンチマークも使用しないことを示します。
pickle モジュールは、オブジェクトのシリアライズとデシリアライズに使用され、オブジェクトをファイルに保存したり、ファイルからオブジェクトをロードしたりするのに便利です。
以下では、buyapple_out.pickle ファイルの内容を読み取る方法を示します:
実例
# pickle ファイルのパスを指定
pickle_file_path = 'buyapple_out.pickle'
# pickle ファイルを読み取る
with open(pickle_file_path, 'rb') as file:
buyapple_out_data = pickle.load(file)
# 読み取ったデータを出力する
print(buyapple_out_data)
出力内容は次のようになります:
period_open period_close short_value pnl long_exposure ... max_leverage excess_return treasury_period_return trading_days period_label
2016-01-04 21:00:00+00:00 2016-01-04 14:31:00+00:00 2016-01-04 21:00:00+00:00 0.0 0.00000 0.0 ... 0.000000 0.0 0.0 1 2016-01
2016-01-05 21:00:00+00:00 2016-01-05 14:31:00+00:00 2016-01-05 21:00:00+00:00
その他の拡張