2. 標準化された方法でデータテーブルから情報を抽出する

前の章では、データ ソースの概念と、データ ソースに財務データを入力する方法を紹介しました。この章では、単にデータを読み取るのではなく、データ ソースから有用な情報を抽出する方法について説明します。

QTEASY データ管理モジュール: データ取得モジュール構造

2.1. 情報 != データ

クオンツ取引では大量の財務データを準備する必要があります。ただし、データ自体が最終的な目標ではありません。そこから有用な情報を抽出する必要があります。当社の取引戦略では、この情報を使用して取引の意思決定を行います。

情報はデータと同じではありません。株式の終値や始値など、一部の情報はデータ テーブルから直接読み取ることができます。ただし、株式の調整価格など、一部の情報を取得するには特定の計算が必要です。

たとえば、私たちのトレーディング戦略では、事前調整された株価を使用する必要があります。調整後の価格は株価と調整係数を使用して計算され、これらは次の 2 つのテーブルに保存されることがわかります。

  • stock_daily: 始値、終値、高値、安値などの情報を含む、株価の日次ローソク足チャート。

  • stock_adj_factor: この表には、株式の調整後の株価要因に関する情報が含まれています。

この時点で、上の 2 つのテーブルには必要なデータが格納されていますが、これらは必要な情報ではありません。必要な情報を得るには計算を実行する必要があります。

したがって、調整後の価格情報を得るには、煩雑な計算プロセスを避けることができません。

さらに、調整された時間足ローソク足価格の代わりに調整された日足ローソク足価格が必要な場合は、日足ローソク足データを時間足ローソク足データに変換する必要もあり、計算プロセスがさらに複雑になることを考慮する必要があります。

取引戦略を実装する際に、調整価格が使用されるたびに上記の換算と計算プロセスを考慮すると、戦略の実装が複雑になり、エラーが発生しやすくなります。また、戦略の実行に集中する代わりに、限られたエネルギーをこれらのつまらない計算に費やしてしまうことにもなります。

したがって、これらの些細な計算プロセスをカプセル化する方法が必要です。これにより、戦略を実装するときに、これらの些細な計算プロセスについて心配する必要がなく、戦略自体に集中するだけで済みます。

これに対処するために、qteasy データ管理モジュールは、データ テーブルから情報を抽出する標準化された方法を提供します。この方法は、DataType オブジェクトを使用します。

2.2. DataType オブジェクト

DataType オブジェクトは、QTEASY データ管理モジュールの重要なオブジェクトです。バージョン 1.4 で正式に導入され、データ テーブルから情報を抽出するための標準化されたデータ処理ロジックがカプセル化されています。これにより、ユーザーは単一の DataType オブジェクトを定義し、面倒なデータの取得や計算に時間を費やすのではなく、戦略の実装に集中できるようになります。

qteasy は、多数の組み込みの事前定義された DataType オブジェクトを提供し、ユーザーは独自のニーズに応じて DataType オブジェクトをカスタマイズすることもできます。

簡単な例として、株式分割または配当後の株式の調整価格を取得する必要があるとします。以下に示すように、組み込みの DataType: close|b オブジェクトを直接使用できます。

# 获取格力电器 2025-02-01 到 2025-02-27 的后复权收盘价
import qteasy
from qteasy.datatypes import DataType

close_b = DataType(name='close|b', asset_type='E', freq='D')
# 获取数据
close_b.get_data_from_source(
        datasource=qteasy.QT_DATA_SOURCE, 
        symbols='000651.SZ', 
        starts='2025-02-01', 
        ends='2025-02-27',
)

ts_code     000651.SZ
trade_date           
2025-02-05    9234.85
2025-02-06    9194.82
2025-02-07    9295.95
2025-02-10    9245.38
2025-02-11    9199.03
2025-02-12    9220.10
2025-02-13    9232.74
2025-02-14    9268.56
2025-02-17    9201.14
2025-02-18    9066.29
2025-02-19    8836.63
2025-02-20    8817.67
2025-02-21    8714.43
2025-02-24    8695.47
2025-02-25    8533.23
2025-02-26    8621.72
2025-02-27    8729.18

2.3. すべての DataType のリスト (簡単な説明付き)

Qteasy 2.0 には、多数の組み込み DataType が含まれています。各データ型は namefreqasset_type によって一意に識別され、特定のデータ テーブルと列、または計算方法に対応します。完全なリストは、qteasy.datatypes.get_dtype_map() を使用して取得できます。これは、インデックス (dtype、freq、asset_type) と description (目的の説明)、acquisition_type (取得方法) などの列を含む DataFrame を返します。

完全なリストを取得する

import qteasy
from qteasy import datatypes

# 仅内置类型
dtype_map = datatypes.get_dtype_map()
print(dtype_map.head(20))

# 含用户自定义类型(若有)
dtype_map_all = datatypes.get_dtype_map(include_user_defined=True)

一般的なデータ型の例

名前

freq

DataType object

用途の簡単な説明

trade_cal

d

None

取引カレンダー

close|b

D

E

株式分割後の株式終値

close|f

D

E

株価終値(株式分割調整後)

open, high, low, close, vol

D/1min/5min/…

E/IDX/FDなど

K ラインの開始高低終値ボリューム

オープン|b、ハイ|bなど。

D

E

株式分割、始値の高値と安値を調整済み

stock_symbol, stock_name, industry

None

E

銘柄コード、銘柄名、業種などの基本情報。

wt_idx|%

d

E

指数構成銘柄のウェイト付け

get_dtype_map() の出力で完全なリストを参照してください。

上の表で、freq の一般的な値は次のとおりです: D は日足チャート、1min/5min は分足チャート、None は頻度に関係のないチャート (基本情報など) です。 asset_type: 株式の場合は E、指数の場合は IDX、ファンドの場合は FD、資産制限のないチャートの場合は None です。詳細な説明、対応するデータ テーブル、および各タイプの列については、get_dtype_map() によって返される description および kwargs を参照してください。

複数のターゲットとデータ タイプを同じタイムラインで同時に実行する必要がある場合 (例: OHLC と取引高が計算またはチャートに含まれる)、次の章 HistoryPanel では、get_history_data の結果を 3D パネルに収集する方法を紹介します。グラフ作成のエントリ ポイントは、次の章 HistoryPanel 視覚化 にあります。