feat(data): A档第二批接入——新浪资金流×2+同花顺行业/概念榜进ak-events 19:30(用户批方案A);东财push2墙死后免费无墙替代源双机实测秒级零限流(新浪行业资金流90行带净额/领涨股+概念387行,同花顺行业90行×12列+概念375行);快照族语义显式化:端点无date参数无历史回补,19:30采集=收盘终态,节假日拉到上交易日快照接受重复由消费方按交易日历过滤;vintage缺日检查扩全panel族并分档——可回补族(zt_pool×3)近窗洞给回补指引,快照族洞即永久告警查当晚日志无回补指引,旧洞不刷告警防疲劳;+5测试(注册/None/df契约×2+快照族永久洞语义)29绿 [vps]
This commit is contained in:
@@ -143,7 +143,7 @@ PER_STOCK_TYPES = (
|
||||
"financial_abstract", # stock_financial_abstract(symbol="600519")
|
||||
# top_holders 单独 (per-stock × per-period)
|
||||
)
|
||||
# 模式 B: per-date 类型 (7 类, margin_szse 跳过)
|
||||
# 模式 B: per-date 类型 (11 类, margin_szse 跳过)
|
||||
PER_DATE_TYPES = (
|
||||
"dragon_tiger", # stock_lhb_detail_em(start_date, end_date)
|
||||
"block_trade", # stock_dzjy_mrmx(symbol="A股", start_date, end_date)
|
||||
@@ -156,6 +156,14 @@ PER_DATE_TYPES = (
|
||||
"zt_pool", # stock_zt_pool_em(date) 涨停池
|
||||
"zt_pool_zbgc", # stock_zt_pool_zbgc_em(date) 炸板池
|
||||
"zt_pool_dtgc", # stock_zt_pool_dtgc_em(date) 跌停池
|
||||
# 行业/概念截面快照 (2026-09-02 用户批 A 档接入; 东财 push2 clist 墙死后的
|
||||
# 免费/无墙替代源, 双机实测秒级零限流)。⚠️ 快照型端点无 date 参数、无历史
|
||||
# 回补, date 仅命名文件 (19:30 采集=收盘终态); 节假日拉到上一交易日快照
|
||||
# (无自日期列可判), 接受重复, 消费方按交易日历过滤。
|
||||
"fund_flow_industry", # 新浪 stock_fund_flow_industry('即时') 行业资金流 90 行 (净额/领涨股)
|
||||
"fund_flow_concept", # 新浪 stock_fund_flow_concept('即时') 概念资金流 ~387 行
|
||||
"ths_industry", # 同花顺 stock_board_industry_summary_ths() 行业一览 90 行×12 列
|
||||
"ths_concept", # 同花顺 stock_board_concept_name_ths() 概念名单 ~375 行
|
||||
)
|
||||
# 模式 C: per-period 类型 (2 类)
|
||||
PER_PERIOD_TYPES = (
|
||||
@@ -642,6 +650,38 @@ def fetch_zt_pool_dtgc(date: str) -> Optional[pd.DataFrame]:
|
||||
return df
|
||||
|
||||
|
||||
def fetch_fund_flow_industry(date: str) -> Optional[pd.DataFrame]:
|
||||
"""stock_fund_flow_industry(symbol='即时') — 新浪行业资金流快照 (90 行)。"""
|
||||
df, _status = call_ak_with_retry(
|
||||
ak.stock_fund_flow_industry, f"fund_flow_industry/{date}", symbol="即时",
|
||||
)
|
||||
return df
|
||||
|
||||
|
||||
def fetch_fund_flow_concept(date: str) -> Optional[pd.DataFrame]:
|
||||
"""stock_fund_flow_concept(symbol='即时') — 新浪概念资金流快照 (~387 行)。"""
|
||||
df, _status = call_ak_with_retry(
|
||||
ak.stock_fund_flow_concept, f"fund_flow_concept/{date}", symbol="即时",
|
||||
)
|
||||
return df
|
||||
|
||||
|
||||
def fetch_ths_industry(date: str) -> Optional[pd.DataFrame]:
|
||||
"""stock_board_industry_summary_ths() — 同花顺行业一览快照 (90 行×12 列)。"""
|
||||
df, _status = call_ak_with_retry(
|
||||
ak.stock_board_industry_summary_ths, f"ths_industry/{date}",
|
||||
)
|
||||
return df
|
||||
|
||||
|
||||
def fetch_ths_concept(date: str) -> Optional[pd.DataFrame]:
|
||||
"""stock_board_concept_name_ths() — 同花顺概念名单快照 (~375 行)。"""
|
||||
df, _status = call_ak_with_retry(
|
||||
ak.stock_board_concept_name_ths, f"ths_concept/{date}",
|
||||
)
|
||||
return df
|
||||
|
||||
|
||||
# ======================== per-period fetch 函数 (2 类) ========================
|
||||
|
||||
def fetch_forecast(period: str) -> Optional[pd.DataFrame]:
|
||||
@@ -1085,6 +1125,10 @@ def run_type_dispatch(
|
||||
"zt_pool": fetch_zt_pool,
|
||||
"zt_pool_zbgc": fetch_zt_pool_zbgc,
|
||||
"zt_pool_dtgc": fetch_zt_pool_dtgc,
|
||||
"fund_flow_industry": fetch_fund_flow_industry,
|
||||
"fund_flow_concept": fetch_fund_flow_concept,
|
||||
"ths_industry": fetch_ths_industry,
|
||||
"ths_concept": fetch_ths_concept,
|
||||
}
|
||||
units = build_per_date_units(t, fetch_map[t], args)
|
||||
return run_one_type(t, units, args)
|
||||
|
||||
Reference in New Issue
Block a user