01学完这一课,你能做到什么
假设价格连续下跌,你想判断它是短期偏离,还是下跌趋势仍在延续;又或者,价格接近前低,但下跌动能正在减弱。不同判断对应不同策略,不能只因为图上出现一个指标就下结论。
学完这一课,你应该能:
- 写出和 20 日的计算式,并说明它们背后的不同假设;
- 把“ 底”拆成价格、柱值和右侧确认条件;
- 解释参数变化为什么会改变交易频率、持有时间和结果;
- 先排查价格、和日期范围等数据问题,再解释收益曲线;
- 用插件方式组织策略,并用窗口检查是否只是记住历史。
这节课的重点不是找一个永远有效的阈值,而是把主观判断变成可重复检查的规则。
一句话记住先写假设,再写条件,最后才看收益。
02乖离率:衡量价格离均线有多远
乖离率回答的是一个具体问题:当前收盘价相对某条均线偏离了百分之多少。
BIAS_N = (当日收盘价 − SMA_N) ÷ SMA_N × 100%
其中,SMA_N 是最近 N 个交易日收盘价的简单平均。假设 20 日均线是 100 元,今天收盘价是 94 元:
BIAS_20 = (94 − 100) ÷ 100 × 100% = −6%如果收盘价是 106 元:
BIAS_20 = (106 − 100) ÷ 100 × 100% = +6%正值表示价格在均线上方,负值表示价格在均线下方。它不是单日涨跌幅,也不是交易所规定的比例。
一个基础的均值回归规则可以写成:空仓且 BIAS < −6% 时买入;持仓且 BIAS > +6% 时卖出。它隐含的假设是,价格偏离均值较远后,偏离可能缩小。但均线也会随新数据移动,偏离缩小不一定代表价格上涨。
、和乖离率都能用于反转研究,但观察对象不同:RSI 比较上涨与下跌力量,布林带加入波动尺度,乖离率直接比较价格和均线的百分比。把它们放进同一个策略前,先说明每个指标增加了什么信息。
BIAS_N = (close − SMA_N) ÷ SMA_N × 100%
SMA=100、收盘价=94 时,BIAS=-6%。
价格离均线多远
看相对均值的百分比偏离。
力量或波动区间
分别看涨跌力量,或把波动尺度放进价格区间。
一句话记住乖离率是相对均线的偏离,不是单日涨跌幅。
03参数变化会改变怎样的交易
常见观察周期包括 5、10、20、60 个交易日。短周期对价格变化更敏感,可能更早触发,也可能带来更多来回交易;长周期更平滑,但可能错过早期变化。
演示中曾出现一组结果:初始参数的总收益约 1.89%、年化约 1.96%,回撤较大;把阈值扩大到约 8% 后,几乎没有交易;保持买入阈值 −6%,把卖出阈值改为 +3% 后,年化曾被描述为约 6.8%。这些数字只是特定数据和运行口径下的样例,不能单独证明后一组参数更可靠。
买入和卖出阈值可以不对称。更深的负偏离意味着等待更强的下跌,较低的正阈值可能更早退出。早退出可能少让浮盈回吐,也可能错过继续上涨;晚退出可能拿到更完整的回归,也可能把盈利还回去。
“股性”不要停留在形容词。可以把它拆成可计算特征,例如收益波动、/价格、成交活跃度和趋势持续性,并且在每个历史时点用当时可得的数据计算。一个标的过去波动小,不代表未来永远稳定。
- 1固定假设先决定研究回归还是趋势延续
- 2小范围试验只选有解释的周期和阈值
- 3保存每次结果记录收益、回撤、交易次数
- 4换窗口复核用未参与选择的时间段评价
一句话记住一次参数变好,不等于策略变可靠。
04数据异常要排在参数之前检查
如果 MACD 曲线突然出现异常,先检查数据,不要先改策略逻辑。某段前复权序列曾被怀疑出现负价;同时,请求的长区间和实际返回区间可能不一致。演示中还出现过“总收益约四倍、年化约 20% 或 24%”等不同说法,这些数字没有统一的可复算记录,不能当作已验证结果。
按下面顺序排查:
- 保存原始返回数据,不要先删除异常行;
- 核实价格来源、复权方式和字段含义;
- 对比未复权与复权序列,确认异常出现在哪一步;
- 检查计算库是否接受这组输入;
- 写明修复原则,再重新运行;
- 对照资金、成交、持仓和净值,而不只是看收益曲线是否变好。
请求从 2015 年开始,不代表返回结果一定覆盖到 2015 年;实际数据可能只到 2016 年 6 月 6 日。报告必须同时写请求区间和实际数据区间。
负值可能来自调整方式、采集错误或字段错位,必须取证。不能为了让图表好看就删除、取绝对值或强行改成正数。即使不写代码,也可以定义测试:请求和返回日期范围要能对上;没有信号时不应凭空成交;费用应减少现金。
- 1原始数据保存异常输入
- 2字段和复权核对来源与算法
- 3指标和信号检查输入是否被接受
- 4成交和资金逐项对上日志
- 5重新运行报告实际日期范围
一句话记住先证明数据修复,再讨论参数效果。
05动量策略:研究延续,而不是回归
乖离率的出发点是“偏离后可能回归”,动量策略的出发点正好不同:近期强势可能延续一段时间。
用 20 个交易日表示动量:
M20 = close_t ÷ close_(t−20) − 1
假设 20 个交易日前收盘价为 100 元,今天收盘价为 106 元:
M20 = 106 ÷ 100 − 1 = 0.06 = 6%示例规则可以写成:空仓且 M20 > 5% 时买入;持仓且 M20 < −5% 时退出。退出条件看的是滚动 20 日变化,不是“买入以后亏损 5%”。如果还要设置成本,应另写条件,并规定它与动量退出谁优先。
“打板”和“强者恒强”只是风格描述,落地时还要考虑涨停是否能成交、次日是否能卖、和拥挤风险。某个标的在特定样本里动量表现较差,只能说明这组规则和这段行情不匹配,不能据此断定它永远不适合动量。
偏离后可能回归
价格远离均线时寻找回归机会。
强势可能延续
过去一段时间上涨较强时跟随趋势。
一句话记住20 日动量不是买入后的成本止损。
06把 MACD 底背离写成明确条件
“底背离”要表达的研究问题是:价格接近或跌破前低,但下跌动量没有同步恶化。要让程序执行,至少拆成价格条件、MACD 柱条件和可选的右侧确认。
假设使用 30 日窗口,并允许当前低价比过去低点高不超过 1%:
当前低价 ≤ 过去窗口最低价 × 1.01
例如旧低是 1,290 元,当前价格是 1,298 元。两者差为 8 元,
8 ÷ 1,290 ≈ 0.62%所以它落在 1% 的容忍范围内。1,290 元的 1% 是 12.90 元;如果基准是 1,455 元,1% 则是 14.55 元。
值要特别注意符号。假设前一个比较低点的柱值为 −10,当前柱值为 −8:下跌动能的绝对值从 10 变成 8,缩小了 20%。在旧柱为负数且比较对象定义一致时,可以用“当前柱值 ≥ 旧柱值 × 0.8”表达改善方向。旧柱为零或正数时,这条比例规则不能直接套用。
前两项是左侧识别条件。还可以增加 DIF 向上穿过信号线的右侧确认,用更晚的入场换取一个额外条件;确认仍可能失败。退出示例可以是 MACD 死叉。策略说明必须写清窗口是否排除今天、比较的是哪个低点、柱值定义、确认有效期和。
价格接近前低 + 当前负柱改善 + 可选 DIF 上穿 DEA 确认
每一项都要定义比较窗口、极值和时间边界。
先找可能的底部
价格接近前低,MACD 下跌动能减弱。
等更多确认
DIF 上穿信号线后再入场,但价格可能已经反弹。
一句话记住背离不是一句“没创新低”,而是一组可计算条件。
07用插件机制管理多种策略
当策略越来越多,不必每次都改主程序。可以让主程序扫描策略目录,读取每个插件的 metadata,再统一执行和生成报告。
一个插件至少应包含:
- 唯一策略 ID、名称和说明;
- 参数及其允许范围;
- 所需数据字段和最短预热期;
- 指标初始化逻辑;
- 每根 判断交易条件的 next 逻辑;
- 版本和依赖信息。
公共模块负责数据读取、资金、订单和报告,策略插件只描述自己的指标与规则。扫描成功后,还要检查参数是否兼容、预热期是否足够、运行结果是否有交易记录。
某些时间窗口可能完全没有背离交易,这是规则和样本的结果,不一定是程序出错。即使换到 2024–2025 年窗口,出现持有收益约 −12%、策略年化亏损不足 −1% 的描述,也必须先统一两种口径:持有总收益与策略年化不能直接并列比较。不要不断更换窗口直到得到好看的成绩。
- 1扫描目录发现可信策略模块
- 2读取 metadata核对 ID、参数和依赖
- 3初始化指标准备数据和预热期
- 4运行 next按时间判断信号
- 5统一报告比较交易、资金和风险
一句话记住插件减少重复改主程序,不会自动减少研究偏差。
08调参和研究边界:一次只增加一种自由度
调参前先固定策略的经济或行为假设,再选小范围、能解释的候选值。网格搜索只是遍历参数组合并比较训练指标,它不会自动发现可靠参数。你应该保存每次尝试,并用另一个时间窗口评价。
如果想给 MACD 增加确认、K 线形态确认或波动过滤,一次只增加一种条件,再和原基线比较。每增加一个条件,就增加一次选择自由:可能减少假信号,也可能减少样本并增强。指标多不等于信息多,策略还必须包括入场、出场、、成本、执行和停用规则。
“筹码集中度”也不能简单从成交量直接得到。按成交价量分布构造的只是估计指标;有成交记录,不代表你知道每个投资者当前剩余持仓的成本。如果使用外部平台指标,要核对算法、历史覆盖和权限。网页能看到,也不等于允许任意抓取或调用。
最后用同一份数据分别实现乖离率、20 日动量和底背离。固定资金、成本和成交假设;第二轮只改一个参数;为每种策略记录三笔触发或未触发的手工核查。再用未参与调参的窗口测试,写出适用行情和失效条件。能复现、解释并承认失败边界,才算完成从指标到交易系统的一步。
- 1规则卡写清输入、条件和退出
- 2数据记录保存异常与实际区间
- 3参数表记录所有尝试
- 4交易日志手工核对触发和成交
- 5样本外用新窗口检查边界
一句话记住能复现并解释失败,才是研究完成。
三种市场假设实验
切换趋势、震荡和下跌样本,调整阈值与确认条件,在 K 线上比较乖离率、动量和 MACD 底背离的信号。
价格偏离移动平均线过远时寻找修复,单边下跌时容易过早入场。
4 道小题
全部答对,这一课就算真正读懂了。答错了会告诉你为什么。
这一课,浓缩成一张卡
学完可以保存或分享给朋友。保存成图片的功能会在下一版加上。
先写清市场假设、计算口径、触发条件和成交时点。
- 回归和动量假设不同
- 参数要留出样本外验证
- 数据异常先于调参排查
记住这 5 句话
- 01乖离率比较价格和均线的相对偏离,动量比较滚动窗口内的价格变化,两者假设不同。
- 02周期和阈值会改变触发频率、退出时点和样本数量,一次好结果不足以证明参数可靠。
- 03异常价格、复权方式和实际日期范围要先查清,不能为了美化曲线任意修数据。
- 04MACD 底背离要定义价格低点、窗口、负柱符号、容忍比例和右侧确认。
- 05插件负责复用策略结构,样本外验证和统一口径仍然需要研究者完成。
完成这一课
读完讲义、动手做一次实验、答对小题,这一课就算学完了。
- 读完讲义
- 完成一次三种市场假设实验
- 通过随堂自测
实验数据AI+金融投资训练营教学样本。固定合成趋势、震荡与下跌路径,按收盘确认、次日执行、100 股整手和简化交易成本模拟。
固定教学样本只用于解释量化研究方法,不代表任何真实标的未来表现,也不构成投资建议。