提交
This commit is contained in:
@@ -352,6 +352,93 @@ class StockReferenceOut(BaseModel):
|
||||
records: list[dict[str, str | float | None]] = Field(default_factory=list)
|
||||
|
||||
|
||||
# ---------- 打板专题(主页,同花顺口径) ----------
|
||||
class LimitStockOut(BaseModel):
|
||||
"""涨跌停榜单行:三池共用,涨停池字段最全(炸板/跌停池仅价格类字段)。"""
|
||||
ts_code: str
|
||||
name: str | None = None
|
||||
price: float | None = None # 收盘价(元)
|
||||
pct_chg: float | None = None # 涨跌幅 %
|
||||
tag: str | None = None # 涨停标签:首板 / 2天2板(仅涨停池)
|
||||
status: str | None = None # 涨停状态:一字板 / 换手板 / N连板(仅涨停池)
|
||||
lu_desc: str | None = None # 涨停原因(仅涨停池)
|
||||
open_num: float | None = None # 打开次数
|
||||
limit_amount_yi: float | None = None # 封单额(亿元,仅涨停池)
|
||||
turnover_yi: float | None = None # 成交额(亿元,仅涨停池)
|
||||
first_lu_time: str | None = None # 首次涨停时间
|
||||
last_lu_time: str | None = None # 最后涨停时间(仅炸板池)
|
||||
limit_up_suc_rate: float | None = None # 近一年封板率 %(仅涨停池)
|
||||
|
||||
|
||||
class LimitLadderOut(BaseModel):
|
||||
ts_code: str
|
||||
name: str | None = None
|
||||
nums: int # 连板数
|
||||
|
||||
|
||||
class LimitBlockOut(BaseModel):
|
||||
name: str | None = None # 同花顺概念板块名
|
||||
days: float | None = None # 板块连涨天数
|
||||
up_stat: str | None = None # 如「6天3板」
|
||||
cons_nums: float | None = None # 连板家数
|
||||
up_nums: float | None = None # 涨停家数
|
||||
pct_chg: float | None = None # 板块涨跌 %
|
||||
|
||||
|
||||
class LimitSummaryOut(BaseModel):
|
||||
up_count: int = 0
|
||||
broken_count: int = 0
|
||||
down_count: int = 0
|
||||
first_board_count: int = 0
|
||||
max_ladder: LimitLadderOut | None = None
|
||||
ladder_dist: list[dict[str, int]] = Field(default_factory=list) # [{nums, count}] 升序(2板起)
|
||||
|
||||
|
||||
class LimitBoardResponse(BaseModel):
|
||||
trade_date: str # YYYY-MM-DD
|
||||
updated_at: str
|
||||
summary: LimitSummaryOut
|
||||
up: list[LimitStockOut] = Field(default_factory=list) # 涨停池(按封单额降序)
|
||||
broken: list[LimitStockOut] = Field(default_factory=list) # 炸板池
|
||||
down: list[LimitStockOut] = Field(default_factory=list) # 跌停池
|
||||
ladder: list[LimitLadderOut] = Field(default_factory=list) # 连板天梯(连板数降序)
|
||||
blocks: list[LimitBlockOut] = Field(default_factory=list) # 涨停最强板块
|
||||
errors: list[str] = Field(default_factory=list)
|
||||
|
||||
|
||||
# ---------- 概念板块(THS:ths_index 列表 + ths_daily 行情 + ths_member 成分) ----------
|
||||
class ThsBoardOut(BaseModel):
|
||||
ts_code: str # 885835.TI / 700001.TI
|
||||
name: str | None = None
|
||||
type: str | None = None # N概念 I行业 TH主题 S特色 R地域 BB宽基 ST风格
|
||||
count: float | None = None # 成分个数
|
||||
list_date: str | None = None # YYYYMMDD
|
||||
close: float | None = None # 板块指数收盘(当日快照)
|
||||
pct_change: float | None = None # 涨跌幅 %
|
||||
vol: float | None = None # 成交量(手)
|
||||
turnover_rate: float | None = None # 换手率 %
|
||||
|
||||
|
||||
class ThsBoardListResponse(BaseModel):
|
||||
trade_date: str | None = None
|
||||
updated_at: str | None = None
|
||||
boards: list[ThsBoardOut] = Field(default_factory=list)
|
||||
errors: list[str] = Field(default_factory=list)
|
||||
|
||||
|
||||
class ThsMemberOut(BaseModel):
|
||||
con_code: str # 成分股代码 000016.SZ
|
||||
con_name: str | None = None
|
||||
close: float | None = None # 现价(candles 最新,北交所等无底座为空)
|
||||
pct_chg: float | None = None # 涨跌幅 %(最新收盘 / 前收 - 1)
|
||||
|
||||
|
||||
class ThsBoardMembersResponse(BaseModel):
|
||||
code: str
|
||||
name: str | None = None
|
||||
members: list[ThsMemberOut] = Field(default_factory=list)
|
||||
|
||||
|
||||
# ---------- Auth ----------
|
||||
class LoginRequest(BaseModel):
|
||||
username: str = Field(min_length=1, max_length=64)
|
||||
|
||||
Reference in New Issue
Block a user