将概率论应用于缺口交易:从随机漫游假想破局策略根基(基础篇)
🎲

将概率论应用于缺口交易:从随机漫游假想破局策略根基(基础篇)

(1/3)· 多数 EA 回测漂亮实盘崩,只因跳过了用概率证伪思路这一步

偏理论进阶 第 1/3 篇
把缺口当信号直接写进 EA 的人,常忽略一个事实:零漂移随机漫游下盈利在概率上不可能。用感觉而不是大数定律去验证策略,实盘迟早被滑点和点差吃掉本金。外汇贵金属杠杆高,这类隐性假设不拆清就是裸奔。

把概率论塞进缺口交易里

在 MT5 的行情里,价格跳空(缺口)常被当成噪音,但从概率论视角看,它更像是偏离随机漫游假设的可捕捉样本。Aleksey Nikolayev 在 2019 年 2 月发布的统计研究,累计被查看 2458 次、收到 26 条讨论,说明这类硬核量化思路在交易者里有稳定需求。 所谓策略,本质是在对抗「价格随机游走」这个默认假设——如果你相信下一根 K 线和缺口毫无记忆,那任何择时都是徒劳;而缺口交易者的赌注恰恰是:跳空后的回填或延续,存在可统计的偏向。 外汇与贵金属跳空多发生在周末休市后或重大数据夜,杠杆环境下回撤极快,属于高风险场景;用概率框架去算每笔成交的风险上限,比凭手感扛单更不容易爆仓。

◍ 从随机漫游假说里找策略缝隙

价格若严格服从零漂移随机漫游,即每一刻的涨跌期望为零、无方向性趋势,那么任何试图靠方向判断获利的交易在概率上都无法稳定胜出。这一点不是空谈,而是随机过程理论的直接推论:漂移项为 0 时,长期收益均值趋近 0。 所以可行的切入点是检测实际报价序列相对该假说的偏离。若能找到统计上显著的偏离(比如某周期内的漂移不为 0,或收益分布存在可捕捉的偏度),就相当于拿到了反制随机漫游假说的证据,进而有可能据此搭建交易逻辑。 此前已就风险议题做过两篇铺垫,本系列把它们作为基准参考。方法根植于概率论,不强制读者背公式,但得明白大数定律在干什么:越是系统、高频地复用同一套概率化规则,结果的稳定性越可能显现。外汇与贵金属杠杆高、跳空频繁,这类统计策略实盘前必须在 MT5 用真实点差回测论证,不可直接轻信理论偏移。

「把EA逻辑压成可验证的简化模型」

把一套 EA 拆开看,开发流程通常分三步:先有思路,再用各种简化去验证思路,最后让思路适配真实市场。本文聚焦中间这步——论坛里对它讨论最密集,也最容易被忽略细节。 我们做的简化很硬:只做单一资产、价格以账户货币计、剔除利息与出入金、只用市价单、忽略滑点、点差 s 设为固定值,且账户由这一只 EA 全权掌管。在这些前提下,EA 的结局被完全锁定成 v(t) 函数——随时间变化的持仓量,正为买、负为卖,配合 p(t) 价格函数和 c0 初始资金。

v(t) 与 p(t) 都是分段常数(步进)函数,取值是最小增量的整数倍;约定两者缺口不重叠,即任一时刻最多只变价格或只变持仓。由此推导 c(t) 资金曲线:价格动则资金变动机为 v×Δp,持仓减量(部分平仓)资金不变,持仓加量则资金扣掉 s×Δv。因为账户只有这一只 EA,c(t) 就是 MT5 里的净值。

把连续函数换成数字序列是关键一跃:用「简单仓位」(开平之间量向不变)之和表示任意仓位,转而分析每笔交易的盈利 a 与风险 r,满足 c1/c0 = 1 + r a。这避开了对随机过程的复杂建模。 参数也分三层:历史参数(逐笔浮动,如指标值、月相)、实际参数(启动即定,用于回测)、元参数(管优化算法,如多目标权重)。本文对历史参数再砍一刀——假定回报分布对其依赖微不足道,否则模型过度复杂必过拟合。外汇与贵金属属高风险品种,这套简化仅利于逻辑验证,实盘须重估滑点与多点差冲击。

用 Q 值拆穿随机漫游的盈利假象

