价格走势:数学模型与技术分析的双轨预测框架
(1/1)·看似无序的汇率波动背后藏着可建模的规律,多数交易者却只靠肉眼猜方向
◍ 价格走势能用模型说清吗
很多人以为技术分析只是画几条线,其实价格走势背后藏着可被数学描述的结构。把历史报价当成随机变量序列,就能用分布、期望和方差去衡量一段行情的「散乱程度」。 以 MT5 自带的随机序列生成逻辑为例,下面这段代码演示了如何取最近 N 根收盘价的简单统计特征。跑一遍你会看到,震荡市的标准差明显小于趋势市——这是调参数前该先确认的事实。 外汇与贵金属杠杆高、跳空频繁,用数学模型辅助判断只是降低盲猜概率,不代表能避开黑天鹅。开 MT5 把这段贴进脚本,换不同品种观察输出差异,比只看指标颜色有用。
class="type">class="kw">double closes[class="num">100]; class="type">int copied = CopyClose(Symbol(), PERIOD_H1, class="num">0, class="num">100, closes); class="type">class="kw">double sum = class="num">0; for(class="type">int i=class="num">0;i<copied;i++) sum += closes[i]; class="type">class="kw">double mean = sum / copied; class="type">class="kw">double var = class="num">0; for(class="type">int i=class="num">0;i<copied;i++) var += (closes[i]-mean)*(closes[i]-mean); var /= copied; class="type">class="kw">double stddev = MathSqrt(var); Print("Mean: ", mean, " StdDev: ", stddev);
「两条预测路线的分野」
外汇日均成交额超 7 万亿美元,但散户能稳定提取的波动收益占比极低,核心卡点从来不是「看不看得懂图」,而是「能不能把无序波动转成可重复的决策」。市场不会按教科书走,但历史数据里确实藏着统计意义上的偏好结构。 一类路线是用统计模型从过往报价里榨规律:把汇率序列喂进数学框架,输出的是不同情景的发生概率,而不是「涨还是跌」的断言。这类模型内部复杂度跨度很大,从简单回归到多层状态机都有,统称为量化侧的预测手段。 另一条更接地气的路是技术分析——直接在 MT5 图表上读支撑阻力、看 MACD/RSI 拐头。它不追求「算出概率」,而是用形态和经验给当下价位一个上下文。两种手段单独用都有盲区:模型容易过拟合历史,裸图分析容易受主观干扰。后面会拆开讲各自怎么落地、怎么拼起来用。
随机开仓与经验分布下的基础策略
先跑一套最朴素的规则:每根新 K 线开盘平掉旧仓再随机开新仓,方向靠随机数定。这背后认的是有效市场假说——价格走法不可预判,交易者手里没有完整信息,只能赌自己的单子刚好顺了市场。 策略里唯一能调的是随机数生成器初值,换一个数就换一套订单序列。我做了 800 轮优化测算,原样随机策略没有任何盈利潜力,大概率是点差吃掉了价差,开平之间甚至可能是负差。 改法很直接:方向仍随机,但持仓时长交给交易者定,账户空仓才能新建,平仓交给止损止盈。止损止盈沿用参考文里的数值,优化参数不动,测算里就出现了有盈利潜力的方案。切更大周期能缓和点差,但等于拉长持仓,得自己权衡。 找最优初值可用秘书问题:N 个备选里先筛前 N/e 个只记录不采纳,之后谁比记录最优更好就停手,极大概率撞上全局最优。纯跑很耗时间,我只迭代 1000 次就挑出最优方案,效果不错。 全随机之外,试了“历史决定未来”的朴素预测,看图就知道不灵。改成下一期价格 = 当前价格 + 误差项,主导项其实是误差(也可叫价格增量)。这些增量的整体形态近似拉普拉斯分布,而不是研究者爱用的经典分布——后者只是数学抽象,实盘几乎对不上。 真能用的是经验分布:剔掉两端各三分之一极值,拿剩余划定价格区间去预判后续。这预测只靠当前价就能跑,模型还能深抠但算力飙升。外汇和贵金属杠杆高、点差滑点随时翻脸,这类随机底仓无论怎么调都只是概率游戏,别当确定性依据。
◍ 用最小二乘把时间原点从1970里拽出来
线性趋势最省事的写法就是拿时间当自变量套一条直线,MT5 里 MetaQuotes 默认把 1970-01-01 当作时间零点。但这个原点是人为定的,跟行情结构没必然关系,硬套容易让趋势斜率带偏。 取两根连续 K 线列趋势方程,做差再化简,把时间差换成「隔了几根 K 线」这种采样间隔整数,式子立刻瘦一圈:原来要同时吃时间和某个趋势参数,现在其中一个直接消掉,下一根价格 = 当前价 + 趋势速率 × 步长。 难点落在趋势速率怎么估。最小二乘是最直白的路子,也可以换别的拟合。假定速率已知,每来一个新价就按「预测误差和速率变动都往零靠」去微调,等价于让速率在长周期里平稳。 把「价格连着多根同向」这个条件列成方程组再合并,速率最终以 SMA 均价为基准锚定。指标画出来就是一条围绕零轴翻正翻负的长线,翻转时开平,属于能直接搬进 EA 验证的雏形。 外汇和贵金属波动受事件驱动,这类线性趋势在高波动段会频繁假翻转,实盘前务必用历史数据跑回测。指标本身还没完,速率自身也可能带趋势,把这些二级趋势叠起来才更靠近可用信号。
「用形数权重改写均线记忆周期」
随机漫步假设下,价格走过的距离与时间存在幂律关系:幅度 ∝ 时间^指数。若指数接近 0,价格微弱横盘;线性趋势时指数等于 1;实测该指数历史区间极宽,约在 0 到 2.5 之间,所以侧重近期价格的加权方式才有实战意义。 原文提到的 EMA 与 LWMA 都算这类近期权重指标,但我们可以用多边形数(形数)重排权重。设阶数 L,第 n 个形数为 n*(L-2)*(n-1)/2 + n,把它直接当权重塞进均线,反应比 LWMA 快,记忆周期又比 EMA 长,对序列平滑更耐造。 拿最简策略验证:价格上穿/下穿该指标线就发信号。裸跑结果并不理想,但重点是——基于不同阶数 L 能堆出一大批形数指标,各自抓特定趋势片段;单看拉胯,分开过滤后再合成,外汇与贵金属这种高波动品种上反而可能出人意料地能打,务必先开 MT5 用历史数据自己跑一遍确认。
工具清单与随机策略的落点
把持仓周期和止损止盈调顺,连随机猜方向的 EA 都可能转正,这点在 Picky Bride 的回测里已经反复出现——它的 Seed 只管随机数,Duration 要求持仓不低于 1 个单位,盈利靠的是参数匹配而非预测神准。 文末这批工具可以直接拖进 MT5 验证:Error 脚本的 Duration 不得小于 1 根 K 线,Price Increments 指标的 Percent 剔极值范围锁在 1 到 99,Wandering 指标周期至少 3、Figurative Numbers 至少 2,Lvl=1 是 SMA、2 是 LWMA。 外汇和贵金属杠杆高、滑点狠,上述任何模型都只是概率优势,实盘前务必用策略测试器跑够样本。 打开终端把 EA_Picky_Bride 和 Error 脚本都加载一遍,先只看 Duration 从 1 调到 5 的权益曲线差异,比读十篇方法论都实在。