═══════════════════════════════════════════════════════════════════════════
 一篮子选股系统 v19 · 公式说明书（条件与原理）
 配套文件：①指标公式_LZ_XG_副图.txt  ②选股公式_LZ_XG_每日候选.txt
═══════════════════════════════════════════════════════════════════════════

【零、安装与使用】

  指标公式（看盘用）
    功能 -> 公式系统 -> 公式管理器 -> 技术指标 -> 新建
    公式名称 LZ_XG，画线方法选「副图」，粘贴 ① 的全部内容，确定。

  选股公式（每天用）
    功能 -> 公式系统 -> 公式管理器 -> 条件选股 -> 新建
    公式名称 LZ_XG，粘贴 ② 的全部内容，确定。

  每日流程
    1. 盘后 15:00 后：功能 -> 选股器 -> 条件选股 -> 选 LZ_XG -> 执行选股
    2. 数一下选出多少只（记为 C），与最近 500 个交易日的 C 比较：
         C >= 过去 500 日的 95 分位  ->  次日开盘买入【得分最高】的 10 只，等权
         否则                        ->  空仓，不出手
    3. 排序：选股结果里右键 -> 附加排序指标 -> 选 LZ_XG -> 按「得分」降序
    4. 持仓期间每天检查离场信号，触发则次日开盘卖出；最长持有 40 个交易日兜底
    5. 单只止损：收盘跌破【实际成交价 × 0.88】→ 次日开盘卖出（2026-09-19 新增）

  ⚠️ 公式文件必须保持精简 —— 通达信单个公式有字数上限。
     所以「条件与原理」写在本文档里，不写进公式文件。


【一、四层结构，以及每一层为什么存在】

  第1层 规律状态（超跌深度 SD>=10）  圈定候选池   ★2026-09-19 由 >=8 提高
  第2层 选股筛选（六件套等权得分 DF）  决定优先买哪几只   ★核心
  第3层 时机门控（候选数 P95 分位）    决定今天出不出手   ★贡献最大
  第4层 离场（WZ20>=85 或 BD7>=70）    决定什么时候走
  第5层 止损（固定 12%, 收盘触发）      截断逆势单、降低组合回撤   ★2026-09-19 新增

  ⚠ 筹码成本线口径(2026-09-19 修正): 前复权 CLOSE 与原始 AMOUNT/VOL 不同口径, 直接相除会让
     DP20/DP60/CHIPSD 系统性偏 → 公式加 FQ5:=MA(CLOSE/(AMOUNT/VOL/100),5), AMTQ:=AMOUNT*FQ5 折算。

  实测每层的边际贡献：
    去掉门控：年化从 +16.41% 掉到 -5.78%
    去掉选股：年化从 +16.41% 掉到 +8.84%（= 随机排序）
    去掉离场（改固定20日）：测试段从 +16.04% 掉到 +7.74%


【二、为什么只用 2017 年之后的数据】

  同一套规则切两段回测：

    分段          基准       六件套K10   随机对照K10   无选股K10
    2008-2016   +5.85%      +4.83%      +5.53%      +5.08%
                (超额)       (-1.02)     (-0.32)     (-0.77)  <- 三者全为负
    2017-2026   +1.31%     +11.51%      +5.22%      +4.73%
                (超额)      (+10.20)     (+3.91)     (+3.42)  <- 才转正

  2008-2016 是壳价值时代，"跌透了会反弹"不成立 —— 跌得最狠的往往是真有问题。
  2017 年后退市常态化、注册制推进，这个逻辑才真正成立。
  => 全部参数只在 2017+ 样本上校准并冻结。


