Skip to content

Market

The Market class provides market utilities like trading calendar and sector information.

Basic Usage

import pyjquants as pjq
from datetime import date

market = pjq.Market()

# Check if a day is a trading day
market.is_trading_day(date(2024, 12, 25))  # False

# Get sector information
sectors = market.sectors_33

API Reference

pyjquants.domain.market.Market

Bases: DomainEntity

Market utilities for trading calendar and sector information.

Example

market = Market() market.is_trading_day(date(2024, 12, 25)) # False market.sectors # List of sectors

sectors cached property

Get 33-sector classification list (alias for sectors_33).

Requires Standard tier or higher.

sectors_33 cached property

Get 33-sector classification list.

Requires Standard tier or higher.

sectors_17 cached property

Get 17-sector classification list.

Requires Standard tier or higher.

__init__(session=None)

Initialize Market.

引数:

名前 タイプ デスクリプション デフォルト
session Session | None

Optional session (uses global session if not provided)

None

trading_calendar(start, end)

Get trading calendar for date range.

is_trading_day(d)

Check if a date is a trading day.

trading_days(start, end)

Get list of trading days in a range.

next_trading_day(from_date)

Get the next trading day after a given date.

prev_trading_day(from_date)

Get the previous trading day before a given date.

investor_trades(start=None, end=None, section=None)

Get market-wide trading by investor type.

Returns aggregate trading volumes broken down by investor category: - Proprietary (prop_) - Brokers (brk_) - Individual (ind_) - Foreign (frgn_) - Securities companies (sec_co_) - Investment trusts (inv_tr_) - Business corporations (bus_co_) - Insurance companies (ins_co_) - Banks (bank_) - Trust banks (trst_bnk_) - Other financials (oth_fin_) - Total (total_)

引数:

名前 タイプ デスクリプション デフォルト
start date | None

Start date (optional)

None
end date | None

End date (optional)

None
section str | None

Market section filter (optional)

None

戻り値:

タイプ デスクリプション
DataFrame

DataFrame with investor trading data

breakdown(code, start=None, end=None)

Get breakdown trading data by trade type.

Requires Premium tier.

Contains trading values and volumes categorized by: - Long selling/buying - Short selling (excluding margin) - Margin selling/buying (new and closing)

引数:

名前 タイプ デスクリプション デフォルト
code str

Stock code (e.g., "7203")

必須
start date | None

Start date (optional)

None
end date | None

End date (optional)

None

戻り値:

タイプ デスクリプション
DataFrame

DataFrame with breakdown trading data

short_positions(code=None, start=None, end=None)

Get outstanding short selling positions reported.

Requires Standard tier or higher.

Contains reported short positions where ratio >= 0.5%.

引数:

名前 タイプ デスクリプション デフォルト
code str | None

Stock code (optional, returns all if not specified)

None
start date | None

Start date (optional)

None
end date | None

End date (optional)

None

戻り値:

タイプ デスクリプション
DataFrame

DataFrame with short position reports

margin_alerts(code=None, start=None, end=None)

Get margin trading daily publication (alert) data.

Requires Standard tier or higher.

Contains margin trading outstanding for issues subject to daily publication.

引数:

名前 タイプ デスクリプション デフォルト
code str | None

Stock code (optional, returns all if not specified)

None
start date | None

Start date (optional)

None
end date | None

End date (optional)

None

戻り値:

タイプ デスクリプション
DataFrame

DataFrame with margin alert data

earnings_calendar(start=None, end=None)

Get earnings announcement calendar.

Returns scheduled earnings announcements for listed companies.

引数:

名前 タイプ デスクリプション デフォルト
start date | None

Start date (optional)

None
end date | None

End date (optional)

None

戻り値:

タイプ デスクリプション
DataFrame

DataFrame with earnings calendar data including:

DataFrame
  • code: Stock code
DataFrame
  • company_name: Company name
DataFrame
  • announcement_date: Scheduled announcement date
DataFrame
  • fiscal_year: Fiscal year
DataFrame
  • fiscal_quarter: Fiscal quarter

short_ratio(sector=None, start=None, end=None)

Get short selling ratio data by sector.

Requires Standard tier or higher.

Returns short selling statistics aggregated by TOPIX-33 sector.

引数:

名前 タイプ デスクリプション デフォルト
sector str | None

Sector code (optional, returns all sectors if not specified)

None
start date | None

Start date (optional)

None
end date | None

End date (optional)

None

戻り値:

タイプ デスクリプション
DataFrame

DataFrame with short selling ratio data including:

DataFrame
  • date: Trading date
DataFrame
  • sector_33_code: TOPIX-33 sector code
DataFrame
  • selling_value: Short selling value

margin_interest(code=None, start=None, end=None)

Get margin trading interest (balance) data.

Requires Standard tier or higher.

Returns margin buying and selling balances for stocks.

引数:

名前 タイプ デスクリプション デフォルト
code str | None

Stock code (optional, returns all if not specified)

None
start date | None

Start date (optional)

None
end date | None

End date (optional)

None

戻り値:

タイプ デスクリプション
DataFrame

DataFrame with margin interest data including:

DataFrame
  • code: Stock code
DataFrame
  • date: Date
DataFrame
  • margin_buying_balance: Outstanding margin buy balance
DataFrame
  • margin_selling_balance: Outstanding margin sell balance

Examples

Trading Calendar

from datetime import date

market = pjq.Market()

# Check trading day
is_open = market.is_trading_day(date(2024, 12, 25))
print(is_open)  # False (Christmas)

# Get trading days in range
trading_days = market.trading_days(date(2024, 1, 1), date(2024, 1, 31))

# Next trading day
next_day = market.next_trading_day(date(2024, 1, 1))

Sector Information

market = pjq.Market()

# 17-sector classification
sectors_17 = market.sectors_17
for s in sectors_17:
    print(f"{s.code}: {s.name}")

# 33-sector classification
sectors_33 = market.sectors_33
for s in sectors_33:
    print(f"{s.code}: {s.name}")

Investor Trades

from datetime import date

market = pjq.Market()

# Get market-wide trading by investor type
df = market.investor_trades(start=date(2024, 1, 1), end=date(2024, 12, 31))
# Returns DataFrame with: date, proprietary, individual, foreign, etc.

Trade Breakdown

market = pjq.Market()

# Get trade breakdown by type for a specific stock (Premium tier only)
df = market.breakdown("7203")
# Returns DataFrame with trade counts by investor category

Short Positions

market = pjq.Market()

# Get outstanding short positions (Standard+ tier)
df = market.short_positions()
# Returns DataFrame with short sale reports across the market

Margin Alerts

market = pjq.Market()

# Get margin trading alerts (Standard+ tier)
df = market.margin_alerts()
# Returns DataFrame with stocks flagged for margin trading limits

Earnings Calendar

from datetime import date

market = pjq.Market()

# Get scheduled earnings announcements
df = market.earnings_calendar(start=date(2024, 1, 1), end=date(2024, 3, 31))
# Returns DataFrame with: code, company_name, announcement_date, fiscal_year, fiscal_quarter

Short Ratio

market = pjq.Market()

# Get short selling ratio by sector (Standard+ tier)
df = market.short_ratio()
# Returns DataFrame with: date, sector_33_code, selling_value

Margin Interest

market = pjq.Market()

# Get margin trading balances (Standard+ tier)
df = market.margin_interest(code="7203")
# Returns DataFrame with: code, date, margin_buying_balance, margin_selling_balance