English Русский Español Deutsch 日本語 Português 한국어 Français Italiano Türkçe
用于预测市场价格的通用回归模型

用于预测市场价格的通用回归模型

MetaTrader 5交易 |
4 534 77
Yousufkhodja Sultonov
Yousufkhodja Sultonov

简介

市场价格是由于需求和供应之间缺乏稳定平衡而形成的,反之,又取决于各种各样的经济、政治和心理因素,由于性质以及影响原因的差异,直接考虑这些因素非常困难。

然而,必须能够预见并以一定程度地精确性来预测将来的市场价格行为,以便对当前情形下的货物的买卖(包括货币或股票),做出正确的决策。可以使用来自各种来源的、以一种或另一种方式处理的、不同性质的大量信息来解决这个问题。

使用了 4 类分析 /1/,依据研究者的目的、资格或倾向来制定有效的市场行为战略和战术:

  1. 依据市场价格考虑了所有能够对其产生影响的因素这一断言进行的技术分析。它采用先进的数学技术 /2/;
  2. 处理不同经济因素对市场价格的影响的基本分析。它实质上是采用宏观经济模型 /3-5/;
  3. 被对主要市场指数和指标的认识、预测它们的将来行为的方法所证实的直观分析,其结果不能通过将逻辑规则和数学方法直接应用到初始前提来证明,但是通常仍然费解地成为事实;
  4. 依据单独对每个客户就市场条件进行心理分析,以及作为一个整体导致各种成功的心理分析。

有关问题的认知状态

任何技术,包括新提议的市场价格预测新方法,在我们看来,都应考虑,并且在各种环境的幸运组合中,依据三个公理解释客观存在的规律,这三个公理被称为道氏理论 /6,7/,可以如下简单表述:

  1. 市场价格依据供求规律考虑所有影响因素,并且具备一段时间内的市场价格变化数据以对其进行预测便已足够;
  2. 市场价格与时间的依赖性与趋势有关,趋势主要是 S 形,其高点和低点通过水平(平坦)线连接的称为横摆趋势,或者没有趋势;
  3. 客观存在市场价格变化图形在一段时间内保持不变,称为“历史重演”或“它们过去管用,现在管用,将来也管用”的原则。

然而,在市场价格时间序列(例如汇率)的动态平静阶段之后会是非常复杂的阶段,以至于让人产生这种印象:完全不可预测的混乱在自组织过程中再次带来秩序。

但是在某一点,稳定性削弱的动态系统再次产生混乱,使我们有理由相信经济指标时间序列的性质是混合的。这意味着市场价格时序系列在某一点是确定和可分析的,但是在另一点就不能可靠地预测,并且遵循正态分布规律 /8/,在另一点用作一个随机变量。

因此,科学世界仍然缺少有关市场价格变化性质的共同意见,这阻碍了我们寻找充分定义它们并可在实践中运用的依赖性。


黑箱单腔模型的瞬态函数

由于过程的模糊性,我建议我们首先看一看黑箱单腔模型,该模型有时有助于解决正在讨论的问题 /1/ 并且应用物质平衡方程。

详细阐述以上公理之后,让我们假定平衡市场价格只在受到外力 D(t) 的影响时才改变,而外力的量和值将在与价格相同的维度上测量。

我们还假定市场价格 P(t) 随时间 t 的变化,从指定外力的影响开始,依据尚未知晓的某些规律从零值持续增大,试图在无穷大时达到值 P(∞) = D0。换言之,视影响力的性质和符号而定,D0 将表示市场价格的有限增量或减量。

这也暗示 D(t=0) = D0。我们进一步假定在无限小的时间范围 dt 内,影响力下降的值为 dD(t),与时间 t 时的力 D(t) 成正比:


据此,我们得出时间 t 上的指数依赖性 D(t),如下所示:

                                                                                                                  (1)

其中:                                                                                                                                       

t 是从失稳力开始影响时计起的时间,采用时间序列的单位:秒(分钟、小时、天、周、十年、月、年);

τ(希腊语的第十九个字母,发音“套”)是与处理时间常数:秒(分钟、小时、天、周、十年、月、年)成正比的系数。

让我们现在假定市场价格 P(t) 的变化速度 V(t) 与 D(t) 和时间 t 的值都成正比:

其中:                                                                                                                                    (2)

k 为比例系数,其量纲为 1/(time)^2;

β = k*τ*D0 是比例系数,其量纲为市场价格变化速度。

在指定时间 t 时价格在每单位时间的绝对增量或减量,表示为 H(t),在数字上等于 V(t):

H(t) = V(t) = β*m

毫无疑问,通过整合整个时间 t 范围内的 H(t) 变化,我们将获得在从其失去稳定开始计起的时间 t 时的市场价格 P(t) 的总变化值:   