【三、第1层 十个超跌条件（公式里的 A1~A10，满足几个记几分）】

  变量   条件                        含义
  A1    BL20 <= -10                收盘比 MA20 低 10% 以上
  A2    BL5  <= -5                 收盘比 MA5  低 5%  以上
  A3    RSI14 <= 35                动量超卖
  A4    JV <= 20                   KDJ_J 超卖
  A5    WZ60 <= 20                位于 60 日区间下沿
  A6    WZ20 <= 15                位于 20 日区间下沿
  A7    RM60 <= -25               距 60 日高点回撤 25% 以上
  A8    BD7 <= 30                 波动线低位（阶段底部特征）
  A9    CLOSE < MA60              中期趋势也在下方
  A10   DP60 <= -10               收盘比 60 日加权成本低 10%（大面积套牢）

  SD = A1+...+A10，SD >= 10 才进候选池。

  实证（全市场 95,488 个事件，持有 20 日；基线胜率 55.54% / 均收益 +2.427%）：
     SD=8   胜率 56.27%  超额 +6.95pp  均收益 +2.71%
     SD=9   胜率 58.49%  超额 +9.17pp  均收益 +3.34%
     SD=10  胜率 61.42%  超额 +12.10pp 均收益 +4.55%  盈亏比 1.40
  条件数 0 -> 10 严格单调（P(60日涨40%) 从 6.62% 升到 29.06%，Lift 2.75）

  门槛为什么定在 8：SD=10 每天只剩约 8 只候选（篮子装不满）；
  SD>=10 门槛下的日频候选更稀（门控宽度按此计数, 阈值随之下移保持 P95 分位不变）。
  实测 SD 8->10: 年化 +7.5pp、回撤 −4.4pp（2014-2026, isST 真值口径）。

  ★ 关键原理：为什么"叠加条件"在这里有效？
    这里叠的是【状态型刻度】（偏离度/位置/回撤/超卖，分属不同维度），可以叠加。
    而【事件型】信号（KD金叉、RSI上穿30、MACD金叉）本质都在抓同一个转折点，
    互相高度相关，叠加等于重复计数 —— 实测 1/2/3/4+ 个事件型信号同时触发，
    20日胜率 49.15%/49.13%/48.14%/48.52%，完全没有差异。
    => "多指标共振"不是普适真理，要看叠的是不是同源信息。


【四、第2层 六个选股条件（公式里的 T1~T6，每项 1 分）】

  变量  条件                     含义
  T1   DP20 <= -12            低于 20 日加权成本 12% 以上（买在近期成交成本之下）
  T2   RSI14 <= 28            比第1层更严的超卖
  T3   BL20 <= -15            比第1层更严的远离 MA20
  T4   CHIPSD <= 6            60 日成本离散度小 => 筹码集中、分歧小
  T5   DP60 <= -20            低于 60 日加权成本 20% 以上（中期浮亏盘大、反弹阻力小）
  T6   MV5/REF(MV5,1) >= 1.5  5 日量能放大，有资金进场

  DF = T1+...+T6，满分 6。

  单条件在规律状态池内的实证（基线 20日 +2.427% / 胜率 55.54%）：
    条件                        覆盖率   20日收益  提升      胜率     胜率提升
    T1 低于20日加权成本 >=12%    57.5%   +3.30%  +0.88pp   57.71%   +2.16pp
    T2 RSI14 <= 28               31.6%   +3.29%  +0.86pp   59.60%   +4.05pp
    T3 离 MA20 <= -15%           22.6%   +4.33%  +1.90pp   58.71%   +3.17pp
    T4 60日成本离散度 <= 6%       4.1%   +3.10%  +0.67pp   60.05%   +4.51pp
    T5 低于60日加权成本 >=20%    12.6%   +4.07%  +1.64pp   58.58%   +3.03pp
    T6 5日量能放大 >= 1.5        26.7%   +2.71%  +0.29pp   57.69%   +2.15pp

  六个条件分别覆盖【成本偏离 / 动量超卖 / 均线位置 / 筹码结构 / 中期成本 / 量能变化】
  六个不同维度 —— 维度要多样，不要全押在一个维度上。
  实测：六件套 > 四件套 > 三件套 > 随机。

  排序效果实测（同样的池子 + 同样的门控 + 同样的离场，只换选股方式）：
    六件套得分排序  年化 +8.22%  卡玛 0.18  胜率 61.5%  单笔 +2.79%
    超跌深度排序    年化 +4.81%  卡玛 0.10  胜率 62.0%  单笔 +1.94%
    随机排序(对照)  年化 +1.68%  卡玛 0.03  胜率 57.2%  单笔 +0.98%
    => 选股筛选贡献 +6.54pp/年，"排序就是 alpha"。

  ★ 原理一：为什么必须等权，不能加权？
    做过 7 种离散权重（训练段IC比例/两档2-1-0.5/三档3-1.5-0.5/仅IC前4/仅前3/仅第1）
    + 5 种连续分位打分，全部按训练段 2017-2021 校准、测试段 2022-2026 检验：
       等权                     测试段 +11.51%   <- 最优
       IC 比例加权              测试段 +5.99%
       两档 2/1/0.5             测试段 +7.78%
       三档 3/1.5/0.5           测试段 +7.40%
       仅 IC 前 4 个条件         测试段 +5.19%（训练段 +5.69% 最好，样本外崩）
       连续等权分位打分          训练段 +7.71% -> 测试段 +1.04%（过拟合典型）
    全部加权方案样本外跑输等权。原因：六个条件的 IC 差异本来就小（0.297~0.903），
    用训练段 IC 去区分权重等于在拟合噪声。二元等权计数的"粗糙"恰是抗噪能力。
    旁证：即使"筹码集中"和"5日量能"在训练/测试两段之间符号翻转（已第 4 次），
    保留它们（各占 1/6 权重）反而比剔掉更稳健 —— 1/6 权重不足以主导排序。

  ★ 原理二：为什么是"打分排序"而不是"硬过滤"？
    三条件硬过滤（RSI<=28 + 离MA20<=-15% + 低于成本>=12%）能把 20日收益
    从 +2.43% 提到 +7.84%、胜率从 55.5% 提到 69.3%，但覆盖率只剩 5.96%
    （日均 1.6 只）—— 篮子装不满、资金大量闲置，年化反而只有 +5.88%（在场 36%）。
    => 选股条件应该用来排序，不是用来砍候选。

  ★ 原理三：为什么持仓只数必须接近 10？
      K=5   得分 vs 随机，年化差 +4.7pp
      K=10  差 +6.5pp   <- 推荐
      K=30  差 +1.3pp
    原因：K=30 时 20 多只候选被全部买走，排序无从发挥；同时资金闲置一半
    （实测在场仅 52.9%）。仓位设太大是双重损失。


