这种交易方法在各类智能系统中被广泛且积极地运用。 甚至,它还有许多变体和混合体。 此外,从对此类系统的引用数量来看,很明显,该主题不仅在本站点上非常受欢迎,而且在任何其它网络资源上也如此。 所有方法变体都有一个共同的概念,涉及逆市场走势进行交易。 换言之,EA 采用复购来尽可能地低买,并尽可能地高卖。
这是一个古老到自商品出现就有的经典交易形式。 在之前的一篇文章中,我部分谈到了这个话题,同时强调了混合这些方法的可能途径。 在本文中,赫兹量化软件将比论坛用户所做更深入地研究这个概念。 不过,本文将更加通用和广泛,因为复购算法非常适合强调一些非常有趣和有用的功能。
基于均摊算法的细化交易特征的方法
“帮助我摆脱回撤”(来自“我的 EA 赚了很多钱,但有时会令账户爆仓”的作者)
这是许多算法和手动交易者的常见问题。 在撰写这篇文章的时候,我和这样的人有过一次访谈,但他并没有完全领会我的观点。 可悲的是,在我看来,他几乎没有机会理解这种状况的滑稽本质。 毕竟,如果我向更年长、经验更丰富的自己问类似的问题,我也很可能无法理解答案。 我甚至知道,老年自己的真实回答会让我有啥感受。 我会认为自己受到羞辱,或遭劝阻不要进一步从事算法交易。
其实,一切都是如此简单。 我只是有耐心走某条路,获得一些智慧,如果您愿意这么称呼它的话。 这不是理想化和自恋,而是必要的最低限度。 遗憾的是,这条道路花费了数年,而不是数周和数月。
在此,赫兹量化软件有一整个充满梦想和自我欺骗的世界,坦率地讲,我已经开始厌倦一些人的幼稚。 请停止胡说八道,认为您是市场的主宰。 取而代之,请联系有经验的人,并请求他们依据您的预算选择一个 EA。 相信我,这样您会节省很多时间和金钱,更不用说您的理智了。 这些人其一撰写了这篇文章。 下面提供了证明。
关于均摊算法的一般想法
如果我们看一下复购算法或“均摊”,首先似乎这个系统没有亏损的风险。 曾经有一段时间,我对这种技巧一无所知,并对击败任何收益差值的巨大数学期望感到惊讶。 现在很明显,这只是一种错觉,尽管如此,这种方法仍有合理的意义,但更多的在稍后。 一开始,为了能够客观地评估此类系统,赫兹量化软件需要知道一些间接参数,这些参数可以告诉我们的不仅仅是利润增长的简单图像。
策略测试器报告中最相关的参数甚至可有助于理解系统显然在亏损,尽管余额曲线看起来很棒。 正如您可能已经了解,这实际上完全与盈利能力曲线有关。 事实上,交易系统的所有重要指标都是次要的,首先且最基本的是数学特征,当然,这是数学期望及其主要特征。 但值得注意的是,数学期望是一个如此灵活的数值,以至于您总是会陷入一厢情愿的陷阱。
其实,为了正确运用数学期望这样的概念,首先要明白这是概率论的术语,任何这个量化的计算都应该按照概率论的规则进行,即:
-
计算越准确,所分析的样本越大,理想情况下,确切值需从无限个样本中计算得出。
-
如果我们把无穷大分成若干个部分,我们会得到若干个无穷大。
有人可能会想,如果只有有限的真实报价样本可供我们使用,那如何计算特定策略的确切数学期望。 有人会想,为什么我们竟然需要这些无穷大。 问题是,某些均值的所有估算值(例如数学期望)仅在进行这些计算的区域具有权重,而与另外的区域无关。 任何数学特征只有在计算之处才具有权重。 尽管如此,可以区分一些技术来细化特定策略的盈利能力特征,这将令获得的所需参数,越发接近真实值成为可能。
这与我们的任务直接相关。 在意识到我们无法看到无穷长期策略的未来之后,这本身听起来已经完全是胡说八道。 然而,这是一个数学事实,也是计算真实数学特征的必要和充分条件。 我们想到如何在有限样本上计算的数字更接近基于无限样本上计算得出的数字。 精通数学的人都知道,有两个数学概念可以用来计算无限和:
-
积分
-
无穷级数求和
我认为每个人都清楚,为了计算积分以及级数的总和,有必要在所考虑的积分范围内获得函数的所有点,需要计算其积分,或者在所考虑的级数内数字级数的所有元素。 仍然有最完美的选择 — 为我们要积分的函数获取适当的数学表达式,以及用于生成级数元素的表达式。 在许多情况下,如果我们有适当的数学表达式,我们可以得到完成积分或级数之和的精确方程,但在真实交易的情况下,我们就无法应用微积分,一般来说这对我们没有多大帮助,但重要的是理解。
从所有这些得出的结论是,对于任何系统的直接评估,我们只有有限的样本,以及我们在策略测试器中获得的某些参数。 事实上,它们的意义被大大夸张了。 问题是能否用策略测试器参数来判断特定策略的盈利能力,这些参数是否足以给出明确的答案,最重要的是,如何正确运用这些参数,以及我们能否真会正确使用它们。
此外,我们需要明白,对于每种策略,赫兹量化软件若正确评估策略的实际盈利能力和安全性时,任何参数都可能完全不同。 这与利润曲线的评估直接相关。 为了理解这一点,我们首先绘制一个采用复购算法获得的交易曲线的近似视图:
图例. 1
添加图片注释,不超过 140 字(可选)
赫兹量化软件从实现一种金融产品的复购开始。 如果您正确实现此算法,那么您的交易在任何情况下都将由轮回组成。 理想情况下,所有轮回都应该为正值。 如果某些轮回负值区域收官,则要么您错误地实现了此算法,要么它不再是纯算法,并且已经对其进行了修改。 但我们会参考经典的复购。 我们定义交易曲线的一些特征参数,来表示经典的复购:
-
余额曲线必须增长,并由 N 次轮回组成
-
所有轮回都有正值利润
-
当交易中断时,我们很可能会发现自己处于最后一个不完整的轮回
-
不完整的轮回具有负值盈利能力
-
轮回在资金方面具有特征性的回撤。
似乎曲线的总体外观乍一看应该清楚地表明这样的系统是有利可图的,但并非一切都那么简单。 如果您看一下最后一个不完整的交易轮回,我特别在起点下方收官,您会发现在某些情况下会很幸运,您应等待轮回的成功收官,而在某些情况下,您可能还未等到最后,就面临巨大的损失,或者令您的资金彻底爆仓。 为什么会发生这事? 事情在于,该图像可能会给人一种错误的印象,即资金的回撤金额在其绝对价值上是有限的,因此,在这种回撤中花费的时间也应该受到限制。
实际上,测试区域越长,平均回撤区域越长。 此处绝对没有限制。 限制仅以您的资金和资金管理品质的形式存在。 不过,基于此原则建立系统的有效方法只能导致您的资金生存期延长,然后再最终爆仓,或者充其量只能赚取很少的利润。
当遇到基于复购(均摊)算法的测试系统时,为了正确评估其生存能力、可靠性和实际盈利能力,应坚持特殊的测试结构。 重点是,这种方法中单次测试的数值会被最小化,原因很简单,当测试任何“正常”策略时,策略测试器中您的整个测试利润非常接近“正态”分布值。 这意味着,测试任何均摊策略时,若持仓时间不长的情况下,您得到的盈利和非盈利测试区域数量大抵相等,这令您很快知道该策略不稳定,或者该策略对市场有正确的理解,并适用于整个历史。
当我们与复购策略打交道时,这种分布可能会强烈畸变,这是由于为了正确测试该系统,您需要设置最大的可能资金。 此外,测试结果高度依赖于测试区段的长度。 事实上,伊这种方式中,所有交易都基于交易轮回,并且该系统的每个独特设置都可以具有完全不同的平均回撤参数,和与之相关的平均回撤持续时间参数。 根据这些指标,太短的测试区段可能会显示过高或过低的测试结果。 原则上,很少进行此类测试,在大多数情况下这可能是导致对这类系统操作信心膨胀的原因。
更准确地评估复购系统的细微之处
现在我们来学习如何使用复购算法正确评估系统的性能,同时应用交易系统的已知参数。 首先,对于这样的评估,我建议使用一个特征 — 恢复因子。 我们来弄清楚如何计算它:
-
恢复因子 = 总利润 / 最大净值回撤
-
总利润 — 每个交易区域的总利润
-
最大净值回撤 — 相对于前一个余额和净值(余额峰值)重合点的最大净值回撤
如我们所见,这是最终利润除以资金的最大回撤。 该指标在经典意义上的数学含义是,根据该思路,它应当展示出系统净值挽回其回撤的能力。 当利用这种特征时,交易系统盈利能力的边界条件是以下事实:
-
恢复因子> 1
如果翻译成可理解的人类语言,这就意味着为了获利,赫兹量化软件可以让资金冒一点不超过相同金额的风险。 在许多情况下,此参数提供了对特定系统交易品质的准确评估。 但用它时,要非常小心,因为关于其数学意义,这是一个相当有争议的参考值。
无论如何,我都不得不向您揭示它的所有缺点,如此您便能了解该参数真的非常随意,其数学释义等级也非常低级。 当然,您也许会说,如果您质疑某事,那就提供另一种备案。 我肯定会这样做,但只会在我们分析这个参数之后。 该参数与最大回撤相关联,而最大回撤又可与交易曲线上的任何点相关联,这意味着如果我们相对于起始余额重新计算此回撤,并将其替换为最大回撤,我们几乎总会得到一个高估的恢复因子。 我们正确地将其全部形式化:
-
恢复因子变化 1 = 总利润 / 按起始本金计算的最大净值回撤
-
按起始本金计算的最大净值回撤 — 按起始余额计算的最大回撤(不是前一个净值最大值)
当然,这不是一个经典的恢复因子,但从本质上讲,相对于普遍接受的边界条件,它实际上更正确地决定了盈利能力。 我们首先直观地讲述计算此指标的两个选项 — 经典选项,和我自己的:
图例. 2
添加图片注释,不超过 140 字(可选)
在第一种情况下,可以看出,该参数将取得更高数值,这当然是我们想要的。 但从盈利能力评估的角度来看,有两种方式可以遵循。 经典参数更适合该方式,在其中,最好尽可能延长测试部分的延续时间。 在这种情况下,较高的最大净值回撤值弥补了这种回撤并非始自交易曲线启动处的事实,因此在大多数情况下,这个参数接近真实的估算值。 在多次回测评估当中,我自己的参数更有效。
换言之,您完成的策略测试越多,此参数就越准确。 您的策略测试应在尽可能多的不同区域进行。 这意味着起点和终点的选择应具有最大的可变性。 为了正确评估,有必要选择最不同区域的 “N”,并对其进行测试,然后计算该指标对所有测试区域的算术平均值。 该规则允许我们优化恢复因子的两个版本,包括我自己的和经典版本,唯一的修正是需要执行少量的独立回测来优化经典版本。
尽管如此,说这种为了厘清这些参数而进行的厘清操作较少是不太充分的。 我已演示了我自己的恢复因子版本,以表明任何人都可以提出自己的类似参数,甚至可以将其加入赫兹量化软件中回测的计算特征之一。 但是这些参数中的任何一个都没有任何数学证明,甚至,这些参数中的任何一个都有其自身的误差和适用性限制。 所有这些都意味着,目前没有精确的数学指标来绝对准确地评估使用复购的一种或多种的算法。 不过,随着各种测试数量的增加,我的参数将趋向于绝对准确性。 我将在下一节中提供更多详细信息。
盈利能力的深入和通体理解
通体评估
我相信,每个人都知道盈利的数学期望和盈利因子等参数存在于任何策略测试器报告或交易信号的特征中,但我想没人告诉过您这些特征也可用于计算此类其中没有足够成交分析的交易系统的盈利能力。 故此,您可以通过将 “position” 替换为 “test on the segment” 来使用这些参数。 在计算该指标时,您需要进行多次独立测试,且不考虑任何内部结构。 这种方式将有助于您来评估交易系统的真实前景,且仅用到两个最流行的参数。 此外,它可以向您灌输一个非常有用的习惯 — 多次测试。 为了运用这种方式,您只需要知道以下等式:
添加图片注释,不超过 140 字(可选)
其中:
-
M - 预期收益值
-
Wp - 期望的利润
-
Investments - 您愿意投资多少来达成所期望的盈利
-
P - 在达成盈利之前我们将有足够投资的概率
-
(1-P) - 在达成盈利之前我们没有足够投资的概率(资金亏损)
下面是类似的盈利因子等式:
添加图片注释,不超过 140 字(可选)
您需要知道的是,对于随机交易并且没有点差、佣金和掉期利率、以及滑点等障碍,这些变量在任何交易系统里将始终取以下值:
-
M=0
-
Pf=1
若是在预测的时刻,这些特征才能朝着您的方向改变。 故此,我们在不损失资金的情况下获利的概率将取以下值:
添加图片注释,不超过 140 字(可选)
如果您在我们的方程中用这个表达式代替概率,那么您将得到我所提供的恒等式。 如果我们考虑点差、佣金和掉期利率,那么我们会得到以下内容:
添加图片注释,不超过 140 字(可选)
点差、佣金和掉期利率拉低了最终概率,最终导致特征失去有效性。 取而代之,会出现以下不平等式:
-
M < 0
-
Pf < 1
任何交易系统绝对都是这种情况,这里的复购算法绝对不比任何其它系统更好。 当测试或运营这样的系统时,它能够强烈扭曲信号随机值的分布函数,或回测最终利润,但这种典型场景在短期测试或运营期间会频繁发生。
这是因为如果您在短线区域进行测试,遇到大幅回撤的可能性要小得多。 但是,一旦您开始在更长的区域上进行这些测试,您常常会看到以前从未见过的东西。 但我确信大多数人会自找借口,认为这只是一个意外,且您只需以某种方式绕过这些危险区域。 对于短线区域进行多次测试通常也是如此。
只有一种途径可以克服任何系统的无力盈利。 我们在概率计算方程中添加一个额外的分量:
添加图片注释,不超过 140 字(可选)
正如我们所看到的,新的分量 “dP(Prediction)” 已经出现在方程当中。 它带有一个加号,我故意这样做是为了表明只有这个分量能够补偿点差、佣金和掉期利率的影响。 这意味着我们首先需要显著的预测品质来克服负面影响,并实现利润:
添加图片注释,不超过 140 字(可选)
只有当我们提供这种特殊的不等式时,我们才能得到我们想要的不等式:
-
M > 0
-
Pf > 1
如您所见,这些表达方式非常容易理解,我相信没有人会怀疑它们的正确性。 有这些方程的加持,下一小节将更容易理解。 的确,我建议您记住它们,或者至少记住它们的逻辑,如此便可始终在必要时于脑海中忆起它们。 这里最主要的是对它们的理解。 一般来说,其中一个方程就足够了,但我觉得最好在示例中展示全部两个。 至于其它参数,我认为,它们在本章节的框架内是多余的。
厘清方法示例
在本章节中,我想为您提供一些额外的优化操作,令您能够获得更正确的恢复因子值。 我建议回到 “图例 1”,并查看编号片段。 为了优调恢复因子,有必要想象这些片段是独立的测试。 假设我们已经执行了这些测试,以这样的方式,我们就可以不用多次测试。 我们可以这样做是因为这些片段是同时拥有起点和终点的轮回,其就是为回测提供的等效性。
在本节的框架内,考虑到我们正在一次性测试或交易若干金融产品的事实,我认为也值得用其等效图像补充第一张图像。 以下是运用复购算法在多个金融产品上进行并发交易的交易曲线的样子:
图例. 3
添加图片注释,不超过 140 字(可选)
我们可以看到,这条曲线的结构与基于一种金融产品上复购的曲线不同。 我在这里添加了过渡蓝点,这意味着在回撤之前,可能会有“反向回撤”的片段。事实上,我们不能认定这是回撤。 但尽管如此,我们无权在分析之外考虑这些片段。 这就是为什么它们必须成为轮回的一部分。
我认为每次新轮回自前一个轮回的末尾推迟一点更正确。 在这种情况下,上一个轮回的结束应被视为最后一次净值回撤的恢复点。 在图像中,这些轮回由红点隔开。 但事实上,这个轮回的定义是不充分的。 同样重要的是要确定仅仅通过净值固定回撤是不够的,但重点在于是它低于当前轮回的开始。 否则,它是什么样的回撤?
高亮显示这些轮回后,您可以将它们视为分离的独立测试,并计算每次轮回的恢复因子。 这可以通过以下方式完成:
添加图片注释,不超过 140 字(可选)
在这个等式中,余额曲线上的相应点(片段余额的最终值和初始值)用作 “B”,而增量表示我们的回撤。 我也希望读者回到最后一张图像。 在其上,由于我上面列出的原因,我从每次轮回的红色起点绘制出增量,而并未像通常那样从蓝色起点绘制出增量。 但如果您需要厘清原始恢复因子,则应从蓝点绘制增量。 在这种情况下,优调参数的方法比参数本身更重要。 按简单的算术平均值采取均摊动作。
无论如何,即使在厘清了一个或另一个自定义或经典参数之后,即便该指标的值超过一个、甚至两个或三个,您也不可理所当然地将其视为该交易系统能赚大钱的标志。
完全相同的方程应该进行多次回测方可应用。 关键点在于这种情况下,任何回测都相当于一次轮回。 我们甚至可以先计算轮回的均值,然后在所有这些之后,再计算相对于回测均值的平均值。 或者,我们可以通过最大化测试片段的持续时间来更轻松地做到这一点。 这种方式至少会为您节省多次测试,因为轮回次数将达到最大值,这意味着将尽可能准确地计算平均恢复因子。
通过多样化提高系统效率
有用的限制
在研究了改进回测某些特征的可能性之后,无疑您的装备更佳,但您仍然不知道主要内容。 根基在于问题的答案 — 为什么必需进行所有这些多重测试或划分成多次轮回? 这个问题真的很复杂,直到您投入如我一样多的付出时间。 可悲的是,这是必要的,但在我的帮助下,您可以大大减少执行此操作所花费的时间。
本章节允许您评估特定参数的客观性。 我将尝试从理论上和方程运用两方面进行解释。 我们从一般等式开始:
添加图片注释,不超过 140 字(可选)
我们研究一个类似的等式,但有一些细微的变化:
添加图片注释,不超过 140 字(可选)