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
|
|
DataFrame
|
|
DataFrame
|
|
DataFrame
|
|
DataFrame
|
|
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
|
|
DataFrame
|
|
DataFrame
|
|
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
|
|
DataFrame
|
|
DataFrame
|
|
DataFrame
|
|
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