【五、第3层 时机门控（贡献最大的一环）】

  实证链条：
   1. 把每个信号事件按"当天全市场有多少只同时触发"分档：
      Q1（最冷清）普遍亏 1~2%，Q5（最拥挤）普遍赚 2~3.8% —— 26/27 个信号单调递增
   2. 拥挤日 = 全市场刚经历急跌的日子
      corr(候选数, 前20日大盘) = -0.338
      拥挤日之后 20 日大盘平均 +2.15%，冷清日只有 +0.86%
   3. 根因：事件研究按【每个事件】等权（被拥挤日主导），组合按【每天】等权
      （每天只有几个空槽）。同一个信号：事件等权 +4.13%，日等权只有 +0.31%。
      最大单日候选数中位数 1069 只，30 个仓位连 3% 都吃不下。

  门控阈值 × 持仓只数 实测（2017+，基准 +1.31%，六件套 + pos85 离场）：
        K\P     P75     P85     P90     P95
          5   -4.93   +9.41  +14.59  +20.71
         10   -2.00   +7.71  +14.93  +16.41   <- 推荐
         15   -0.92   +5.40  +11.88  +15.50
         20   -0.97   +4.08   +9.38  +14.06
  => P50/P75 太松全部为负；P90 是最低要求；P95 最优。

  随机排序对照（同池子/同门控/同离场，只把选股换成随机）：
        K\P     P85     P90     P95
          5   +9.66   +9.96  +12.40
         10  +10.37   +8.03   +8.84
  => 光靠门控（随机选股）就有 +8~12%（基准才 +1.31%），
     选股在此之上再加 +7.6~8.3pp。两者都不可缺。

  ⚠️ 阈值必须"因果"：只用当日之前的历史算分位。曾用全样本分位数，
  P90 得到 +8.12%；改成扩张窗口只剩 +3.31% —— 分位数阈值里藏了前视。

  ⚠️ 不能用大盘指数替代：中证1000/国证2000/中证500/创业板指的 C7超卖、
  pos60低位、RSI超卖、20日急跌，共 24 个指数门控全部跑不出正收益
  （-9.5% ~ +1.0%），而"全市场候选数 >= P90"是 +8.16%。
  "全市场同时触发"这个广度信息里含有指数看不到的内容，必须真的统计候选数。


