Skip to content

如何利用历史数据寻找交易机会?

上一篇文章讨论了为什么技术指标需要历史验证。

技术指标可以帮助我们描述市场状态,但真正需要研究的不是某个指标本身,而是:

当一种市场状态出现后,未来结果是否表现出值得继续验证的统计差异?

这也引出了一个更实际的问题:

面对大量历史数据,应该怎样从中寻找交易机会?

很多人会先寻找一个指标、形态或参数,希望它直接给出买卖答案。但历史数据记录的是过去,它不会主动告诉我们什么是机会。

更可行的方法是从一个具体问题开始,把观察到的现象改写成可验证的假设,再让数据决定这个假设是否值得进入下一轮研究。

看到一种形态,就等于发现机会了吗?

打开行情软件,我们可以看到 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 中常见的一项研究:

怎样利用历史样本估计目标价格的触达概率?

下一篇:

《历史上,价格通常能走多远?》