feat: 市场看板 - 聚合同花顺SDK全量数据的A股实时看板
- 新增 /dashboard 页面:暗色主题,指数行情/市场温度/涨跌分布/行业强度/概念热度/事件情报 - 后端聚合接口 /api/market-dashboard,30秒缓存 - 利用SDK接口:指数行情、全市场快照、涨停/跌停/炸板池、连板天梯、热门股、飙升榜、龙虎榜、异动分析、集合竞价基准、行业/概念目录 - 市场温度评分:6因子加权(涨跌比/中位涨跌/强弱比/涨停活跃度/炸板惩罚/竞价信号) - 首页添加市场看板导航入口
This commit is contained in:
@@ -200,3 +200,88 @@ async def index_prices_snapshot(thscodes: str) -> list[dict]:
|
||||
async def index_prices_historical(thscode: str, start_ms: int, end_ms: int) -> list[dict]:
|
||||
items = await _run(_sdk.index_prices_historical, thscode, start_ms, end_ms)
|
||||
return _item_list(items)
|
||||
|
||||
|
||||
# ---------------------------------------------------------------
|
||||
# 特殊数据(涨停/跌停池)
|
||||
# ---------------------------------------------------------------
|
||||
|
||||
async def limit_up_pool(date_ms=None, page=1, size=50,
|
||||
sort_field="seal_money", sort_dir="desc") -> dict:
|
||||
data = await _run(_sdk.special_data_limit_up_pool, date_ms=date_ms,
|
||||
page=page, size=size, sort_field=sort_field, sort_dir=sort_dir)
|
||||
return data or {}
|
||||
|
||||
|
||||
async def limit_down_pool(date_ms=None, page=1, size=50,
|
||||
sort_field="last_limit_time", sort_dir="desc") -> dict:
|
||||
data = await _run(_sdk.special_data_limit_down_pool, date_ms=date_ms,
|
||||
page=page, size=size, sort_field=sort_field, sort_dir=sort_dir)
|
||||
return data or {}
|
||||
|
||||
|
||||
# ---------------------------------------------------------------
|
||||
# 全市场行情快照
|
||||
# ---------------------------------------------------------------
|
||||
|
||||
async def prices_snapshot_all(limit: int = 5000) -> list[dict]:
|
||||
"""拉取全市场 A 股行情快照(自动分页)"""
|
||||
items = await _run(_sdk.prices_snapshot, None, fetch_all_market=True, limit=limit)
|
||||
return _item_list(items)
|
||||
|
||||
|
||||
# ---------------------------------------------------------------
|
||||
# 特殊数据(热门股/龙虎榜/异动/连板/飙升)
|
||||
# ---------------------------------------------------------------
|
||||
|
||||
async def hot_stock_list(period: str = "day") -> dict:
|
||||
data = await _run(_sdk.special_data_hot_stock_list, period=period)
|
||||
return data or {}
|
||||
|
||||
|
||||
async def dragon_tiger_list(board_type: str = "all", date: str = None) -> dict:
|
||||
data = await _run(_sdk.special_data_dragon_tiger_list, board_type=board_type, date=date)
|
||||
return data or {}
|
||||
|
||||
|
||||
async def anomaly_analysis_list(tag_codes=None) -> dict:
|
||||
data = await _run(_sdk.special_data_anomaly_analysis_list, tag_codes=tag_codes)
|
||||
return data or {}
|
||||
|
||||
|
||||
async def skyrocket_list(period: str = "day") -> dict:
|
||||
data = await _run(_sdk.special_data_skyrocket_list, period=period)
|
||||
return data or {}
|
||||
|
||||
|
||||
async def limit_up_ladder() -> dict:
|
||||
data = await _run(_sdk.special_data_limit_up_ladder)
|
||||
return data or {}
|
||||
|
||||
|
||||
# ---------------------------------------------------------------
|
||||
# 集合竞价 / 估值 / 炸板 / 概念板块
|
||||
# ---------------------------------------------------------------
|
||||
|
||||
async def auction_snapshot(thscodes: str, stage: str = "final") -> dict:
|
||||
codes = [c.strip() for c in thscodes.split(",") if c.strip()]
|
||||
data = await _run(_sdk.a_share_auction_snapshot, codes, stage=stage)
|
||||
return data or {}
|
||||
|
||||
|
||||
async def auction_short_term_benchmark(date: str = None) -> dict:
|
||||
data = await _run(_sdk.a_share_auction_short_term_benchmark, date=date)
|
||||
return data or {}
|
||||
|
||||
|
||||
async def valuations_snapshot(thscodes: str) -> dict:
|
||||
codes = [c.strip() for c in thscodes.split(",") if c.strip()]
|
||||
data = await _run(_sdk.a_share_valuations_snapshot, codes)
|
||||
return data or {}
|
||||
|
||||
|
||||
async def limit_break_pool(date_ms=None, page=1, size=50,
|
||||
sort_field="price_change_ratio_pct", sort_dir="desc") -> dict:
|
||||
data = await _run(_sdk.special_data_limit_break_pool, date_ms=date_ms,
|
||||
page=page, size=size, sort_field=sort_field, sort_dir=sort_dir)
|
||||
return data or {}
|
||||
|
||||
Reference in New Issue
Block a user