【六、第4层 离场规则】

  实测（同一批 58,695 个入场点）：
    持有期内最高点的平均涨幅（事后完美离场的天花板）= +24.10%
    固定持有 20 日的平均收益                          = +3.90%
    => 固定 20 日只吃到 16%。离场规则本身就是最大的利润来源。

  38 条离场规则横评节选：
    离场规则             平均收益    IR     胜率
    事后天花板           +24.10%   0.800   94.9%
    RSI>=70 离场          +5.88%   0.219   58.2%
    BD7>=70 离场          +5.69%   0.238   63.1%
    WZ20>=85 离场         +4.98%   0.256   69.7%   <- IR 最高、胜率最高
    固定持有30日           +5.39%   0.241   61.5%
    固定持有20日           +3.90%   0.205   59.7%
    8%固定止损            +2.23%   0.087   35.9%
    8%移动止盈            +1.59%   0.083   42.1%
    破MA5/MA10/MA20离场   -0.10~-0.14%  负    ~50%

  ❌ 破均线离场最差（负收益）：超跌反弹初期经常假破均线再拉回，一破就走必被洗出去。
  ❌ 机械止损/移动止盈都不如什么都不做：超跌股波动太大（ATR 常在 5% 以上），
     任何机械止损都在割自己的肉。
     （这是"超跌反弹"类的特性，不代表止损在别的策略里没用）
  ✅ 用"状态到顶"而不是"时间到点"：自然寿命约 30 个交易日，但每只节奏差异大。

  组合离场规则实测：
    tp15 + BD7>=70 + 最长40日    IR 0.266（IR 最高）
    WZ20>=85 单条件              IR 0.256（规则最少）
    tp12 + WZ20>=85 + 最长40日    胜率 71.40%（胜率最高）
    移动止盈无论如何组合都最差（trail15+pos85+t40 的 IR 仅 0.128）

  顶部三件套（公式里的 WARN1 / WARN2，可提前 1 天预警）：
    163,820 个上升段（平均涨 43%、持续 12 根）的终点画像：
      特征        t-3     t-1     t-0(终点)
      KDJ_J      85.6    96.0     89.5    <- t-1 就冲到极端超买
      WZ20       76.8    87.7     80.7    <- t-1 位置到顶
      上影线%     26.9    18.8     37.6    <- 终点长上影暴增
      振幅%        6.1     7.2      9.0
      量比         1.41    1.60     2.11
      实体占比%    49.0    56.1     43.1    <- 终点实体缩小(滞涨)
    提前离场代价：t-0 +35.80% / t-1 +34.12%（只少 1.68pp）/ t-2 +27.98%（少 7.82pp）
    => 看到极端超买就走，不要"再看一天"。


【七、规避条件（公式里的 DODGE1 / DODGE2）】

  DODGE1 高位放量滞涨：WZ250>=75 且 量比>=1.5 且 当日涨跌<2% 且 上影线>25%
  DODGE2 已经涨疯了：过去60日涨幅>=100% 且 离MA60 超过 +30%
  实证：高位（WZ250>=75）的"高位跳水"概率提升 5.5 倍。
  （"高位跳水"定义：过去60日涨>=30% 且 未来60日跌>=20%）
  => 这两个条件已写进公式，满足任一即被剔除。


【八、冻结成绩单】

  配置：超跌深度SD>=8 + 六件套等权得分 + P95门控 + WZ20>=85离场 + 10只等权

  分段             年化       最大回撤   卡玛    在场    胜率    单笔均值
  全段17-26      +16.41%     -26.9%    0.61   44.6%   69.3%   +5.39%
  训练17-21      +16.85%     -26.0%    0.65   47.4%   67.1%   +4.82%
  测试22-26      +15.87%     -26.9%    0.59   41.5%   71.3%   +5.54%
  基准(等权B&H)   +1.31%     -51.5%    0.03    100%     -       -
  => 三个分段跨度不到 1pp

  备选：
    更激进 P95 + K=5   年化 +20.71%（训练+20.13% / 测试+21.39%），胜率 73.6%，
                       但只有 5 只，分散度低，回撤 -31.6%
    更保守 P90 + K=10  年化 +14.93%（训练+13.93% / 测试+16.04%），
                       在场 56%（机会更多），回撤 -35.6%

  数据基础：本地通达信全历史日线 5370 只（含已退市股，无生存者偏差）
  样本范围：2017-01-03 ~ 2026-08-28（2,345 个交易日）
  回测口径：所有信号因果实现，次日开盘成交，计入双边 0.2% 成本
  引擎验证：组合引擎通过 14 项已知答案测试


