#21680 混合 免费

ID-581_CMO钱德动量摆动器低位反转低吸研究报告

公式说明 AI生成

一句话概括:这个公式用钱德动量摆动器(CMO)抓"低位动量拐头回升"的低吸买点。 核心买入逻辑:CMO(20日内上涨动量总和减下跌动量总和,除以总量×100)上穿其9日信号线(动量由弱转强),且CMO低于20(低位区);同时要求20日线在60日线上方、均线向上且股价站上20日线(上升结构)、成交量在5日均量0.9~3倍、当天收阳。卖出为CMO超买大于70或跌破20日线。 适合什么市场环境:中期上升趋势中的回调低吸,适合震荡偏多市,不适合单边下跌。 风险提示:低位回升可能是下跌中继,跌破20日线离场滞后,须自设止损。

研究报告
# ID-581 CMO钱德动量摆动器低位反转低吸 研究报告 ## A. 实现细节(Implementation Details) ### 公式逻辑 CMO(Chande Momentum Oscillator,钱德动量摆动器)是 Wilder 体系下衡量多空净动量强度的振荡器,介于 −100~+100: - `MOM = CLOSE − REF(CLOSE,1)` - `PSUM = SUM(MAX(MOM,0), N)`(N=20 日上涨动量累加) - `NSUM = SUM(MAX(−MOM,0), N)`(N=20 日下跌动量累加) - `CMO = 100 × (PSUM − NSUM) / (PSUM + NSUM)`(净多空动量占比) 核心买入信号 `XBUY` = **CMO 上穿其 M 日(M=9)信号线**(动量由弱转强拐点)**且 CMO<20**(低位超卖、非高位追涨)**且 趋势门控**(MA20>MA60 且 MA20 上行且收在 MA20 上)**且 量能温和承接**(5 日均量的 0.9~3.0 倍,非爆量非地量)**且 收阳止跌**。卖出 = `CMO>70` 超买 **或** 收盘价跌破 MA20。 ### 执行时点 信号在**当日收盘**计算(T 日收盘确定 CMO、均线与量能),T+1 开盘执行(回测引擎默认下一根 K 线开盘成交),规避了用当日未走完数据决策的未来函数风险(无 Look-Ahead 偏差)。 ### 过滤机制 - 趋势门控:排除无趋势/下行通道中的假反弹,只做上升通道内低吸。 - 量能区间:0.9~3.0 倍均量,过滤地量(无人接)与爆量(可能是派发)。 - 低位区 CMO<20:确保是超卖修复而非追高。 ### 风险控制 - 卖出层 1:CMO>70 进入超买区,止盈/减仓。 - 卖出层 2:收盘价跌破 MA20(趋势门控被破坏),止损离场。 - 未内置 ATR 跟踪止损(选股公式维度,建议实盘叠加 2×ATR 移动止损)。 ### 适用市场 A 股全市场日线选股;适用于震荡偏多/上升通道中回踩动量超卖的均值回归场景,不适合单边暴跌(CMO 长期低位钝化)。 ### Warmup 周期 最大窗口 = MA60(需前 59 根)。CMO 自身为 SUM(20)+MA(9)≈28 根,综合 **Warmup = 60 根 K 线**,前 60 根不生成信号(已标注于公式文件)。回测评估在 Warmup 之后的数据段计算。 ### 回测结果(方案 A 与方案 B 交叉验证) - 数据源:本地 CSV(`stock_data/*.csv`,100 只样本股,2023-01-01 ~ 2026-05-25)。 - 方案 A(backtest_cli / MyTT 风格解析器):valid_stocks=79/100,**avg_win_rate=37.2%**,avg_return≈−0.0%,positive_stocks=34。 - 方案 B(backtest_planb / tdx_interpreter 独立解析器):valid_stocks=79/100,**avg_win_rate=37.21%**,avg_return≈−0.5%,positive_stocks=34。 - 差异:胜率差 <0.05%(一致),收益符号一致(≈0),交叉验证通过。 ## B. 已知偏差(Limitations and Bias) 1. **数据限制**:样本为 100 只本地 CSV 股票(非全 A),且区间为 2023 弱市至 2026H1 震荡,结论外推需谨慎;无 MySQL/SQLite 全市场数据。 2. **回测偏差**:成交假设为信号次日开盘价,未计手续费/滑点/涨停无法买入;持有期为引擎默认(首卖信号出现),未标准化持有天数。 3. **市场适应性**:在单边上行市中 CMO 常驻高位>20,低位回升信号稀少(捕捉不到主升);在单边下行市中 CMO 长期<20 但趋势门控(MA20>MA60)会过滤掉绝大多数,故本公式本质是偏多震荡中的超卖修复,强趋势市收益可能落后于突破型策略。 4. **参数敏感性**:N=20/M=9 为标准 Wilder 参数;若缩短 N 至 10,CMO 噪声增大、信号更频繁但胜率可能下降,需另测。 5. **Look-Ahead 风险**:已在逻辑链中确认——所有指标均用历史收盘/量数据,信号次日开盘执行,无未来数据引用。 ## C. 结果解读(Result Interpretation) - **逻辑质量**:CMO 是成熟的多空净动量指标,数学定义清晰、有经济学意义(衡量买方相对卖方的累计主导力),相比单一 RSI 更对称地处理涨跌幅,逻辑自洽。 - **创新点**:全知识库 0 命中Chande/CMO(仅 3 处无关 TRIX 提及),属全新振荡器维度;与近期链(FORMULA-578 DPO 去趋势、FORMULA-579 Elder Ray 多空力度、FORMULA-580 TSI 真实强度)构成冷门动量振荡器家族互补,填补空白。 - **风险点**:回测胜率 37.2% 低于随机基准(约 50%),且 avg_return≈0%、正收益股占比 34%,**样本内无正期望**;当前形态下该公式不宜单独实盘,建议:(a) 叠加 ATR 跟踪止损、(b) 与大级别趋势/大盘企稳过滤联用、(c) 延长至 2023 牛市段复核。 - **适用场景**:适合作为动量超卖预警池的辅助因子,供量化研究员做多因子组合的输入,而非独立下单信号。 - **改进方向**:① 将 `CMO<20` 改为 `CMO 由负转正` 以增强反转意义;② 加入 `COUNT(CMO<0, M)>=K` 要求深度超卖;③ 与量价背离共振提升胜率。 ### 对抗式审查 我主动怀疑了以下 3 个点,并逐一排除: 1. **怀疑:公式是否因解析器 bug 而 0 信号(过拟合/不可复现)?** 排除:初版确实因 `CMOVAL:...`(输出冒号而非赋值 `:=`)导致依赖变量全解析为 0、信号塌缩;修正为 `:=` 后,纯 Python 复算与双回测引擎(A/B)均复现出 79 只有效信号,结果一致可复现,非偶然。 2. **怀疑:胜率是否虚高(>80%)或数据编造?** 排除:回测胜率仅 37.2%(A/B 强一致),明显低于随机基准;引擎仅输出胜率/收益率/最大回撤三项,夏普/VaR/CVaR/盈利因子未实现,报告中标注待补充,未编造任何指标(Iron Rule 5)。 3. **怀疑:是否和现有公式重复(语义抄袭)?** 排除:对抗式新颖性评分=1.00(≥0.7 通过);语义去重相似度=0.40%(<60% 返回码 0 通过);知识库独立检索Chande/CMO=0 命中,确为新维度。 > 诚实声明:本公式样本内胜率 37.2% < 随机基准,未加入 effective_logics(不夸大功效)。
公式源码
登录后可查看

回测数据已公开,完整源码仅对已购买用户开放

查看定价
回测统计
胜率
46.7%
平均收益
1.80%
夏普比率
待验证
最大回撤
-11.4%
按市场状态分段表现

暂无市场状态数据