下载MetaTrader 5

自动控制系统 (ACS) 环境中的技术分析观点,也即"反向观点"

17 三月 2016, 08:58
Sergei Ivanov
0
464

简介

要谋生,找个工作就行了。
但要致富的话,你就必须另寻它法。
Alphonse Karr
(由 MetaQuotes Software Corp. 自俄语版本翻译)

如果某件事出了差错,你应该提高自己,扩展视野,从不同的角度看问题。有时候这样会产生非常有趣和迥异寻常的结果。有些想法乍一看很是荒谬...仅“从常理来看”。幸运的是,也只是乍一看之时才感觉荒谬。事实上,一个没有准备的人很难想象到一些东西,比如在相对论性速度下会出现什么情况。当然,这个尺度是完全不同的,但我们有时会讨论有其实际应用的极端情况。最有趣、最不寻常的结果往往都是在使用某些“不寻常”的东西时获得的。这里真正要强调的就是“某些东西”。

技术分析已成功发展了很多年。对现有流程的理解变得越来越深,使用的属性和定律也越来越复杂。更令人注意的是,不久之前,他们开始讨论全自动交易系统。同时,自动控制理论与实践作为一门科学和工程学科继续发展。

这两个领域的知识和经验顺理成章地引发了人们将它们交汇融合的想法。不断出现的识见肤浅的感觉以及深入挖掘事件本质的希望成了额外的良好激励。大部分已知方法,即便它们很复杂,也都使用相当简单的属性。

以下简要陈述了在这个方向上持续了一年半的发展情况。主要是理论和一些有趣的实践方法。以下所有内容都是“经过实战检验的”。目的是呈示另一种观点。如果需要,稍后我可以提供更多详情。

有趣的是,这种观点最终证明是现有定律在某些方面的归纳总结,但它有时候又是一种真正的“反向观点”。当然,我们可以说,这种说法就像我们把机器和金融比作“苹果和梨”。但是,在我看来,它们仍有很多共通点。此外,在技术方面,理论自身更多地是进行基础方面的开发,即不是仅仅作为一个领域的应用,而是更深入的开发。此类规律始终是更为可靠的。当然,更高级的原理很难在这里找到它们的应用。在技术领域,巨大的离散化和价差十分令人讨厌。主要的控制原理相当不同寻常。问题正是基本定律。

依我看来,这最终证明是更大的系统类中的所有已知原理的统合,并且还深入到传统上尚未触及的那个部分(至少在我的实践中是这样)。当然,这不会降低传统方法的重要性。

核心原则

没有人会对别人有关耶和华或先知的话信以为真。
聆听可让你思考的人的话语,那就足够了。
奥本海默箴言

传统上认为,分析解决了预测和寻找进入市场/退出市场点位的任务。从建仓之时起,分析就已经开始了(对冲等)。即使此公式本身意味着离散化以及“好”和“坏”的动态的存在。分析的主题是过去,决策中有一些坚持。

在找到“圣杯”并且全球范围内都在实施的时候,市场会发生什么情况,这是另外一个问题。

市场动态及其可用性通常会以一个非常简单的方式关联起来。例如,2008 年 8 月 8 日,周五,俄罗斯证券市场上的大部分流动证券在外部环境不利的情况下价格下挫。投资者忧心忡忡。

此外,分析和决策通常代表是两个独立的系统。分析师评估市场情况并提出其建议。整个管理流程缩减为比较来自各个源的分析数据(包括自己的分析数据),做建仓或平仓的决策,并基于后续获得的信息持续关注仓位。成果无法预见,或者说,由于有关交易者情况的信息对分析师来说似乎很不合理,所以很难预见到什么。此外,分析部分是分布式的,可以被更改。

创建的结构(指标、形状等)通常与基本市场规律密切相关。正常情况下,它们仅与市场规律(心理学、宏观经济学等)相关。还有些一般性方法,例如斐波那契或 艾略特。但是,ACS(自动控制系统)的工作中涉及很多其他基本规律。

上述所有内容都是一种历史特殊情况。所有事情都可能朝相反的方向发展。

技术分析同样不是个简单的领域,这一部分(管理)甚至反而会更加复杂。原因部分是因为它需要很多技术领域(非线性动力学、计算数学、系统分析、概率论与数理统计、编程等)和金融市场、投资分析等领域的深厚知识和经验。不过回报也异常丰厚。

因此,监控几乎是永久性的(当然是离散的,但“始终存在于市场上”)。大部分时候,监控的活跃度都较低,当然这是另外一回事了。市场动态及其可用性之间的关联最终可能是复杂的、高度非线性的。“好”和“坏”(对于系统来说)的市场动态是由心理学还是由宏观经济过程来决定,这就全看各自的选择了(下文会提供一个示例)。当状态识别需要考虑所获结果的相关数据时,可能会出现强反馈。

