价格走势:数学模型与技术分析
引言
外汇市场作为全球规模最大的金融市场,吸引无数交易者试图借助汇率波动赚取收益。但市场波动无常、走势难以预判,价格预测工作极具难度。因此,研发并运用高效的预测模型,是交易者的核心工作之一。
外汇价格看似无序波动,实则遵循内在运行规律。即便如此,精准预判行情依旧是一大难题。依托统计分析搭建的数学模型,可从历史行情数据中提炼规律,构建标准化算法,以此推演价格后续走势。这类模型大致可以分为“复杂”和“非常复杂”两类,能够评估不同行情情景的发生概率,辅助交易者做出理性交易决策。
而技术分析依托图表研判与指标工具,预测逻辑更为直观。交易者通过观察行情图表,判定支撑位与阻力位,结合各类技术指标制定交易决策。
本文围绕价格预测两大手段展开研究,分别讲解数学模型与技术分析方法。对比各类分析思路的优缺点,探讨二者结合运用的方式,以此提升交易策略实操效能。深入理解模型与技术分析的运行原理,能够有效提高交易效率,降低亏损风险,增加交易盈利概率。
基础模型
我们考察一个规则如下的交易策略:
- 新 K 线开盘时,平掉原有持仓,同时新开仓位;
- 开仓方向随机判定。
读者或许会疑惑这套策略并无新意。本文的创新点在于,笔者认可有效市场假说理论。认同该理论即意味着认为价格走势无法预判。行情变化毫无既定轨迹,市场中存在某种完整信息,价格变化正是依据这些信息发生的。交易者并不掌握这类信息,只能希望自己的决策恰好与市场方向一致。
接下来测试这套随机交易策略。策略唯一可调参数为随机数生成器初始值,调整该数值即可切换不同交易订单序列。

经过 800 轮策略优化测算,该策略未展现任何盈利潜力。 出现该结果大概率是点差因素所致。受点差影响,仓位的开平仓价格差甚至可能为负。对此可切换至更大周期图表尝试改善,但周期放大等同于延长持仓时长。结合测试结果,对交易策略做出如下调整:
- 开仓方向依旧随机选取;
- 持仓时长由交易者自行设定;
- 账户无持仓时方可新建订单;
- 借助止损止盈订单完成平仓操作。
本次沿用参考文章中的止损、止盈数值,优化参数保持不变。调整后的策略效果得到改善。测算中出现了具备盈利潜力的交易方案。

通常而言,要找到最优的初始化数值,可以采用 秘书问题(secretary problem)方法。假设我们共有 N 个不同备选方案。那么需要先筛选检验的方案数量,可通过以下公式计算得出:
![]()
在这种情况下,我们会得到如下计算结果:
![]()
我们先记录下表现最优的那个方案,然后继续测试剩余方案。如果出现比已记录最优方案更好的结果,就可以停止继续搜索。此时我们极大概率已经找到了所有备选方案中的最优解。
该算法唯一的缺点是:实际运行可能非常耗时。但如果想充分挖掘这套策略的全部潜力,就必须使用该算法。我仅通过 1000 次迭代测试就选出了最优方案,最终效果表现良好。

到目前为止,我们都是随机选择开仓方向。但如果价格走势中存在某些可用于辅助决策的规律呢?我们尝试使用一种朴素预测法。该预测方法的核心思想可以概括为:历史决定未来。但随便看一张行情图表就能明白,这种方法并不奏效。我对该预测方法稍作修改:下一期价格 = 当前价格 + 误差项:
![]()
采用这种方法时,影响预测结果的主要因素并不是价格本身,而是误差。我之所以用‘误差’这个词,是出于所选预测模型的考虑。不过,它也可以替换成“价格增量”。术语虽变,其核心内涵保持一致。下面我们来分析这些价格增量的统计特征。

整体形态近似拉普拉斯分布。研究金融时间序列时,诸多研究者习惯采用经典分布解读测算结果。该方式操作简便。这类分布的各项特性已有定论,用以构建时序模型难度不高。但事实并非如此简单。经典分布属于数学抽象概念,现实行情中几乎无法完全对应。
交易者真正需要参考的,是实际价格的分布形态。这类分布称作“经验分布”。它依托实际观测数据得出,而非基于理论假设推导。由此我们得到价格增量的经验分布。剔除两端各三分之一比例的极值数据后,便可划定价格运行区间,以此预判后续价格水平。

