This commit is contained in:
2026-09-09 11:35:02 +08:00
parent bc1c72d558
commit d656c05b3d
35 changed files with 711 additions and 3194 deletions

View File

@@ -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)
# ---------- 概念板块THSths_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)