Appearance
如何利用历史数据寻找交易机会?
上一篇文章讨论了为什么技术指标需要历史验证。
技术指标可以帮助我们描述市场状态,但真正需要研究的不是某个指标本身,而是:
当一种市场状态出现后,未来结果是否表现出值得继续验证的统计差异?
这也引出了一个更实际的问题:
面对大量历史数据,应该怎样从中寻找交易机会?
很多人会先寻找一个指标、形态或参数,希望它直接给出买卖答案。但历史数据记录的是过去,它不会主动告诉我们什么是机会。
更可行的方法是从一个具体问题开始,把观察到的现象改写成可验证的假设,再让数据决定这个假设是否值得进入下一轮研究。
看到一种形态,就等于发现机会了吗?
打开行情软件,我们可以看到 K 线走势、均线排列、技术指标和成交量变化。
假设某只 ETF 连续下跌了几天,我们可能产生一个直觉:
跌得比较多以后,是不是更容易反弹?
这个直觉可以成为研究起点,却还不是交易机会。因为“跌得比较多”和“更容易反弹”都没有明确含义。
继续追问就会发现,至少还需要说明:
- 下跌多少才算“跌得多”;
- 研究哪个品种和时间周期;
- 在什么价格买入;
- 买入后观察多久;
- 什么结果算作反弹;
- 收益能否覆盖交易成本;
- 与平时任意一天买入相比是否更好。
如果这些条件没有固定,我们很容易在看过走势以后调整说法,让原来的判断显得正确。
因此,图形和指标更适合帮助我们发现现象。一个现象能否成为交易机会,还需要经过定义和验证。
应该从指标开始,还是从问题开始?
一种常见的研究方式是先选择指标,再寻找效果最好的参数。例如,先认定 CCI 有用,然后不断调整周期和阈值。
这样做的问题在于,研究方向很容易变成:
怎样证明这个指标有效?
更合适的起点是一个与市场行为有关的问题。例如:
当 ETF 在短期内明显下跌后,未来几个交易日的收益分布是否与平时不同?
围绕这个问题,再选择能够描述市场状态的数据:
- 阶段跌幅;
- 波动率;
- 成交量变化;
- 技术指标;
- 趋势和市场环境。
CCI 可以用来描述价格偏离状态,均线可以辅助区分趋势,成交量可以补充观察市场参与程度。但它们都只是研究工具。
先提出问题的好处是:即使某个指标没有提供额外信息,我们仍然可以放弃它,换一种数据描述同一个问题,而不需要维护预设结论。
问题明确以后,下一步是把“明显下跌”和“未来反弹”变成可以计算的条件。
怎样把模糊想法改写成可验证假设?
仍以“大跌后可能反弹”为例,可以先写出一项最简单的研究假设:
text
研究对象:某只 ETF 的日线数据
触发条件:过去 5 个交易日累计下跌超过 5%
买入方式:下一个交易日开盘买入
卖出方式:持有 5 个交易日后卖出
成本口径:计入手续费和滑点
比较基准:同期任意交易日买入并持有 5 个交易日这些数字只是演示如何定义实验,并不代表已经验证过的参数。
规则固定以后,历史数据才有可能回答:
- 触发条件一共出现过多少次;
- 持有期收益的平均值和中位数是多少;
- 盈利、亏损和极端结果如何分布;
- 扣除成本后是否仍有正向期望;
- 与比较基准相比是否存在差异;
- 结果是否集中在少数特殊行情中。
最终得到的也不是:
下跌 5% 以后一定会反弹。
而是:
在指定品种、样本区间和交易规则下,历史上满足条件的样本表现如何。
把结论限定在实验条件内,才能继续判断这个现象是否具有研究价值。
历史数据能帮助我们检查什么?
一项假设定义清楚后,可以依次检查四类问题。
这种状态出现得足够多吗?
首先要统计有效样本数量。
如果一种状态只出现过几次,结果很容易被单次行情影响。但样本次数多也不一定代表证据充分:连续多日触发的信号,可能都来自同一轮行情;持有周期相互重叠时,也可能重复统计同一段价格变化。
因此,除了样本总数,还要观察:
- 样本是否集中在少数年份;
- 多次触发是否来自同一轮行情;
- 上涨、下跌和震荡阶段是否都有覆盖;
- 增加新样本后,结果是否发生明显变化。
样本决定我们能看到多少历史现象,但样本数量本身还不能证明存在优势。
状态出现以后,结果怎样分布?
只看“上涨了多少次”会遗漏收益幅度和风险。
更完整的观察包括:
- 盈利比例;
- 平均收益;
- 收益中位数;
- 收益分布;
- 最大单次盈利与亏损;
- 最大回撤和连续亏损;
- 去掉少数极端样本后的结果。
平均收益可能被一两次大涨拉高,较高胜率也可能被少数大额亏损抵消。把次数、幅度和分布放在一起,才能看清历史结果的基本形态。
但即使结果看起来不错,还需要回答一个关键问题:它比什么更好?
结果是否优于合理基准?
假设“大跌后买入”的历史盈利比例是 60%。如果同一时期任意一天买入的盈利比例也是 60%,那么触发条件可能没有提供额外信息。
常见的比较基准包括:
- 同期任意交易日买入;
- 简单持有策略;
- 不使用该条件的样本;
- 承担相近风险的其他规则。
比较时应尽量保持品种、时间范围、持有周期和成本口径一致。否则,结果差异可能来自实验条件,而不是触发信号。
所谓概率优势,不只是“过去有盈利”,而是相对于合理基准出现了可以被重复检查的差异。
优势在不同环境中是否稳定?
整体平均结果可能掩盖市场环境的影响。
同样是短期下跌,它可能发生在:
- 上涨趋势中的正常回调;
- 震荡区间中的来回波动;
- 下跌趋势中的进一步走弱;
- 高波动事件中的快速变化。
这些状态之后的结果可能不同。因此,还需要分阶段检查:
- 不同年份;
- 上涨、下跌和震荡阶段;
- 高波动与低波动阶段;
- 参数小幅变化后的表现;
- 未参与规则调整的样本。
分阶段验证不是要求一套规则在所有环境中都有效,而是帮助我们看清:它可能在哪些条件下成立,又可能在什么情况下失效。
可以从哪些市场状态开始研究?
如果暂时没有明确假设,可以从几类常见的市场状态出发。它们不是现成的交易信号,而是提出问题的方向。
价格位置
价格位置关注当前价格相对过去处于什么位置,例如:
- 一段时间内的高低分位;
- 偏离均线的程度;
- 过去若干交易日的累计涨跌幅;
- 距离阶段高点或低点的幅度。
可以继续追问:
当价格处于某个历史位置时,未来收益分布与平时相比是否不同?
波动状态
波动状态描述价格变化的范围和速度,例如:
- 日内振幅;
- 真实波幅(ATR);
- 历史波动率;
- 某个目标价格的历史触达情况。
对于做 T 来说,波动提供了形成价差的空间。但波动更大也可能意味着风险更高,因此不能只看潜在价差,还要同时检查反向波动和成交条件。
趋势状态
趋势可以用阶段涨跌幅、均线方向或价格结构等方式描述。
研究趋势的目的,不一定是判断“现在一定会上涨或下跌”,而是检查同一个信号在上涨、下跌和震荡环境中是否呈现不同结果。
如果差异较明显,趋势状态可能成为规则的适用条件,而不是单独的买卖答案。
指标状态
技术指标可以把某些价格特征转换成统一数值,例如:
- CCI 的偏离状态;
- RSI 的相对强弱;
- 均线之间的位置关系;
- MACD 的变化。
研究重点不是某个数值看起来“高”或“低”,而是固定计算口径后,检查指标状态出现后的历史结果是否优于基准。
成交与资金状态
价格变化还可以结合成交和资金数据观察,例如:
- 成交量与成交额变化;
- ETF 份额变化;
- 价格变化是否伴随成交放大;
- 流动性是否足以支持实际执行。
这类数据能够补充价格背后的市场行为,但仍然需要明确来源、统计口径和时间一致性,不能直接等同于资金必然流入或流出。
历史结果最好,就代表找到了机会吗?
不一定。
假设我们测试了大量指标、阈值、持有周期和历史区间,最后挑出表现最好的一组。即使它的历史曲线很漂亮,也可能只是碰巧贴合已经看过的数据。
这类问题并不限于复杂模型。下面这些做法都可能让结果过度适应历史:
- 看到结果后反复调整触发条件;
- 尝试许多参数,只保留表现最好的一组;
- 删除不利年份,却没有事先定义理由;
- 根据同一批样本不断修改规则;
- 只展示成功规则,忽略同时测试过的失败规则。
为了降低这种影响,可以:
- 在计算前记录研究问题和统计口径;
- 保留所有测试结果,而不只记录最好的一组;
- 检查参数附近的结果是否相对稳定;
- 将数据分为提出假设和验证假设的不同区间;
- 使用新数据继续观察,而不是根据新结果立即改规则。
历史数据既可以帮助发现规律,也可能让研究者从随机波动中筛出一个看似有效的答案。
因此,寻找机会不只是寻找好结果,还要检查这个结果是怎样被找到的。
高胜率为什么仍然可能不是好机会?
胜率是研究结果的一部分,却不能单独代表交易价值。
假设一套规则在 100 次历史交易中有 90 次盈利:
text
盈利概率:90%
平均盈利:0.2%
亏损概率:10%
平均亏损:5%暂不考虑交易成本,它的每笔期望收益为:
text
期望收益
= 90% × 0.2% − 10% × 5%
= -0.32%虽然胜率达到 90%,历史期望收益仍然为负。
研究交易机会时,至少还需要综合考虑:
- 盈利与亏损的概率;
- 平均盈利与平均亏损;
- 手续费和滑点;
- 最大回撤和连续亏损;
- 资金占用;
- 实际成交与执行难度。
真正值得继续研究的不是“胜率最高”的规则,而是:
在成本、风险和执行条件明确以后,历史结果是否仍然表现出相对稳定的正向期望。
即使答案是肯定的,也需要让规则面对未参与筛选的数据。
怎样建立一个完整的交易实验?
把前面的步骤放在一起,一项交易实验可以整理为:
text
观察市场现象
↓
提出研究问题
↓
定义市场状态和交易规则
↓
确定数据、成本与比较基准
↓
获取历史样本
↓
统计收益分布与风险
↓
检查不同阶段和参数稳定性
↓
进行样本外验证
↓
模拟或小规模观察实际表现
↓
根据新证据保留、修改或放弃假设这个过程与实验的思路相似。
研究的目的不是先证明自己的想法正确,而是:
设计一项能够被数据验证,也能够被数据否定的实验。
如果结果没有优于基准,或者优势在新样本中消失,放弃假设同样是有价值的研究结果。它可以减少以后在相同方向上的重复试错。
当前结论
历史数据不能直接告诉我们明天一定上涨,也不会自动标出哪个位置可以买入。
它更适合帮助我们完成三件事:
- 把市场观察改写成可复现的条件;
- 检查相似状态过去出现后的收益与风险;
- 比较这些结果是否稳定地优于合理基准。
因此,利用历史数据寻找交易机会,不是从大量指标里挑出最好看的结果,而是沿着一条可以复查的路径持续缩小问题:
text
现象
↓
假设
↓
规则
↓
样本
↓
统计证据
↓
样本外与实际观察最终能够得到的仍然只是阶段性结论:
在明确条件和已有证据下,这项假设是否值得继续验证。
它不是未来收益的保证。
到这里,我们已经建立了从市场现象到交易实验的基本路径。接下来可以把问题进一步缩小到做 T 中常见的一项研究:
怎样利用历史样本估计目标价格的触达概率?
下一篇: