QuantX

QuantXで使えるライブラリ(パッケージ)

投稿日:

 前回、QuantXの基本構成を記載しました。今回から各ブロックごとに記載方法・内容などの注意点を記載していきます。今回は一番初めに記載するライブラリについて記載したいと思います。今回の内容は非常に簡単です。基本構成を理解していない方は前回記事を参照してください。

前提

・QuantXの基本構成を理解している(前回の記事を読んでいれば可)。
・ライブラリとは何かを理解している
・ライブラリの機能の理解には統計学含め高校~大学程度の数学的な知識や機械学習用語の知識が必要です。

使用できるライブラリ(パッケージ)

 ライブラリなんてimportすれば何でも使えるでしょ?とお考えの人もいるかもしれません。実際の所、システムトレードを行うために必要と思える大概のものは使えるのですが、自分ですべての環境を用意しているわけではないのでQuantX側の環境設定に依存する部分がどうしても出てきます。ということで、当然ですがQuantX側の説明があります

 内容が容易に理解できる方は、これで説明が終わってしまうんですがリンク先の内容は以下のようになっておりライブラリ名(パッケージ名)とバージョンしか記載がなく説明が何もない(2021年3月29日現在)です。

packagesversion
Python3.8.5
numpy1.19.5
pandas1.2.3
statsmodels0.12.2
scikit-learn0.24.1
scipy1.6.1
TA-lib0.4.19
cvxopt1.2.6
xgboost1.3.3
Keras2.4.3
tensorflow2.4.1
PyTorch1.7.1
gym0.18.0

 でも、これだとpythonに詳しくない人は意味がわからないし使えないですね。一つ一つ調べればわかるとは思いますが面倒ですし、自分も忘れた場合の見直しに便利なので後で簡単に説明したいと思います。なお、ここには記載がありませんが、QuantXのエンジンである maron というライブラリが必須となっていてバージョンを別途選択して使用します。

表には、packeges(パッケージ名)とversion(バージョン)と記載されています。パッケージ名とかモジュール名とかライブラリ名とかいろんな言葉があるんですが、特にライブラリとパッケージの説明は混在していることが多いです。しかもパッケージの説明にTA-lib、ta-lib、talibなどいろんな表記もでてきます。この表の中に出てくる、packegesはインストールなどをするときに一般的な呼び名だと思ってもらえれば大丈夫です。そして、QuantXでこれらを使用するときは必ずしもこの名称を使用しない ということだけ理解してください。

 なお、一般的に ライブラリ>パッケージ>モジュール>クラスや関数 という関係がありますがライブラリ=パッケージとして扱われているものも多いです。

使用方法

ライブラリ(パッケージ)はプログラムのはじめにimport して使用します。特定のモジュール(パッケージ内の特定のプログラムファイル)や特定のクラス(モジュール内の一部のプログラム)だけを読み込むこともできます

使用方法は、
import ライブラリ名/モジュール名
import ライブラリ名/モジュール名 as 別名
だけ理解していれば概ね問題ありません。

from モジュール名 import クラス名
という使い方もあります。前者との違いは、前者ではモジュール名(別名)の要素としてクラスを呼び出す必要がありますが、後者ではプログラム上での使用に際してモジュール名を記載せずにクラス名から記載できます(ただし名前が衝突してしまわないように注意が必要です)。また、特定クラスだけの呼び出しのためライブラリ全てを読み込む必要がないためコストが下がります。大きいライブラリの特定機能だけ使用する場合にはこちらで呼び出したほうが良いでしょう。

ライブラリ説明

以下では必須の maron 以外で使用されるライブラリについてどのようなものか簡単に説明します。実際の使用方法については別の機会に説明します。黄色マーカーはライブラリ等のインポート時に単純に名称記載としていない場合の例。太字のライブラリは開発初期段階でもよく使用するもの。

ライブラリ/パッケージ呼び出し記載例ライブラリの内容
numpy(NumPy)import numpy as np行列を扱うことができ数値計算を高速に行える。
pandas(Pandas)import pandas as pd数表および時系列データを操作するためのデータ構造と演算を中心としたデータ解析に利用される。事実上必須。
statsmodels(StatsModels)import statsmodels.api as sm回帰分析(データを探索して統計モデルを推定する)を行う
scikit-learnimport sklearn as sl機械学習ライブラリ(回帰、分類、クラスタリング、教師なし学習の次元削減等)
scipyfrom scipy import integrate高度な科学計算(高度な行列や積分など)を行う。あわせてnumpyの使用が必須。左記の記載例は積分処理のクラスだけを呼び出している。
TA-libimport talib as ta株価などのチャートのテクニカル分析を行う。よく使用する。
cvxoptfrom cvxopt import matrix数理最適化問題を解く際に使用する。
xgboost(XGBoost)import xgboost as xgb機械学習の一つで勾配ブースティング(アンサンブル学習と決定義を組み合わせた手法)を使用する
Kerasfrom keras.models import Sequential人間向けに設計されたニューラルネットワークライブラリで他のニュートラルネットワークライブラリ(TensorFlowなど)上で実行可能。
tensorflow(TensorFlow)import tensorflow as tfGoogleが提供する機械学習フレームワーク
PyTorchimport torchFacebookが開発を主導した機械学習ライブラリ
gymimport gym非営利団体「OpenAI」が提供する強化学習(機械学習の内、システム自身が試行錯誤しながら、最適なシステム制御を実現する)のライブラリ。

まとめ

 QuantXで使用できるライブラリは決まっています。逆に言えば限られたライブラリの使い方を覚えれば十分です。これらのライブラリを組み合わせ、自分のアイデアを実現していくことで複雑な知識や労力を抑えてトレード用システムを開発できます。

-QuantX

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

QuantXの基本構造

QuantXはシステムトレード用開発環境としてユーザー数を拡大しています。今日は、開発の最も基礎となる基本構造について記載します。 前提 ・エンジンは maron-0.1.0 を利用・何らかのプログラ …

QuantXの売買ハンドリング

 QuantXで初期化関数を準備できたらあとは実際に売買の管理をする関数(日ごとの処理をする関数)を準備すれば基本システムは完成します。基本構造で示したように売買ハンドリングは予め決められた関数(de …

QuantXの初期化関数(4)シグナル判定関数の登録

 シグナル判定関数を作成したらその関数を日々のデータに対して適用するように呼び出す必要があります。QuantXでは、その呼び出しは大元の処理で行われるため、初期化関数内で単にシグナル判定関数をシステム …

QuantXの初期化関数(2-1)シグナル生成関数の構造と引数

 QuantXの初期化関数では使用データを定義(設定)するだけでなく、使用データで売買シグナルを生成する関数(以下シグナル生成関数と呼称)を登録する必要があります。シグナル生成関数についてもルールや基 …

QuantXの初期化関数(1)初期設定部分

 QuantXの初期化関数ではまず使用するデータを定義(設定)する必要があります。QuantX以外の環境で自作する場合には、実際に設定したデータを読み込む処理をつくったり必要に応じて読み込みデータの加 …

PAGE TOP