价格行为没有精确模型,但近似模型能帮我们排雷。随机漫游假想把价格看成零漂移的维纳过程:无趋势、无定向,任何 EA 在零点点差下平均利润趋近零,非零点差则数学期望值转负。 要反制这个假想,核心不是找圣杯,而是检测统计偏差。我们构造一个量 K=(p2-p0)/(p0-p1),其中 p0 是入场价,p1 是止损价,p2 是到止损触发前离 p1 最远的价格。K 恒大于等于 0,代表这笔交易可实现的最大盈利倍数。 直接看 K 不方便,换成 Q=K/(K+1)=(p2-p0)/(p2-p1),它落在 [0,1) 区间,物理意义是止盈占(止损+止盈)的比率。在纯随机漫游下,Q 的理论分布极其简单:Fq0(x)=0(x≤0),Fq0(x)=x(0<x≤1),Fq0(x)=1(x>1)——也就是均匀分布在 [0,1]。 实战做法:拿 n 个历史入场点,每个记录 p0,i、p1,i,再找出各自对应的 p2,i,算出 Qi 样本。经验分布 Fq(x)=m(x)/n,m(x) 是小于 x 的样本数。若 Fq(x) 明显偏离那条 45 度直线(Fq0),说明价格可能有可捕获的偏向;但偏差只是必要条件,还要代入点差算期望收益是否为正。 若经验分布显著异于随机漫游且期望为正,就可以用最大化盈利预期来挑止盈/止损比,再定每笔风险值,早期砍掉不靠谱思路。复杂离场算法同理,解析解难求时,用蒙特卡罗模拟逼近随机漫游的经验分布即可。外汇与贵金属杠杆高、点差侵蚀快,这类统计优势一旦样本外衰减,负期望会立刻显现。

◍ 缺口统计落地与品种筛选

把缺口当研究对象,第一步是定义什么叫“缺口”。资产价格离散跳动,大跳才叫缺口,边界自己定。外汇里标准跳空少,可泛化为任意两段价格之差,比如美盘收盘到次时段开盘的缝隙。时段用期限、长度、顺移三个间隔形式化,能覆盖分钟柱之间的跳。 两个采集 EA 都不交易,只在真实环境跑统计:gaps_reg_stat 抓连续逐笔报价间缺口,建议基于真实 tick;gaps_ses_stat 抓时段间缺口,基于分钟 OHLC。CGaps 类里的 go[] 存未补齐缺口索引,纯粹为加速。每条记录绝对缺口值、Q 值、闭合数据、间隙值,再用 Kolmogorov-Smirnov 单样本检验看经验分布和均匀分布的偏离,p-value 越小越不像随机漫游。MQL5 没有这检验,原文用 R 补。

  • 个选项跑出来,EURUSD 逐笔报价 200 缺口 p-value 3.47e-07、均差点差 0.000695;USDJPY 时段间 50 缺口 p-value 0.00919、均差点差 0.0185。顺缺口方向交易期望为负,回补方向略正但 EURUSD 利润薄。点差在逐笔/分钟缺口时可能翻数倍。按时段看,一年维度偏离很小,横盘回补优于趋势。

筛选结论指向 USDJPY 的分钟柱线缺口继续深挖——200 缺口 p-value 0.00037、均差点差 0.05148,偏离显著且点差可控,比逐笔报价的 0.09563 好接。外汇和贵金属缺口策略实盘高风险,样本偏离不承诺可盈利,只给验证起点。

MQL5 / C++
class=class="str">"cmt">// gaps_reg_stat.mq5
class="macro">#define ND class="num">100
input class="type">class="kw">double gmin=class="num">0.1;           class=class="str">"cmt">// 最小缺口大小: USDJPY - class="num">0.1, EURUSD - class="num">0.001
input class="type">class="kw">string fname="gaps\\stat.txt";  class=class="str">"cmt">// 统计文件名
class="kw">struct SGap
  { class="type">class="kw">double p0;
    class="type">class="kw">double p1;
    class="type">class="kw">double p2;
    class="type">class="kw">double p3;
    class="type">class="kw">double s;
    class="type">void set(class="type">class="kw">double p_1,class="type">class="kw">double p,class="type">class="kw">double sprd);
    class="type">bool brkn();
    class="type">void change(class="type">class="kw">double p);
    class="type">class="kw">double gap();
    class="type">class="kw">double Q();
  };
class CGaps
  { SGap gs[];
    class="type">int ngs;
    class="type">int go[];
    class="type">int ngo;
    class="kw">public:
    class="type">void init();
    class="type">void add(class="type">class="kw">double p_1,class="type">class="kw">double p,class="type">class="kw">double sprd);
    class="type">void change(class="type">class="kw">double p);
    class="type">void gs2f(class="type">class="kw">string fn);
  };
CGaps gaps;
class="type">MqlTick tick0;
让小布替你跑这套证伪
这些基于概率的偏离检测思路,小布盯盘的 AIGC 诊断已内置,打开对应品种页即可看到历史缺口分布与随机性检验结果,你只管判断要不要进场。

常见问题

因为价格无方向趋势时,任何市价买卖的期望收益被固定点差抵消,长期依大数定律趋向亏损,只有找到偏离该假想的结构才有正期望。
产生思路与适配市场常被聊烂,而用简化模型论证思路是否成立最缺讨论,它决定策略是否值得继续投入实盘。
合理,基础篇旨在剥离噪声看概率本质;进阶篇再放宽松假设,否则一开始变量太多推不动公式。
目前内置的是诊断与分布检验,策略构建仍需你定义持仓函数 v(t) 与价格函数 p(t),小布负责把重复统计活儿包了。
模型假定任意时刻至多其一变化,避免成交与报价在同日界混淆,保证资金函数 c(t) 可分段解析。