其中:                                                                                                                    (3)

因为以 (3) 为基础,在 t = ∞  s = 1,时,我们得出以下结论:

P(∞) = β = D0

或者: β = D0/τ;

将 β 的上一等式与我们得出的结果相比,我们又得出以下结论:

   k = 1/τ^2;

现在,以下关系成立: 

         H(t) = D0*m;

         P(t) = D0*s。

因此,如果已经确定了系数 τ 和 β,则可以在价格变化的任何阶段(包括早期阶段),估计和预测价格变化极限值 D0。然而,这些说法仅在满足物质平衡条件时才成立:

D(t) + H(t) + P(t) = D0                                                                                                                                     (4)

或:  

   因此应满足正态化要求:

      ℓ + m + s = 1;                                                                                                                                          (5)

   让我们使用关系 (1-3) 验证此事实:

     

精确满足物质平衡条件 (4) 和正态化要求 (5) 表明我们做出的假定和提出的关系是成立的。


多腔模型的瞬态函数 

同理,以类似的方式考虑一个由 n 个腔组成的黑箱多腔模型,我们得到 D(t)、H(t) 和 P(t) 函数的以下关系:

  • D(t) = D0 * L;
  • H(t) = D0 * M;
  • P(t) = D0 * S;

其中:

eq6                                                                                                         (6)

现在,我将其称为“两参数累积指数分布函数”

eq7                                                                                                  (7)

是一种伽玛分布的概率密度函数,或者埃尔朗分布的概率密度函数;

eq8                                                                                                        (8)

是一种伽玛分布的累积分布函数,或者埃尔朗分布的累积分布函数,

  •  t/τ、n 是分布参数;
  • 1 是值为 "true" 的布尔表达式;
  • 0 是值为 "false" 的布尔表达式;

集分 (8) 可以证明:

eq8-2

或:         

eq8-1

因此,依据 (6-8),本例也精确满足正态化要求:

                                    L+M+S = 1;                                                                                                              (9)

我称 L 函数为“将来的函数”,因为将来的市场价格取决于其值;称 M 函数为“现在的函数”,因为它决定指定时间单元内市场价格的变化;称 S 函数为“过去的函数”,因为自价格失稳以来的整个期间内所取得的市场价格水平取决于此函数的值,这与瞬时概念并不矛盾,并且大大扩展了我们对所讨论的问题方面的了解。

通过将 n = 1 代换到 (6-8),我们可以看到 L、M 和 S 函数分别变为 ℓ、m 和 s 函数,因此出于预测目的,我们将仅考虑 L、M 和 S 函数作为此类函数的最常用案例。


依据展现的瞬态函数开发用于预测市场价格的通用回归模型

将按下述方式表示市场价格水平 P(h) 与从观察开始计起的时间 t 之间的依赖性:

在单腔模型中:

eq10a  (10a)

在多腔模型中: 

eq10b  (10b)

其中:    P0 是在其失稳前的价格水平,即时间 t = 0 时。

使用从其在市场中失稳时计起的实际市场价格值确定参数 n 和 τ 以及系数 β,由此分析每个单位时间 t 的市场价格变化 f,该值可用作 (10b) 的导数的值。可以看到,接受此假定造成的误差微不足道,仅是价格变化值的万分之几。接受此假定大大促进了确定以上参数和 β 系数的进程。

从分析 S 函数开始,现在我们能够真正地继续 M 函数的分析:

eq11                                                        (11)

将 (11) 的两部分都除以 t^n,并且对获得的关系取对数,则我们在半对数坐标中得到一条直线的方程:


现在,如果到对应时间点 t 的函数 f 的值是已知的,则可以通过以下方程确定参数 n 和 τ,以及系数 β:

                                                       (12)

                                                                                                        (13)

eq14                                                                                                                          (14)

其中:

到对应时间点 t 的函数 f 的值以及时间是依据从市场价格失稳开始计起的时间点 һ0,һ1,…,һк 时的实际市场价格值 Р0,Р1,…,Рк,采用在间隔中间值处的数字微分和积分确定的:

f1 = (P1 - P0)/(һ1 – һ0);

f2 = (P2 – P1)/( һ2– һ1);

f3 = (P3 – P2)/( һ3– һ2);依此类推;

t1 = (һ0 + һ1)/2;

t2 = (һ1 + һ2)/2;

t3 = (һ3 + һ2)/2;依此类推。


模型修正与调整 

作为一种回归模型,使用实际数据对方程 (10a) 和 (10b) 进行的实测表明应依据以下方程对 Р(0) 和 D0 的值进行修正:

                                                         (15)

                                                                                                     (16)

其中:Sf 和 Sr 分别是实际和理论曲线的面积;