在自动控制理论中,伺服式系统是标准系统,即跟进任务的系统。任务与当前结果之间的差异被输入到控制系统中。在市场上使用这种方法(按原样)是很荒谬的。但是,这种方法自身也可在这里找到应用之处。

所以,从这个角度来看,分析永远是与控制相关的。谈及控制时,更适当的做法是把分析也包括在内。此外,从整体上看,应该把系统理解为控制目标、控制系统和通信。当然,目标应理解为帐户,但此目标是通过在市场上调整仓位来执行的。控制利率和价格(例如,一个或多个国家的汇率,某公司或其竞争者的证券价格等)是另一个主题。

分析(包含在预测中)的角色在这种背景下变得不再那么重要,在极端情况下更是完全消失不见。此时,主要的任务成了回答以下问题:不同的发展状态下应该怎么做?这会导致什么结果?
这种抽象导致的结果是使用市场的其他属性。

概括和扩展

一路走着走着,你就会创造属于自己的世界。
温斯顿·丘吉尔

基本方程式的公式如下:

y(i+1)=y(i) + (x(i+1) – x(i))*k(i)


其中:

y - 结果,
x - 初始图表,
i - 步骤。

很清楚。在“i”时刻,用等于 k(i) 的手数建仓。因此,结果与其成比例变化。我还没把价差考虑在内。也可以这么写:

dy(i)=dx(i)*k(i)

k(i) 也有速度的含义。实际上,k(i) 可以有很多选择。

它可以表示:这里还能创造出什么?例如,此方程式只是从一个图表到另一个图表的转换。生成的图表通常被视为权益图(这里还是不考虑价差)。其实这是不必要的。对于未平仓交易,所得图表将初始图表作为加权图表重复显示,即它们的属性实际上是互相对应的。我们可以将所得图表视为初始图表,并再次处理它。因此,此系统可以有多个级别,而价差仅在最后一个级别加以考虑。在每个级别,你应保留和添加必要的属性,并删除不必要的属性。

如果对某个想法或交易系统进行了测试,而测试结果并不令人满意(亏损较大、极不稳定的利润等),你当然可以试着改进系统。但是,此图表可能比初始图表好,值得在更高级别继续进行处理。这当然不是事实,但最终结果通常证明是这种情况。

最近我产生了一个想法,即可以用相似的方法处理其他人的权益图。这种想法带来的是各种有趣的机遇。但是,这件事情与投资市场、信托管理等领域的发展情况紧密关联。好吧,这又是另一个话题了。

这是垂直式复杂化结构,或是一种深度考虑。如果我们使用多个并行系统,还可以横向考虑所有事情。在最简单的案例中,一个系统可以弥补另一个系统的缺陷。这种想法到现在已经不算新颖了。如果它们是互相关联的,那就是另一回事了。除了其他方面,由于离散化和价差的存在,此类系统必须进行同步。本文结尾处会对这一点进行说明。
在一般情况下,主方程会转变为组合方程:

dy1(i)=dx(i)*k10(i)+dy1(i)*k11(i)+dy2(i)*k12(i)+…
dy2(i)=dx(i)*k20(i)+dy1(i)*k21(i)+dy2(i)*k22(i)+…
...

以我的实际经验来看,甚至会有 1000 多个水平系统和 10 个以上的垂直级别。

垂直方向上,真实系统仅是最后一个系统(仓位或速度在所有级别上会成倍增加)。水平方向上,任何系统都可能是真实的。这意味着某些系统可用作内部系统、辅助系统或伪系统。它们提供更高的灵活性。例如,当此类系统按真实系统的规律运作,有用的属性会显示,但略有偏差,并且这个偏差同时活跃地存在于其他系统的操作中。例如,如果有一个可以控制此偏差的真实系统。

最终会添加(减少)并行系统,所以一切都可以简化为第一个基本方程式。

如果添加了两个系统,并从第一个系统的结果中减去一个部分,然后将该部分添加到第二个系统的结果中去,则总和不变,且此类操作相当可行。乍一看来,似乎没有必要这么做,也许只有在没有反馈的时候需要这么做。但是,如果系统进一步的行为取决于其当前状况,这个方法会成为最受欢迎的方法(下文会给出示例)。

现在我们简单地说一说图表转换。如果图表趋势上扬,表示比较好。如果趋势下跌,那么我们始终可以改变它,让它再次上扬。我们通过价差或保证金不足的方式就可轻松减少保证金,当然还可能存在其他方式。或者把任务简化为增加保证金。

