使用贝叶斯分类和基于奇异频谱分析的指标预测市场走势·进阶篇
📘

使用贝叶斯分类和基于奇异频谱分析的指标预测市场走势·进阶篇

第 2/2 篇

「用贝叶斯把指标信号转成方向概率」

贝叶斯定理处理的是条件概率:已知事件 y 发生,事件 x 发生的条件概率等于两者联合概率除以 y 的单独概率。放到价格方向预测里,可以把公式重写成 P(V|F,M,S),意思是当预测指标 F、MACD-信号差 M、随机导数 S 各自取 -1/0/+1 时,价格实际走出 V(-1 跌、0 中性、+1 涨)的概率有多大。 这里 V 是真实价格变动方向,F 是指标预测方向,M 是 MACD 与信号线差值符号,S 是随机指标导数符号,每个变量都是三态。左边公式翻译成人话就是:给定三组指标预测值,价格往某个方向动的概率多少? 训练用了数百根柱线的样本,在 USD/RUB 15 分钟收盘数据上跑。只盯 V1=-1 跌和 V3=+1 涨,因为这两类才用于开平仓决策。表 3、表 4 给出在预测值下行的条件概率最大可达 0.5 以上,分类规则很直白:当前向下条件概率大于 0.5 且大于向上概率,就判跌,反之判涨。 关键不在训练集内多准,而在矩阵能否外推。拿 USD/RUB-15M 算出的条件概率矩阵,直接套到 EUR/USD-15M、GOLD-15M、GOLD-5M、BRENT-5M 上分类,图例 10–13 显示切换方向指针能较快跟上实际走势,跨品种跨周期的外推结果偏乐观。外汇与贵金属杠杆高、滑点跳空频繁,这种概率分类只代表倾向,实盘前务必在 MT5 用历史数据自测一遍健壮性。

◍ 用贝叶斯分类器搭轻量推荐系统

上面那套分类器能直接当推荐系统的底座,再往下就是控制参数极少的实际交易系统。参数少的好处很实在:优化空间干净,不容易过拟合。 系统核心就 4 个旋钮:风险比率(止损挂成波动的倍数)、固定风险(盈利仓允许反向晃动的波动倍数)、最小交易概率(低于这值不持仓)、交易确定概率(到了才给开仓推荐)。波动用数据处理段内开收价差的根均方值量,止损绑前收价单向平移,所有进出场决策都等柱线收完才拍板。 我们拿 USD/RUB-15M 期货训好的模型,直接去跑没见过的 GOLD-15M 和 EUR/USD-15M。图例 14–16 显示:跨品种独立交易时盈利曲线稳步向上,没出现大回撤;调交易推荐概率和止损参数,盈利斜率明显跟着变,说明这套参数真有可优化余地。 外汇和贵金属杠杆高、跳空频繁,跨品种迁移只是概率倾向有效,实盘前务必在 MT5 用历史中心多品种回测一遍。

用贝叶斯观察者做盘中态势速判

在搭建完整 EA 之前,先放一个轻量模块来实时扫盘面更务实。SSA 贝叶斯观察者就是干这个的:它把 SSACD 预测与 SSA 随机两类输出做分类,给出「倾向性建议」而非下单指令,帮交易者在活跃品种上快速估价。 模块支持两种指标对组合:SSACD 预测(有限) + SSA 随机(有限),或 SSACD 预测 + SSA 随机。前者用裸指标也能跑,但 SSACD 需 ≥2.5 版、随机需 ≥2.0 版;用完整版时能调分类控制参数、选训练好的「最接近」模型,且趋势预测在内部完成,不必另挂 SSA 快速趋势预测。 要注意它走的是合并模式,结论不保证。外汇与贵金属波动大、风险高,少数几笔交易里的偶发刺激就会扭曲统计,带跳空缺口的时段尤其不能轻信少量样本的预测。 实盘里观察者界面底部会标出 FIX 与 STOP 两级:价格碰 FIX 代表顺势仓可兑现,碰 STOP 则无条件离场;离场动作默认等当前分析间隔走完、出现 READY 标签后再执行。启动后可在选项卡改分类参数,训练模型选型仅完整版指标开放。

「这套混合模型的落地边界」

前述方案把奇异频谱分析(SSA)的序列预测,和基于贝叶斯定理的机器学习判据叠在一起,试图搭一套可复用的交易推荐系统。已做的建模实验,验证了一组固定训练数据训出的模型,去套不同时间帧、不同金融品种序列的可行性——这点直接决定你之后能不能只训一次就多品种跑。 实盘分类环节暴露出的问题,目前还没在自动交易策略里闭环:比如跨品种泛化时的误判累积、以及贝叶斯先验在跳空行情里的滞后。这些坑会在后续部分展开,当前你能做的,是先确认自己的 MT5 环境里能否复现文中所说的训练—推断分离结构。 文中致谢部分提到的图形界面框架与 ALGLIB 的 MQL 移植,是这套系统能跑起来的底层依赖;没有它们,光有算法也难逃手搓界面的耗时陷阱。外汇与贵金属品种波动具有高风险,跨品种迁移效果仅代表历史样本倾向,实盘前务必小资金验证。

◍ 把这条线请下神坛

这套 SSA 贝叶斯观测器的原始材料里,作者附了一份 3402.76 KB 的 ZIP(SSABayesObserver.zip),但多位用户在 2017–2021 年的反馈都指向同一个坑:直接在 MT5 里加载例子会报 cannot load custom indicator 'SSA\SSACD Forecast' [4802],连 GetSSATrendPredictor 也找不到。Roman Korotchenko 在 2018 年回帖确认,程序只能跑在 MetaTrader 5 上,MT4 彻底不行,且安装步骤从未写清,用户得自己解包摆路径。 方法本身不神:奇异谱分析做趋势分解、贝叶斯分类做方向判定,逻辑站得住,但俄文转英文再转中文的机器翻译把代码也带歪了,社区里有人直言「他们从没测过,我经常得重调」。外汇和贵金属杠杆高、跳空频繁,这类未经验证的指标直接挂实盘,亏损概率偏大。 真想验,就下那包 ZIP,手动把 SSA 目录塞进 MQL5/Indicators,用 EURUSD H1 复现报错再排路径;跑通了也先数它误报几次,再谈信不信。

常见问题

用贝叶斯分类器把每个指标的阈值状态当特征,历史行情当训练集,输出多头或空头后验概率,概率高于阈值才视作有效信号。
搭一个贝叶斯观察者,实时喂入当前指标状态,直接给出态势倾向概率,超过0.6可视为偏多、低于0.4偏空,中间观望。
小布盯盘的AIGC分析已内置贝叶斯态势速判,打开对应品种页就能看到实时多空概率和信号强度,不用手动跑模型。
边界明显:趋势市命中率较高,震荡市伪信号多,建议叠加波动率过滤,实盘前先用三个月数据回测验证。
特征数控制在3到5个,训练样本不少于200根K线,先验概率用历史均衡值,避免按近期暴利行情单独调权。