取数路径:https://push2his.eastmoney.com/api/qt/stock/kline/get
参数:klt=101(日K)、fqt=1(前复权)、secid=市场.代码(深市0、沪市1)、fields2=f51..f61。
字段:日期、开盘、收盘、最高、最低、成交量(手)、成交额(元)等。
取数路径:https://web.ifzq.gtimg.cn/appstock/app/fqkline/get?param=sz300939,day,,,400,qfq
字段:日期、开盘、收盘、最高、最低、成交量(手);前复权口径。
仅当东财、腾讯整源均失败时启用:https://quotes.sina.cn/cn/api/jsonp_v2.php/var%20_k=/CN_MarketDataService.getKLineData
交叉校验:按日期对齐两源,逐根比较收盘价与成交量;相对偏差 ≤1% 视为一致;不一致如实标注并列出明细。任何一源失败或缺数均在页面状态行明示,绝不编造数据。
原始取数 400 个交易日(用于递推 250 样本与 MA120 / ATR120 等长周期);
指标值统一取最近 250 个交易日样本末日值(2026-09-23 由120扩为250,口径全局同步);
概率统计的触发信号也取最近 250 个交易日,未来收益按触发日后 1/3/5/10/20 个交易日实际收盘价计算;信号日之后不足对应未来天数的样本不计入(如实反映样本数 n)。
TR = max(当日最高−当日最低, |当日最高−昨日收盘|, |当日最低−昨日收盘|) ATR(n) = 最近 n 个 TR 的简单移动平均(SMA 口径),单位:元
MA(n) = 最近 n 个收盘价之和 ÷ n
窗口最低价 = min(窗口内每日最低价);窗口最高价 = max(窗口内每日最高价)
相对均线偏移 = (最新价 − MA) ÷ MA × 100% 相对最低/最高偏移 = (最新价 − 最低价/最高价) ÷ 参考值 × 100% 区间位置 = (最新价 − 窗口最低) ÷ (窗口最高 − 窗口最低) × 100%
平均成交量 = 窗口内每日成交量(手)平均值 曲线变化值 = 窗口末端5日均量 − 窗口前端5日均量 变化幅度 = 变化值 ÷ 前端5日均量 × 100% 斜率 = 对窗口内成交量按交易日序号做最小二乘线性回归(单位:手/日)
RS = n日内平均涨幅 ÷ n日内平均跌幅(首次SMA,其后按 (n−1)/n 递推) RSI = 100 − 100 ÷ (1 + RS)
开盘价/最高价/最低价/收盘价:直接取当日行情四价(前复权口径) 振幅% = (当日最高 − 当日最低) ÷ 前一交易日收盘价 × 100% 换手率% = 当日成交量(股) ÷ 流通股本(股) × 100%(交易所口径,最新日以腾讯报价换手率为准) 收盘价位水平% = (当日收盘 − 当日最低) ÷ (当日最高 − 当日最低) × 100%
以上四项按每个交易日逐日计算、全量入库存档(daily_quote_stat 表);历史回放、下拉查看与输入代码新分析均同一口径,不做前端直算。
预期价 = 当日收盘价 × (1 + 方法一当前所属档位未来h日平均涨跌幅%/100),h=1/3/5 当前档位由最新日“收盘价位水平%”匹配方法一六档;上涨概率/平均涨跌幅/样本数均取 probability_res 同口径结果 每行展示:当日收盘价、平均涨跌幅%、上涨概率%、样本数、预期价;历史回放与输入代码新分析同口径生成
| 方法 | 触发档位 | 统计未来 |
|---|---|---|
| 方法一·收盘日内位置 | 收盘位于全天振幅30%以下/50%以下/60%以上/70%以上/收最高/收最低六档时,未来1/3/5日上涨概率与平均涨跌幅 | 见记录页概率表 |
| 方法二·收盘跌破均线 | 收盘低于MA5/10/20/30/60/100/120时,未来5/10/20日上涨概率 | 见记录页概率表 |
| 扩展一·RSI(14)区间 | RSI(14)处于<30超卖/30-50偏弱/50-70偏强/>70超买四档时,未来5/10/20日上涨概率 | 见记录页概率表 |
| 扩展二·连阳连阴 | 出现连阳1-2日/连阳≥3日/连阴1-2日/连阴≥3日时,未来1/3/5日上涨概率与平均涨跌幅 | 见记录页概率表 |
| 扩展三·成交量倍数 | 当日成交量为前20日均量的<0.7缩量/0.7-1.5常态/1.5-2.5放量/>2.5巨量四档时,未来1/3/5日上涨概率 | 见记录页概率表 |
每档输出:样本数 n、上涨次数、上涨概率、下跌概率、平均涨跌幅、涨跌幅中位数(均以触发日收盘价为基准)。
factor_config.py)价格因子 bP:前复权收盘价取对数 lnC,对窗口序号 k=1..w 做 OLS:y_k=a+b·k
bP=斜率×100(≈日均百分比变化),同步输出 R²
量能因子 bV:量能取对数后同口径 OLS(t1主口径为 ln成交额)
窗口 w = 3 / 5 / 10 / 20 / 30 / 60(主模型 5/10/20;3为极短噪音、30/60为中期趋势)
备用口径:分段加速度 = 后半段斜率 − 前半段斜率(奇数窗口前 w//2、后 w-w//2)
端点两点斜率 = (ln y_w − ln y_1)/(w−1)
MAD 缩尾:中位数 ± 3×1.4826×MAD,超出截尾(只用当日及以前数据) z 标准化:z=(b−滚动均值)/滚动标准差;滚动窗120日、最少60日;不足则留空,严禁全样本z上线
被解释变量 Y(t,h)=1 当 C(t+h)>C(t),h=1/3/5(前复权收盘价);下跌概率=1−p 模型:logit P(Y=1)=α+βP·zP+βV·zV(6窗口×3期限=18个基础模型) 含义:β=因子z每升1个标准差时上涨对数几率变化;OR=exp(β);基准概率处 Δp≈p̄(1−p̄)β 重叠样本:h=3/5 用移动分块自助法(block≥h,B=1000)系数95%CI;另以间隔h日非重叠样本对照 多重检验:36次检验 BH-FDR(q≤0.1);结果标注 不显著/名义显著(p<0.05)/FDR通过 共线性:Pearson/Spearman、VIF(>5预警、>10处理;量因子对价格因子尾随回归残差正交化) 估计器可插拔:标准IRLS(默认)/Firth惩罚逻辑回归(样本<200或事件<50自动切换)
行走前进:训练120日、逐日向前滚动重估;报告 AUC / Brier / 对数损失与 β 符号稳定比例 概率曲线:p1/p3/p5 三线 + 无条件基准线 + 0.6偏多/0.4偏空分区 + bootstrap置信带 因子曲线:六窗口 bP/bV(原始斜率或z值可切换);停牌/缺数如实断点,禁止插值
当前批次真实结果:t2 提供 640 根真实日K(2024-01-31~2026-09-22,腾讯双端点互验),因子有效样本 517~578。
因该数据不含历史成交额,量能主口径按“严禁模拟”铁律自动采用 对数成交量(成交额口径架构已预留,数据到位后切换并全量重算)。
价格斜率在 20/60 日窗口多期限名义显著、w60/h5 通过 FDR;样本外 AUC≈0.50–0.52,单因子增量预测力有限,页面如实留痕。
analysis_batch(分析批次)、daily_kline(原始日K,带数据源标签)、indicator_snap(指标快照)、probability_res(概率结果);均带股票代码与时间戳。127.0.0.1:8516,经 Nginx 反代 /quantana/ 暴露;不改动任何既有服务。@register),新增方法只需注册,无需改页面。slope_factor_daily / slope_factor_coef 专表,同时快照进 indicator_snap 供网页渲染;参数版本 slope-lp-v1.0 随记录留痕。🏛 今后新建任何页面,默认包含以下两项,不得遗漏:
① 左上角公司 LOGO:统一使用 /stock-ledger/logo.png(与首页/持仓页一致),桌面宽约120px、移动端约86px自适应;
② 右下角固定「返回首页」按钮:金色描边、点击回 https://bsq888.com/;定位 position:fixed; right/bottom,不遮挡正文,移动端只显图标;
本规范与“公式/方法变更同步规则”同时生效;新增页面模板时默认内置这两个元素。
⚠️ 今后任何计算公式、指标口径或统计方法发生变更,本个股量化分析功能(取数、计算、入库、页面展示、历史回放)必须同步修改,不得只改一处;变更前带时间戳备份,变更后过 node --check、HTTP 200 与数据库真实数据复核。
同步检查点:① indicators.py 计算口径;② stats.py 概率统计;③ storage.py 字段结构;④ 记录页/方法页展示与本文档;⑤ 已入库历史批次按需重算。