如果图表曲线波动,通常表示趋势可能要发生变化。这取决于运动性质。我更喜欢先简化成这种形式,然后再进行处理。

这些是著名的趋势和波动极小的市场。当然,实际上每件事都要复杂得多:会有很多频率,包括较低的频率。

一个有用的特征:任何图表都可简化为两种形式之一。如果获取的属性可能不是那么漂亮,这就另当别论了:趋势运动可能会发生短暂但剧烈的下滑,而波动运动有时会产生极大的随机振幅。这些缺陷在你使用暴力方法时会凸显出来。但是,此类机遇实际上是很有用的。

另一个有用的注意事项是,在中间内部图表中,没有与价差或保证金不足相关的限制。
市场本身就有很大的不确定性。由于使用的方法以及初始图表和所得图表(一个级别)之间的紧密性,这种不确定性通常还会传递到你的权益上。所有这些转换的意义是连续更改各个级别的图表属性以降低不确定性。

一些技巧


谁又知道上帝曾试过了多少句话,才找到可以创造世界的那一句。
Stanisław Jerzy Lec 箴言

这里介绍的所有技巧都仅仅是可能的工具,它们不可独立使用,但它们可以在复合系统中相互组合以进行应用。它们被编写成示例来表现相当极端的情况。当然,表现非极端情况的示例更多。

伺服式系统

重新审视严格的反馈。最简单的例子(此解决方案并不依赖于初始图表的运动):

dy(i)=dx(i)*(y - g)*m

其中:

m - 系数,在这个示例中是一个常数;
g - 任务,可以是一个常数,但也可以是一个变量。

另一方面,g 是一个吸引子(一个简单的吸引子,当然也可能会有比较复杂的),即系统被下降趋势或平市所吸引的状态。即,如果我们不允许系统在该点保持不动,则它也是多个未来运动方向的可能的分岔点。如果图表曲线上扬,当系统开始运动时,就会倾向于脱离其在运动方向上的稳定状态,去往所得图表所在的位置。

这里可能会有多种形式。

如果 g 是一个常数,系统被吸引到这个位置,只有特定措施可以使它脱离这个位置。例如,与其他系统交换(这是一个说明其必要性的示例),将其设置为带较小振幅的正弦曲线,或如下所示:

dy(i)=dx(i)*|y – g|*m + c

其中:
c - 某个常数。

如果 c 为正数,则没有平衡态;如果 c 为负数,则有两个平衡态:0 以上和 0 以下。你无法用负“c”创建一个带较小振幅的振荡系统,因为它会粘附于边界。当 c 是正数时,振幅没有限制,最后经常会变得太大。但是,所有这些情况都取决于给定系统正在执行什么任务以及使用了哪些额外的技巧。不过,总体而言,情况如上所述。

这一切都适用于各种伺服式系统的振荡部分。其标准外形大致如下:


另一个示例是任务不是一个常数,例如向上做线性运动。然后,系统大部分时间都跟着任务,绝不会超过它,但会有大幅下跌。如果你设置了获利位和止损位,则长期的结果方向取决于波动性和趋势。在任何情况下,如果我们做了一个反转,我们将获得一个限制亏损技巧。标准外形:


可通过更复杂的方式选择任务。以初始图表自身或另一个系统的图表为例。结果会很好地遵循任务。如果我们找到初始图表与所得图表之间的差异,我们又将获得一个振荡系统。这里也有很多种类。

这将是一个很好的工作方向:让任务线性运动。然后,我们可以使用各种技巧(例如将初始图表与跟踪它的图表进行交换),试着增加偏离任务的概率。大多数时候,系统只朝一个方向运动,但会出现罕见但强烈的反向运动作为补偿。唯一的问题是这些反向运动很罕见。然后我们可以基于不同的初始图表(其他货币对,不同的预处理或根据下述技巧并基于随机流程)试着创建多个此类并行系统。这里我们还应添加同步,以补偿下跌和价差。

下跌限制会是一个非常有用的属性。

另一个解决方案是使用两个或两个以上几乎完全相同的系统。它们也遵循相同的规律,但引入的随机信号的形式会有一些较小的偏差,例如,通过速度。这些系统必须趋向相同的值。然后,在任务区域中,它们之间的偏差趋于 0。从另一个系统中减去一个系统,得到的结果就是引入随机信号。这种方式最后证明并不是非常随机,但这个思路总体上还不错。

伺服式系统可用于相反目的,根据任务设置一个系统不得超过的边界。然后,如果我们已经对它执行了防粘附处理,则系统将只在任务的一侧振荡。