∑Pf = P0+ P1 + P2 + …+ Pk 是实际价格值之和;

eq17                                                                                                      (17)

i = 0,1,2,......k; 

k>2 是为其确定价格变化的时间间隔的数量;

b 是确定实际数据的趋势方向的线性回归方程  的系数。

现在,用于预测市场价格 P(t) 的回归方程 (10b) 的最终形式如下:

eq18                                                                                           (18) 


模型测试

已经得出,用此方式计算出来的市场价格值 P(t) 以及在下面的 Forex 市场示例中提供的实际价格值 Pf 始终完全且精确地满足物质平衡条件:

∑ P(t) = ∑ Pf。                                                                                                                                                                    (19)

所研究的参数(特别是市场价格)的实际值与理论值之和,在任何变量值(尤其是时间)时是绝对精确匹配的,证明在函数输出时的计算、转换和接受的假定是正确的,可以表示所建议的回归模型的通用性。

下图显示了以指定方式使用方程 (18) 处理 Forex 市场的实际数据(1 分钟时间框架)的结果,其中,可以注意到在 EUR/USD 报价的实际值 (Pf)(带红点的黄线)、理论预测值 (P1)(蓝线)和出于计算目的未考虑的实际将来值 (Pff)(带红点的蓝线)之间存在令人满意的一致性。

                                                                      
     

总结

我们已经提议并找出了三个分别描述三个动态瞬时的函数,这三个函数被定义为伽玛分布的不同变化,用于依据从其失稳开始计起的过去、现在和将来的时间确定所研究的参数(尤其是市场价格)的行为。

在对指定过程进行分析之后,提出了一个用于预测市场价格的通用回归模型;它可作为比如各种用途的市场指标、优化交易者活动的 EA 交易、自动化交易系统的开发基础,甚至还能用于开发交易机器人 - 使某人收益的自行交易的机器人交易员。

注:本文中的所有关系、公式以及主要假定和结论都经过确定、阐述、介绍,并且在公开出版物中首次发布。


参考文献

  1. A. E. Kotenko. On Methods of Technical and Fundamental Analysis in the Forex Market Study.Electronic Magazine "INVESTIGATED IN RUSSIA", http://zhurnal.ape.relarn.ru/articles/2003/151.pdf
  2. V. N. Yakimkin. Forex Market – Your Way to Success, М., "Akmos-Media", 2001.
  3. V. N. Likhovidov. Fundamental Analysis of the Currency Markets:Methods for Prediction and Decision-Making.Vladivostok, 1999.
  4. M. K. Bunkina. A. M. Semenov. Principles of Currency Relations, М., Urait, 2000.
  5. Jeffrey D. Sachs, Felipe B. Larrain. Macroeconomics in the Global Economy.М., Delo, 1996.
  6. Rhea, Robert.Dow Theory,- New York; Barrons, 1932.
  7. Greiner, P. and H. C. Whitcomb:Dow Theory, New York:Investor’s Intelligence, 1969.
  8. O. S. Gulyaeva. Foreign Exchange Risk Management on the Basis of Currency Rate Pre-Prediction Analysis Using Fractal Methods. Ph.D. thesis, Moscow-Tver, TvGU, 2008. 

本文由MetaQuotes Ltd译自俄文
原文地址: https://www.mql5.com/ru/articles/250

最近评论 | 前往讨论 (77)
Yousufkhodja Sultonov
Yousufkhodja Sultonov | 13 6月 2011 在 20:28
joo:
这些指标是付费的还是什么? 已发布在代码库中,请尽情使用!
flourishing
flourishing | 12 1月 2012 在 05:15
Rosh:

发表新文章《市场价格预测的通用回归模型》:

作者:ЮсуфходжаЮсуфходжа

好文章。

令人印象深刻

TipMyPip
TipMyPip | 27 5月 2013 在 12:23
太棒了非常感谢你贡献了自己的知识,并以一颗博大的心来改善我们的交易。
Renat Akhtyamov
Renat Akhtyamov | 17 7月 2015 在 23:44

遗憾的是,文章一开始就出现了错误。

首先,某个时间 t 的价格增量当然会有某个值,我们用 D0 表示它。让我们假设一下。

接下来...现在,在 t=0 时,我知道价格不会受到任何影响,而且外部影响显然也不会带来价格增量。不过,我们还是把三角洲称为 D0。

为什么要这样做呢?毕竟,我们还没有定义这种撞击是什么......

总的来说

Yousufkhodja Sultonov
Yousufkhodja Sultonov | 18 7月 2015 在 16:15
new-rena:

遗憾的是,文章一开始就出现了错误。

首先,某个时间 t 的价格增量当然会有某个值,我们用 D0 表示它。让我们假设一下。

