Client クラス

Clientクラスは、日本取引所グループ(JPX)のデリバティブデータを取得するためのメインインターフェースです。

概要

このクラスは、JPXのデリバティブ商品(主に株価指数先物・オプション)に関連する静的データと動的データを取得するための機能を提供します。静的データの提供には、GitHubまたはCloudflare R2のリポジトリを使用し、必要に応じて自動的に適切なデータソースを選択します。

初期化

Client(
    product_count: int,
    dt: datetime.datetime = None,
    contract_frequency: str = "monthly",
    static_data_provider: str = "auto",
    data_provider: str = "public"
)
パラメータ:
product_count

int型。取得する限月の数。

dt

datetime.datetime型(省略可能)。基準日。指定しない場合は現在の日付を使用。

contract_frequency

str型(省略可能)。限月の取得頻度。“monthly”(毎月)または”weekly”(毎週)を指定。デフォルトは “monthly”。

static_data_provider

str型(省略可能)。静的データプロバイダーの種類。“github”、“r2”、または”auto”を指定。デフォルトは “auto”。

data_provider

str型(省略可能)。データプロバイダーの種類。”public”または”private”を指定。デフォルトは “public”。

メソッド

get_contract_months()

限月リストを取得します。限月は、デリバティブ商品の取引期限を表す識別子です。

例えば、「2023-03」は2023年3月限を表します。週次商品の場合は「2023-03-W1」のように「-W」が付加されます。

戻り値:
List[str]

限月のリスト(例: [“2023-03”, “2023-04”, “2023-05”, …])

使用例:

client = Client(product_count=3)
contract_months = client.get_contract_months()
print(contract_months)  # 例: ["2025-03", "2025-04", "2025-05"]

get_last_trading_days()

取引最終年月日リストを取得します。取引最終日は、各限月の商品が取引される最後の日付です。

戻り値:
List[datetime.date]

取引最終年月日のリスト

使用例:

client = Client(product_count=3)
last_trading_days = client.get_last_trading_days()
print(last_trading_days)  # 例: [datetime.date(2025, 3, 14), datetime.date(2025, 4, 11), ...]

get_special_quotation_days()

SQ日(特別清算指数算出日)リストを取得します。SQ日は、デリバティブ商品の最終決済価格を決定するための特別な清算指数が算出される日です。通常は取引最終日の翌営業日に設定されます。

戻り値:
List[datetime.date]

SQ日のリスト

使用例:

client = Client(product_count=3)
sq_days = client.get_special_quotation_days()
print(sq_days)  # 例: [datetime.date(2025, 3, 17), datetime.date(2025, 4, 14), ...]

get_interest_rates()

理論価格計算用金利リストを取得します。この金利は、デリバティブ商品の理論価格を計算する際に使用されます。

戻り値:
List[float]

金利のリスト(パーセント単位)

使用例:

client = Client(product_count=3)
interest_rates = client.get_interest_rates()
print(interest_rates)  # 例: [0.12, 0.13, 0.14]

get_current_value(code: str)

指定された銘柄コードの現在値を取得します。これは価格データを提供するプロバイダーから取得されます。

パラメータ:
code

str型。銘柄コード(例: “101” = 日経225先物)

戻り値:
float

現在値(現在の市場価格)

使用例:

client = Client(product_count=3)
current_value = client.get_current_value("101")  # 日経225先物の現在値
print(current_value)  # 例: 38500.0

使用例

基本的な使用方法

import datetime
from jpx_derivatives.client import Client

# 3限月分のデータを取得するクライアントを初期化
client = Client(product_count=3)

# 限月リストを取得
contract_months = client.get_contract_months()
print(f"限月: {contract_months}")

# 取引最終日を取得
last_trading_days = client.get_last_trading_days()
print(f"取引最終日: {last_trading_days}")

# SQ日を取得
sq_days = client.get_special_quotation_days()
print(f"SQ日: {sq_days}")

# 日経225先物(銘柄コード: 101)の現在値を取得
current_value = client.get_current_value("101")
print(f"日経225先物の現在値: {current_value}")

異なるデータプロバイダーの指定

# GitHubから静的データを取得するクライアント
github_client = Client(
    product_count=3,
    static_data_provider="github"
)

# Cloudflare R2から静的データを取得するクライアント
r2_client = Client(
    product_count=3,
    static_data_provider="r2"
)

# 週次限月データを取得するクライアント
weekly_client = Client(
    product_count=6,
    contract_frequency="weekly"
)