用途:用基本面财务数据(PE/PB/ROE 等)筛选股票,构建价值或成长型选股信号,供回测使用。不同市场使用不同数据源。
主要能力:A 股可通过 tushare 的 daily_basic 在 config.json 的 extra_fields 中取 pe、pb、pe_ttm、ps_ttm、dv_ttm、total_mv、circ_mv、roe;也可用 fundamental_fields 取 income、balancesheet、cashflow、fina_indicator 的财报字段,由 TushareFundamentalProvider 按公告日合并到日线,列名以表名加下划线为前缀(如 income_total_revenue、fina_indicator_roe)。美股与港股通过 yfinance Ticker.info 直接调用,取 trailingPE、forwardPE、priceToBook、returnOnEquity、marketCap、dividendYield 等。
信号逻辑:默认价值过滤为 PE 小于 pe_max 且大于 0、PB 小于 pb_max、ROE 大于 roe_min,全部满足记多头 1,否则 0;可选成长过滤为 PE_TTM 在合理区间、ROE 高于下限、市值高于 mv_min。参数默认 pe_max=20.0、pb_max=3.0、roe_min=8.0、pe_min=0.0、mcap_min=0。组合策略中通过筛选的 N 只股票各取权重 1/N。
使用方式:A 股在 config.json 配置 source、codes、start_date、end_date、extra_fields 或 fundamental_fields、initial_cash、commission;美股港股用 yfinance 编写筛选函数,遍历代码读取 info 后按条件过滤。依赖安装:pip install pandas numpy yfinance。
限制与注意:extra_fields 可能含 NaN(新股、ST 股),需 fillna 或 dropna;财报字段在首次公告前可能为 NaN,不要手动前向填充,合并已保证时点可见性;负 PE 表示亏损,须用 pe>0 过滤;ROE 单位不同,tushare 为百分比(15 表示 15%),yfinance 为小数(0.15 表示 15%);yfinance Ticker.info 是时点快照而非历史时间序列,不能直接用于美股港股的每日调仓回测,可先作为股票池再叠加技术信号。其他收费、平台与效果信息暂未提供。