Skip to content

Disposition and Attention Stocks

Query the published disposition and attention stock lists.

Disposition Stocks

punish

api.punish?

Signature:
    api.punish(
        timeout: int = 5000,
        cb: Callable[[shioaji.data.Punish], NoneType] = None,
    ) -> shioaji.data.Punish

Parameters

timeout: timeout in milliseconds
cb:      callback function, used when timeout=0

punish

GET /api/v1/data/regulatory_punish

Attributes

Punish

code (list[str]):            symbol codes
start_date (list[date]):     disposition start date
end_date (list[date]):       disposition end date
updated_at (list[datetime]): updated time
interval (list[str]):        matching interval
unit_limit (list[float]):    single-order limit
total_limit (list[float]):   daily-order limit
description (list[str]):     description
announced_date (list[date]): announced date

Examples

In

api.punish()

Out

Punish[86](
    code=["1591", "1595", ...],
    start_date=["2026-05-21", "2026-05-11", ...],
    end_date=["2026-06-03", "2026-05-22", ...],
    updated_at=["2026-05-20T18:18:31", "2026-05-08T18:18:39", ...],
    interval=["25分鐘", "5分鐘", ...],
    unit_limit=[None, 10, ...],
    total_limit=[None, 30, ...],
    description=["...", "...", ...],
    announced_date=["2026-05-20", "2026-05-08", ...]
)

Convert to DataFrame (polars example)

In

import polars as pl
punish = api.punish()
df = pl.DataFrame(punish.dict())
df.head()

Out

code start_date end_date updated_at interval unit_limit total_limit description announced_date
1591 2026-05-21 2026-06-03 2026-05-20T18:18:31 25分鐘 null null ... 2026-05-20
1595 2026-05-11 2026-05-22 2026-05-08T18:18:39 5分鐘 10 30 ... 2026-05-08

In

curl http://localhost:8080/api/v1/data/regulatory_punish

Out

{
  "code": ["1591", "1595", "..."],
  "start_date": ["2026-05-21", "2026-05-11", "..."],
  "end_date": ["2026-06-03", "2026-05-22", "..."],
  "updated_at": ["2026-05-20T18:18:31", "2026-05-08T18:18:39", "..."],
  "interval": ["25分鐘", "5分鐘", "..."],
  "unit_limit": [null, 10, "..."],
  "total_limit": [null, 30, "..."],
  "description": ["...", "...", "..."],
  "announced_date": ["2026-05-20", "2026-05-08", "..."]
}

Attention Stocks

notice

api.notice?

Signature:
    api.notice(
        timeout: int = 5000,
        cb: Callable[[shioaji.data.Notice], NoneType] = None,
    ) -> shioaji.data.Notice

Parameters

timeout: timeout in milliseconds
cb:      callback function, used when timeout=0

notice

GET /api/v1/data/regulatory_notice

Attributes

Notice

code (list[str]):            symbol codes
updated_at (list[datetime]): updated time
close (list[float]):         closing price
reason (list[str]):          attention reason
announced_date (list[date]): announced date

Examples

In

api.notice()

Out

Notice[2](
    code=["6775", "6990"],
    updated_at=["2026-05-21T17:18:15", "2026-05-21T17:18:15"],
    close=[51.16, 153.29],
    reason=["...", "..."],
    announced_date=["2026-05-21", "2026-05-21"]
)

Convert to DataFrame (polars example)

In

import polars as pl
notice = api.notice()
df = pl.DataFrame(notice.dict())
df.head()

Out

code updated_at close reason announced_date
6775 2026-05-21T17:18:15 51.16 ... 2026-05-21
6990 2026-05-21T17:18:15 153.29 ... 2026-05-21

In

curl http://localhost:8080/api/v1/data/regulatory_notice

Out

{
  "code": ["6775", "6990"],
  "updated_at": ["2026-05-21T17:18:15", "2026-05-21T17:18:15"],
  "close": [51.16, 153.29],
  "reason": ["...", "..."],
  "announced_date": ["2026-05-21", "2026-05-21"]
}