数据交换

让我们返回简单形式上来。如果我们向其添加一个减号:

dy(i)=-dx(i)*(y - g)*m,

则不会获得反向图表。只会互相交换趋势行为。第一个系统(带加号)跌离 0,另一个系统就将靠近 0,反之亦然。平市也同样如此。

我们可以让它变得更复杂一点。让我们添加一个这样的数据交换:

dy1(i)=dx(i)*(k1*y1 + k2*y2 – g)*m,
dy(i)=-dx(i)*(k2*y1 + k1*y2 – g)*m,

如果 k1 = 1 且 k2 = 0,则我们获得两个单独处理的系统。

如果 k1 > 0.5 且 k2 < 0.5,则两个系统也会合并,但速度略慢(对应的,振荡幅度也会较小)。

如果 k1 = 0.5 且 k2 = 0.5,则我们获得自激振荡的类似项。速度取决于 g。如果 g 是一个正弦曲线,则速度也将是正弦曲线。它不得围绕 0 振荡。

如果 k1 < 0.5 且 k2 > 0.5,则系统会背离。它仍然围绕 0 振荡,但它的幅度会加速增大(很可能还使用高阶导数)。即,如果开始时,相邻振荡的幅度之间的比率略大于 1,那么后面会数以百计。其典型形状(此系统包括两个子系统,如公式中所示):


开始时,你可以将正弦曲线作为任务,尽管它只有在最开始的时候才合理。你可以简单地将其中一个系统的结果的初始值设为 0 以外的值。它将不再收敛:(y1=0, y2=0) 的情况将被自动避开。
运动自身中有一些其他有用的属性。

主要的优点是围绕 0 的振荡和背离。

自身不稳定(振幅之间的比率超过 1)这一情况是非常有用的。此外,看看第一个基本方程式。这么一个简单的转换(使用 k1 和 k2)就让图表发生了如此重大的变化,这真是一个非常有趣的现象。

当然,这种运动非常困难也很难控制。这里我们可以谈谈管理艺术。我在这种过程中取得了一定的进展,但尚未研究到这里的真实系统。

反向转换

如果正向转换是可行的,则反向转换也是可行的(在这些条件下):

dy(i)=dx(i)*k(i),
dx(i)=dy(i)/k(i).

我们可以先进行一个正向转换(例如,针对振荡变化),再使用另一个转换纠正它,然后将一个反向转换应用于新图表,就像应用于上一个图表一样。然后我们将在我们需要的方向上获得一个修改后的初始图表。

这里要重复说明的是,这些转换大部分都是内部转换。这意味着,大幅下挫或无限制的速度最终都是不被允许的。背离图表可限制在 0 以上和以下的两个级别。它将振荡并最终到达其中一个。就其本身而言,它并没有多少意义,但它很适合做一个限制示例。初看之下非常奇怪,不寻常的流程可在内部而非外部进行。就像一个弹道火箭从地球起飞再落到地球上,并利用其在途中时与地球的距离优势。

随机流程

顺便说一下空间的问题。我们可以使用随机流程更多地从市场中抽离出来,而不会失去普遍性。第一个转换如下所示:

dy(i)=dx(i)*k(i)

其中:
k(i) - 一个随机(伪)数。例如,从 -1 到 1。我更喜欢使用离散形式:1 或 -1。

只有波动性得出结果。几乎所有其他东西都是随机的。初始图表在决策间隔期内的一些属性也可适用。当然,我们可以以较小的比例添加随机性,情况会变得复杂。

初始图表的“好”运动和“坏”运动的概念在这里发生了剧烈的变化。

当然,图表的属性发生了变化。例如,系统在向上运动 20 个点时卖出(速度为 -1),并在向下运动时买入,获利通常与在长期价差上的亏损大致相同。这种图表通常不会发生此现象。

波动性有一些相关的问题,而波动性自身又与决策的自由裁量权、价差和其他此类因素相关。但是,有一些有限制的方法可以改进和增加持久性,这一定程度上可以改善情况。

一般来说,从逻辑上讲,以下问题的出现很合理:原则上是否可以成功管理这种流程?在时间间隔较大时,赢得和损失相同点数的概率难道不是五五开吗?也许不是。例如,有用作模块的函数。从纯粹的数学角度看,随机图表始终在 0 以上。它可能不会如你所愿地工作,但这并不是单独由图表决定的。即,这里的问题并不与随机性严格相关。但我认为,这会带来大量的限制,以作补偿。

优点。首先是抽象性。你并未遇到任何危机,初始图表运动到哪里以及如何运动,对你来说都没有任何差别。当然,危机发生时可能并没有明显的原因,这一点必须要加以考虑。在这种情况下,根据略有不同的工作原理来考虑这个问题会更轻松。