【九、季度复检规则】

   指标                    绿灯        黄灯(减半仓)      红灯(停用)
   滚动250日超额           > 0         连续2期为负       连续4期为负 或 累计<-10pp
   滚动250日回撤           > -30%      -30%~-40%        < -40%
   六条件IC为负的个数      <= 2        3                >= 4
   门控命中天数占比        10%~35%     35%~50%          >50% 或 <3%(阈值失真)
   成本假设                双边 0.2%

   参考：冻结配置历史滚动250日超额 均值 +14.55pp / 中位 +15.39pp / 为负占比 13.9%
   => 阶段性跑输是常态（约 14% 的时间），单看一两个月表现不要动作。
      滚动复检是为了弥补"样本只有 9.6 年"这个短板。


【十、三条绝对不要做的事】

   1. 不要"随时买" —— 无门控无排序时年化 -5.78%
   2. 不要把持仓只数设成 30 —— 篮子买不满、资金闲置一半、选股排序还会失效
   3. 不要用破均线/固定止损/移动止盈离场 —— 实测全部比"状态到顶离场"更差


【十一、已证伪的路径（不要重走）】

   ✗ "随时买"信号池            年化 -12.16%
   ✗ 多指标共振选股             1/2/3/4+ 个事件型信号叠加，20日胜率 49.2/49.1/48.1/48.5% 无差异
   ✗ 抓"起爆点"                真起爆率仅 12.83%，突破当天真/假突破特征无法区分
   ✗ 放量突破/低位突破/横盘突破  Lift 0.941 / 0.810 / 0.240（全部 < 1）
   ✗ 主力吸筹(ABSORB)状态       启动概率 13.42% 为全阶段最低，次日 77% 仍停留吸筹
   ✗ 波动压缩/横盘/均线粘合     胜率 50.21% / 48.18% / 54.54%，均为负向
   ✗ 各种加权                   7种离散权重+5种连续打分，样本外全部跑输等权
   ✗ 用大盘指数替代集群门控     24个指数门控全部失效（-9.5%~+1.0%）
   ✗ 破均线离场/固定止损/移动止盈  负收益或明显更差
   ✗ 2008-2016 样本            该段三个方案超额全为负，已剔除

═══════════════════════════════════════════════════════════════════════════
 变量名对照表（公式 vs 研究口径）

   公式变量    含义                     研究口径
   SD          超跌深度 0~10            KCNT
   DF          六件套得分 0~6           SCORE
   BL5/20/60   乖离率(离MA的%)          dev_ma5 / dev_ma20 / dev_ma60
   DP20/DP60   离加权成本的%            dev20 / dev60
   WZ20/60/250 区间位置 0~100           pos20 / pos60 / pos250
   RM60        距60日高点回撤%          ret_max60
   BD7         波动线 0~100             C7
   CHIPSD      60日成本离散度%          chip_sd60
   JV          KDJ_J                   kdj_j
   LB5         量比                    vr5
   MV5         5日均量                 vma5
   ZF          振幅%                   amp
   SY          上影线占振幅%           ush
   STT         实体占振幅%             body
   EXITW       离场信号                pos20>=85 or c7>=70
   WARN1/WARN2 顶部预警                —
   DODGE1/2    规避条件                —

 ⚠️ 注意公式里 deliberately 避开了以下名字，因为它们是通达信内置函数/保留字：
    GT（大于）、DMA（动态移动平均）、LT/EQ/NE/GE/LE、B（主动买量）等
═══════════════════════════════════════════════════════════════════════════
