回測システム分析
PythonTechAnalysis
元富証券の Python モジュールをダウンロードした後、回測システムをインストールするには以下のコマンドを実行します:
pip install .\MasterLink_PythonAPI\Python_tech_analysis\tech_analysis_api_v2-0.0.5-py3-none-win_amd64.whl
使用した際のパッケージバージョンは 0.0.5 でした。
公式技術文書
コアモジュール
元富証券の Python モジュールを解凍した後、コアモジュールを直接分析したところ、予想外にシンプルなコードでした。というのも、すべての機能は.dllファイル内にラップされており、Python モジュールは単純なインターフェースに過ぎなかったからです。
TechAnalysis
このコードは最初に TechAnalysisAPI をインポートし、このオブジェクトは.dllファイル内にラップされています。
次に、TechAnalysisAPIに必要なイベントを定義しますが、この部分は変更せず、これらの関数を呼び出さないため、ここでは触れません。
-
Login使用する際は、まずこの関数を使って元富証券の API にログインする必要があります。
-
GetHisBS_Stockこの関数では、株式と日付を指定する必要があり、その後、その日付におけるその株の「各ティック」の取引明細を返します。
-
SubTAとUnSubTAこれらの関数は、ユーザーが特定のテクニカル指標を購読または購読解除するために使用します。
-
テクニカル指標
TechAnalysisAPIを使用すると、以下のテクニカル指標がサポートされています:- SMA(単純移動平均)
- EMA(指数移動平均)
- RSI(相対力指数)
- MACD(移動平均収束拡散指標)
- KD(ストキャスティクス)
- CDP(逆勢操作指標)
- BBands(ボリンジャーバンド)
Model
先程述べたように、このモジュールには 2 つの.pyファイルが含まれており、そのうち 1 つは TechAnalysis で、もう 1 つは Model です。
このファイルの内容は、株式市場のテクニカル分析に使用されるデータ構造とクラスを定義しています。
以下はコード内の各部分の解析と説明です:
-
列挙型(Enum)
コードでは、テクニカル指標の種類、時間単位、株価の上昇や下落を表すいくつかの列挙型が定義されています:
eTA_Type: この列挙型は、単純移動平均(SMA)、加重移動平均(WMA)、指数移動平均(EMA)など、さまざまなテクニカル指標を表します。eNK_Kind: K 線の時間範囲を示し、日足、1 分足などがあります。eRaiseFall: 株価が上昇または下落した状態を示します。
-
データ構造(Data Classes)
これらのデータクラスは、株式市場の取引データを格納する構造を提供します:
TKBarRec: K 線データを格納するクラスで、日付、商品、時間系列、価格、取引量などを含みます。TBSRec: 特定の株式または商品の売買記録を格納します。- 各テクニカル指標クラス(例えば、
ta_sma、ta_ema、ta_wmaなど)は、K 線データと計算された指標値を含みます。
-
テクニカル指標クラス
これらのクラスは、異なるテクニカル指標を表し、指標値と対応する K 線データを組み合わせます。例えば:
ta_sma、ta_ema、ta_wmaクラスはそれぞれ、単純移動平均、指数移動平均、加重移動平均を表します。ta_sarクラスには、ストップロスと価格の上昇・下落状態などの追加情報が含まれます。ta_rsiとta_macdクラスは、相対力指数と移動平均収束拡散指標に関連するデータを提供します。ta_kd、ta_cdp、ta_bbandsクラスは、それぞれストキャスティクス、逆勢操作指標、ボリンジャーバンドのデータを表します。
-
k_settingクラスこのクラスは、テクニカル分析の設定を管理するために使用されます。これには、商品 ID、時間範囲、テクニカル指標の種類、開始日などが含まれます。
このクラスは、テクニカル分析設定の基礎となり、テクニカル分析 API の呼び出しを初期化し設定するために使用されます。