第二,你可根据需要创建尽可能多的初始图表。如上述示例中:先让你拥有一个系统,它逐渐向下运动的同时,有罕见但是强烈的向上运动来补偿下跌。然后,再拥有大量此类系统并正确同步它们,我们可以在更标准的外形中获取总结性结果。具有其他属性的系统也是可以成功实现并行工作的。

第三,风险从本质上降低了。交易最多可以提前 1000 年建模。

不断的切换意味着价差是类似的问题。它需要大量系统的同步。你始终可以“冻结”一部分系统一或两个周期,以便后来增加的速度与之前的速度不会相差太远。主要是不要做得太过火。你可以让速度始终等于 1 或 0。但这么做并没有什么意义。其他条件(例如区分“冻结”系统和其他技巧的优先级)将减少速度的振荡,但不会对系统可用性造成很大的影响。

还有两个严重的缺点。第一个关于波动性和离散化的缺点已在上文中介绍过。第二个缺点是所得图表运动的可能性。很难将它们转移到合适值域内,以便对它们进行处理。如果系统的盈利能力较弱,可使用一些方法改善这种情况,使你可以大大增加利润。但是,这些关键值大部分是由开发的方法决定的。

我们来说说决策离散化。顺便提一下,它有时候可能是很有帮助的。我经常严格按 1.5 小时时间间隔来检查所有系统。然后我根据系统的属性调整这个周期,并使其根据情况而变化。除了特殊场合以外,最好将可能的速度变化的时刻与某个离散关联。这有助于减少价差损失,因为如果有很多并行系统同时工作,它们的速度最终会统合起来,并且总计损失会大大低于单个系统的损失总和。

像获利位和止损位这样的技巧通常较适用于最后一个级别。在第一阶段,最好使用持续转换。

最终,从“外部”观察此类系统的活动时,基本很难洞察它们的操作逻辑。尤其是当内部有随机流程时。

总结

我们通常的习惯是仅根据实践结果来评估科学成就。
因此,结果表明,拾起苹果的人就是做了主要工作的人,
然而事实上,这个苹果是由种下苹果树的人创造的。

P.L.Kapitsa

这里我给出了一些极端案例(仅使用反馈,使用伪随机图表等),这些案例最终证明是相当可行的。即使它们产生了这么多的机会,仍有非常多的中间变化。这提供了巨大的灵活性,可选择余地大大增加。这里我展示的仅仅是一小部分可能性。

我没有介绍此类极端情况下各种不可或缺的小特征。例如,如果参数的设置不是非常精确或没有预料到特殊措施,则离散化会导致伺服式系统超过其任务(未预见这一点)并距离任务较远。但是,边界可能决定了下跌。在处理背离流程时,这一点尤其明显。

在信息技术的开发过程中,增加流动性和减少价差和佣金等方法的重要性会不断提升。

当然,使用这种方法并不容易,但前景很不错。所有这些往往看似是不可能实现的。这种质疑导致我们改变观念,寻找新的机遇、原理和技巧。幸运的是,目前看来情况正朝着对我们有利的方向发展。我不能说我已经取得了很大的进展。1 年半的时间对这些事(因为它们看上去很复杂)来说并不算多长的时间。大多数时候,它仅仅只是我的一个业务爱好。但是,在获得第一个正面结果之后,这个爱好现在趋向于成为我的职业活动。顺便提一下,我很乐意在团队中进行这项工作。当然,这是另外一回事。让我们不断地工作和创造,变得越来越好。

致以最美好的祝愿。

本文译自 MetaQuotes Software Corp. 撰写的俄文原文
原文地址: https://www.mql5.com/ru/articles/1555

赌博模型作为培养"市场直觉"的方法 赌博模型作为培养"市场直觉"的方法

本文阐述了“市场直觉”的概念和培养方法。文章中描述的方法基于以简单游戏的形式对金融赌博建模。

再谈等量图 再谈等量图

本文阐述了构建图表的方法,其中每个柱都包含等量的价格变动。

通过注释确定代码中错误的方法 通过注释确定代码中错误的方法

本文介绍了基于注释搜索 MQL4 代码中错误的方法。当大而合理的代码中的错误导致编译出现问题时,该方法被认为非常有用。

预测金融时间序列 预测金融时间序列

预测金融时间序列是任何投资活动的必备元素。投资本身的概念是投入现有的资金以在未来获利,而这个概念又基于预测未来的概念。因此,预测金融时间序列是整个投资行业(包括所有有组织的交易所和其他证券交易系统)的投资活动的基础。