该预测仅需依托当前价格即可完成。模型能够进一步优化适配。但相应会大幅提升运算复杂度。感兴趣可在评论区留言交流。接下来我们探讨更复杂的模型。
线性趋势
所有交易者都喜欢趋势行情。尤其是当持仓方向与趋势一致时。线性趋势可由简易方程定义。
![]()
该方程将时间设为自变量。MetaQuotes默认以 1970 年 1 月 1 日作为时间计量起点。如果这个起点不对呢?也许我们该从 2 月 29 日开始计时?下文尝试规避这一缺陷,确定精准的时间原点。
两根连续 K 线对应的线性趋势方程如下:
![]()
![]()
现在让我们看看这些方程的差异点:
![]()
对该方程化简后,可得到如下表达式:
![]()
将时间差值以价格采样间隔的 K 线根数表示,计算会更为简便。由此方程形式得以进一步简化:
![]()
请注意,时间变量和趋势参数中的一个参数用不到了。下一时刻价格可由当前价格叠加趋势速率算出。公式化简后,难点随之显现。我们可采用最小二乘法求解趋势参数。也可选用其他分析方式。
假定已知趋势速率。那么每当新价格生成,便依照下述规则调整速率:预测误差与趋势速率变动量均趋近于零。该规则也可表述为:趋势速率在较长周期内保持平稳。对应方程表达式如下:
![]()
最终可得出用于计算趋势速率更新值的方程:
![]()
判定趋势成立,需要价格在多根 K 线中呈现同向运行态势。据此可列出若干如下形式的方程:
![]()
将方程组整合后,趋势速率将以简单移动平均线(SMA)求得的均价为参照基准。趋势速率方程也随之确定最终形式:
![]()
依据该方程构建的指标形态如下所示:

可基于该指标构建简易交易策略。指标数值正负发生翻转时,执行开仓与平仓操作。

我们已经取得了一些进展,但指标本身还需要进一步研究和优化。趋势率的变化本身也可能存在它自己的趋势。这些趋势同样需要被我们识别出来。把这些趋势加总起来(如果它们确实存在的话),就能让我们获得更精准的信号。
沿着图表移动
其中一个有趣的模型与“随机漫步”有关。如果价格的波动是随机的,那么价格走过的距离与时间之间会存在如下的关系:
![]()
不妨假设可能存在某个时间指数。换句话说,价格的波动遵循以下规律:
![]()
我们来看一套可计算时间指数与比例系数的算法。首先需要设定指标周期 N。时间维度的计算较为简易,取值可直接设为 1 到 N 的整数。价格波动幅度的计算则相对复杂。价格运行幅度可通过累加相邻价格差值的绝对值得出:
![]()
这种情况下,价格波动幅度需按从过往到未来的顺序计算,将新数值与往期数值累加。公式形式如下:
![]()
![]()
接下来,我们需要对计算得到的价格波动幅度进行归一化处理。具体方法是:将所有数值除以最小价格波动幅度 R [N-1]。
![]()
由此得出的是相对波幅,而非实际波幅。剩下要做的就是——我们只需要对刚才得出的那些数字取对数。而且,我们需要同时对波幅和时间都取对数。
![]()
![]()
注意,初始距离与时间的对数值均为 0。不会对后续计算产生影响。基于此,便可通过方程组求解指数与比例系数。
![]()
![]()
接下来我们观察指数的历史变化趋势。

该参数可用于评估价格运行的性质。若该值接近 0,表明价格波动微弱,呈横盘震荡状态。若为线性趋势,该指标值等于1。该指数的取值范围极宽,介于0 到约 2.5之间。正因如此,侧重近期价格的指标显得尤为重要。这类指标包括我们熟知的指数移动平均线(EMA)与线性加权移动平均线(LWMA)。
我们将尝试开发一种权重由形数决定的指标。设 L 为数的阶数。则第 n 个多边形数可通过以下公式计算:
![]()
这些数值将作为该指标的权重。该指标对价格变动的反应速度快于 LWMA。同时其 “记忆周期”长于 EMA,因此对时间序列的平滑效果更优。

我们用一个简单策略测试该指标:当价格穿越指标线时生成交易信号。

测试结果并不理想。但需重点注意:基于形数可构建大量指标,每种指标都会对应捕捉特定趋势。若将各指标的信号单独处理,最终结果可能会出人意料地出色。
结论
本文探讨了外汇市场价格走势的各类描述与预测方法。即便是随机判定交易方向的简易策略,只要合理优化持仓周期、止盈止损等参数,同样能够实现盈利。这也凸显出风控管理与匹配市场行情的重要性。
外汇价格预测方法种类繁多,交易者需结合实际行情与自身交易目标选取适配模型。该领域的深入研发,有望打造出更高效稳定的预测模型,助力交易者理性决策、提升收益。
本文撰写所使用的程序工具如下:
| 名称 | 类型 | 管理设置 |
|---|---|---|
| EA Picky Bride | EA |
|
| Error | 脚本 |
|
| Price Increments | 指标 |
|
| Trend | 指标 |
|
| EA Trend | EA | |
| Wandering | 指标 |
|
| Figurative Numbers | 指标 |
|
| EA Figurative Numbers | EA |
本文由MetaQuotes Ltd译自俄文
原文地址: https://www.mql5.com/ru/articles/18086
注意: MetaQuotes Ltd.将保留所有关于这些材料的权利。全部或部分复制或者转载这些材料将被禁止。
本文由网站的一位用户撰写,反映了他们的个人观点。MetaQuotes Ltd 不对所提供信息的准确性负责,也不对因使用所述解决方案、策略或建议而产生的任何后果负责。
您应该了解的MQL5向导技巧(第六十五部分):使用FrAMA与强力指数的交易形态
新手在交易中的10个基本错误
神经网络在交易中的应用:将混沌理论融入时间序列预测(Attraos)