讯号不是人工判断,而是由 mom-v1.0 动量与平均成本模型 对真实日K批量计算后入库, 再由自动工作循环读取并筛选。核心脚本与调用关系:
app/momentum_model.py 核心算法:3/5日平均成本序列、成本上下归类、70/30切分、T+H收益与胜率/期望统计。app/storage.py(save_momentum_model_for_batch / _merged_rows_for_batch):把真实日K多源合并去重后调用①,并把结果双写入 momentum_cost_daily、cost_expectation 表。autopilot/handlers.py:strategy_compute 触发②重算;factor_backtest → _evaluate_mom_factor 读取样本外结果,判定因子 active/degraded,并登记因子 mom_cost_above_buy_5。autopilot/scripts/render_buyreport.py:读取最新批次样本外结果,按阈值生成 /buyreport/ 报告与提醒。
数据源:真实日K(tencent/sina,本批主源 tencent),表 daily_kline;
全部数字可由上述脚本用生产合并口径原样复算,未使用任何模拟数据。
第一步 · 平均成本线:窗口 n∈{3,5}。优先用窗口内真实成交额对典型价 ((最高+最低+收盘)/3)做成交额加权 VWAP;窗口内有额日≥1 即按可得日加权(amount_vwap / amount_vwap_partial), 窗口完全无成交额时才降级为 n 日收盘均价(close_sma)。
第二步 · 上 / 下判定(函数 _bucket,临界=0 归“之上”):
第三步 · 动作象限:模型对每个交易日分别统计四种情景:成本之上·多头(above_buy)、 成本之下·多头(below_buy)、成本之上·空头/规避(above_sell)、成本之下·空头/规避(below_sell)。 本买入讯号因子 mom_cost_above_buy_5 只采用「3日平均成本之上 · 多头」这一象限。
对满足象限的第 t 日收盘,观察其后 H 个交易日的收益(收盘对收盘,毛口径,未扣佣金/印花税/滑点):
每一笔的 R 汇总后:胜率 = R>0 的笔数 / 总笔数 ×100%; 期望平均收益率 = 所有 R 的算术平均值 ×100%;另给中位数。
按时间顺序把全部交易日固定切成两段(常量 IS_RATIO=0.70,不随机打乱,保证可复算):
分档阈值(严格大于): A 高胜率讯号档 样本外胜率 > 55% 且 期望收益 > 1.5%; B 备存档 胜率 > 51% 且期望为正、但未达 A。因子状态非 active(降级/失效)时一律不入选、不提醒。
20261105160911-6bf7c1d5cost_expectation,batch_id=20261105160911-6bf7c1d5,即:在样本外 312 次“收盘站上3日平均成本”的情形里,持有5日后上涨占比 56.09%, 平均收益 +1.702%。以最新3日成本 146.183 作参考成本,期望目标价 = 146.183×(1++1.702%/100) = 148.671(即 /buyreport/ 上展示的参考成本→期望目标价)。
注意:当前收盘 154.46 相对3日成本的位置为 +5.66%(收盘在3日平均成本上方); 本页展示的是“最近一次达标批次”的统计结论与参考成本,是否再次满足“成本之上”需以信号触发当日收盘为准。
| 情景(样本外) | T+1 | T+3 | T+5 | T+10 |
|---|---|---|---|---|
| 成本之上 · 多头 | 53.04% n=313 · 均+0.269% | 52.24% n=312 · 均+0.865% | 56.09% n=312 · 均+1.702% | 58.06% n=310 · 均+3.056% |
| 成本之下 · 多头 | 50.49% n=305 · 均+0.263% | 54.28% n=304 · 均+0.709% | 56.29% n=302 · 均+0.912% | 55.85% n=299 · 均+2.229% |
| 成本之上 · 空头/规避 | 46.96% n=313 · 均-0.189% | 47.76% n=312 · 均-0.580% | 43.91% n=312 · 均-1.196% | 41.61% n=310 · 均-2.092% |
| 成本之下 · 空头/规避 | 48.20% n=305 · 均-0.180% | 45.72% n=304 · 均-0.461% | 43.05% n=302 · 均-0.516% | 44.15% n=299 · 均-1.364% |
| 情景(样本外) | T+1 | T+3 | T+5 | T+10 |
|---|---|---|---|---|
| 成本之上 · 多头 | 54.05% n=309 · 均+0.349% | 52.27% n=308 · 均+0.972% | 57.14% n=308 · 均+1.692% | 58.44% n=308 · 均+2.978% |
| 成本之下 · 多头 | 49.51% n=309 · 均+0.184% | 54.22% n=308 · 均+0.604% | 55.23% n=306 · 均+0.933% | 55.48% n=301 · 均+2.314% |
| 成本之上 · 空头/规避 | 45.95% n=309 · 均-0.258% | 47.73% n=308 · 均-0.655% | 42.86% n=308 · 均-1.097% | 41.23% n=308 · 均-1.916% |
| 成本之下 · 空头/规避 | 49.19% n=309 · 均-0.111% | 45.78% n=308 · 均-0.387% | 44.12% n=306 · 均-0.625% | 44.52% n=301 · 均-1.550% |
读法:同一持有期,“成本之上·多头”期望显著为正、“成本之上·空头/规避”期望为负, 两者互为镜像,说明“站上成本时偏多”在该股历史样本外具备方向性;T+1 胜率与期望都较弱, 信号更偏 T+5/T+10 的短中线而非隔日。
脚本:app/momentum_model.py(算法)· app/storage.py(真实K合并与双写)·
autopilot/handlers.py(重算/评估/active闸门)· autopilot/scripts/render_buyreport.py(报告)·
autopilot/scripts/render_signalmethod.py(本页)。表:daily_kline / analysis_batch /
momentum_cost_daily / cost_expectation(data/quantana.db)、research_factor(autopilot/autopilot.db)。