接下来...现在,在 t=0 时,我知道价格不会受到任何影响,而且外部影响显然也不会带来价格增量。不过,我们还是把三角洲称为 D0。

为什么要这样做呢?毕竟,我们还没有定义这种撞击是什么......

总的来说...

1. Do 不是价格增量,而是在 t=0 时影响价格的力的初始势能。

2. 从文章中可以看出:"....,假定处于平衡状态的市场价格只能在某种外力 D(t) 的作用下发生变化,外力 D(t) 的大小和数值我们将在与价格相同的维度上进行度量。

我们还可以假定,市场价格 P(t) 随着时间 t 的推移,从这一外力开始影响时起,按某种我们还不知道的规律性从零值不断增加,最终趋于达到无穷大的 P(∞) = D0 值。也就是说,我们所说的 D0 是指市场价格的有限增量或减量,这取决于这种影响力量的性质和符号。

此外,我们假设 D(t=0) = D0。我们进一步假设,在 dt 的无限小时间段内,影响力将以 dD(t) 的值减少,与时间 t 时刻的剩余影响力 D(t) 成比例:


因此,我们可以得到 D(t) 与时间 t 的指数关系式:

(1)

其中

t - 从失稳力影响开始的时间,以时间序列为单位,秒(分、小时、天、周、旬、月、年);

τ(tau)--比例系数,数值上等于过程的时间常数,秒(分、小时、天、星期、几十年、月、年)"。

你从哪里找到 1/s^2 的维度的?这个比值没有维度。我并没有把它塞进去,我只是假设,作用于某一过程的力的变化率(减小)与力本身成正比,这并不违背逻辑,然后,这一假设得到了充分证实。作为比例系数,并引入了比率 a (alpha) = 1/tau,它具有时间的倒数维度。通过 a (α) 我可以理解为系统的阻抗,即系统对过程流的阻力,而 tau 则是拉普拉斯变换中时间的图像,正如后来所证明的那样,它允许将过程分析从微分域转到普通域。这意味着任何过程都有自己的时间,与我们的时间不同,而 tau 则充当时间的 "翻译者",如果我可以这样说的话。我在文章中给出了一种估算 tau 的方法:

现在,如果已知函数 f 在时间 t 的相应时刻的值,那么就可以根据该方程确定参数 n、τ 和系数 β 如下:

(12)

(13)

(14)

其中:

函数 f 在时间 t 和时间 t 的相应时刻的值由市场价格 P0,P1,...,Pk 在时间 h0,h1,...,һk 的实际值决定,从其开始不稳定时起,通过数值微分,指区间中间的时刻:

f1 = (P1 - P0)/( ch1 - ch0); f2 = (P2 - P1)/( ch2- ch1); f3 = (P3 - P2)/( ch3- ch2); 等等;

t1 = (ch0 + ch1)/2; t2 = (ch1 + ch2)/2; t3 = (ch3 + ch2)/2; 依此类推。

使用带 ENCOG 机器学习框架的 MetaTrader 5 指标进行时间序列预测 使用带 ENCOG 机器学习框架的 MetaTrader 5 指标进行时间序列预测
本文介绍如何将 MetaTrader 5 连接到 ENCOG - 高级神经网络和机器学习框架。它包含一个基于标准技术指标的简单神经网络指标和一个基于神经指标的 EA 交易的描述和实施。本文还附带了所有源代码、编译后的二进制文件、DLL 和一个可仿效的经过训练的网络。
使用非托管导出将 C# 代码运用到 MQL5 使用非托管导出将 C# 代码运用到 MQL5
在本文中,我介绍了在 MQL5 代码和托管 C# 代码之间进行互动的不同方法。我还提供了几个例子来说明如何针对 C# 封送 MQL5 结构以及如何在 MQL5 脚本中调用导出的 DLL 函数。我相信提供的例子能用作以后研究用托管代码编写 DLL 的基础。本文也为 MetaTrader 使用已经在 C# 中实施了的多个库打开了大门。
统计估计 统计估计
对某个序列的统计参数进行估计非常重要,因为大多数数学模型和方法均基于不同的假设。例如,正态分布规律或离差值(或其他参数)就是这样。因此,在分析和预测时间序列时,我们需要一个简单方便的工具,用于快速清晰地估计主要统计参数。本文简要说明了一个随机序列的最简单统计参数,以及其可视分析的几种方法。本文还说明了如何在 MQL5 中实现这些方法,以及使用 Gnuplot 应用程序对计算结果进行可视化的方法。
随机游走和趋势指标 随机游走和趋势指标
随机游走和实际的市场数据看起来非常类似,但是它有一些重要的特征。在本文中,我们将通过用掷硬币游戏进行模拟,讨论随机游走的特性。为了研究数据的特性,开发了趋势指标。