欢迎光临散文网 会员登陆 & 注册

期货量化交易软软件:资金管理排第二位,并不是很重要

2023-08-16 17:48 作者:bili_45793681098  | 我要投稿

简介

本文中我们将讨论一些非常简单但却往往具有欺骗性的东西 - 测试报告中的账户余额图。在新手们的策略测试报告中,赫兹量化经常会在测试结尾处看到指数余额/权益图和数十亿金额的结果。这种结果通常会引发经验丰富、知道这些指数的来龙去脉的 EA 编写者的质疑,并立即建议根据固定手数(通常是 0.1)显示结果。

人们认为基于固定 0.1 手的测试结果能更好地反应一个策略的所有优缺点。这种看法的论据相当明显:对于大部分货币对,这个图显示了策略在测试期间内获得了多少点。还有一种公允的看法,即如果某种策略是按点盈利的,则它可能被视为很有挑战性;但如果数学期望值为负值,则此类策略很难仅靠资金管理的方式获利。

另一个令人信服的论据是:“0.1 手”的曲线接近于一条直线,它是一种策略稳定性的指示,而这种指示很少能在指数图上看到。

但是,尽管有很多优势,但这种图也有一些不是那么明显的缺点。为了获得全面的了解,我赫兹量化们来分析一个使用不同资金管理系统的简单策略的测试结果,并比较各个图。

编辑切换为居中


本文中分析的资金管理 (MM) 类型。选择 EA

现在赫兹量化将分析三种 MM,在这些 MM 中,已建立仓位的金额要么是固定的,要么是保证金的递增函数。对我来说,只有当获利/亏损系列的可能性大大高于产生相反结果的交易将取而代之的几率,有效 MM 才可以较为合理地把之前交易的结果纳入考虑范围。因此,本文中所述 MM 如下:

  1. 手数固定为 0.1,无论保证金有多少。让我们把这种策略称为保守策略。本文中将用“0.1 手” 或“0.1”表示。

  2. 手数与保证金成比例。这是一个积极的资金管理方法。赫兹量化将称其为“几何 MM”。

  3. 手数按保证金的平方根成比例增长。我们将称其为温和策略。

让我们分析 Expert Advisor“20_200expert_v4.2_AntS一文中描述的游戏。我们不会通过参数优化 EA,因为这超出了本文的范围;让我们使用 Expert Advisor 的默认参数吧。我们将使以 EURUSD H1 在从 2000/06/07 到 2008/03/15 的所有价格变动来测试该 EA。我们特意选择这个测试周期,为的是在用 0.1 手测试时获得一个很好的余额图。选择这个 EA 正是为了展示本文的主张。

此 Expert Advisor 的主要部分是用于选择手数的函数LotSize(),占 1000 行略微出头(或源文件 50K 中占 44K),这一定程度上也决定了它的突出性。如果我们用简单的一行将必要手数舍入至 0.01 以逼近手数对余额的依赖关系的函数,则此函数可以用较短的形式实现。至少“节点”(手数测量的点)中源代码中的计算的逼近差异仅在千分之一的节点 (!!!) 内显示。它几乎不会影响策略的参数。

我决定不去研究选择手数的确切逻辑,并更改代码,以进一步缩减文件大小(EA 代码初始仅包含与此手数选择函数对应的活动 MM)。与非比例手数增加关联的部分也排除在代码之外,从而从 EA 中排除了马丁格尔的元素。本文随附了 EA 的变更代码。

以下是适用于此处 EURUSD 的手数计算函数:

double LotSize() {   double size;   switch( _MM )   {      case 0:  size = 0.1;                 break;      case 1:  size = 0.1 * AccountBalance() / 1000;               break;      case 2:  size = 0.1 * MathSqrt( AccountBalance() / 1000 );               //size = 1. * MathSqrt( AccountBalance() / 10000 );               break;      default: size = 0.1;  break;   }     if( size < 0.1 )          // is money enough for opening 0.1 lot?      if( ( AccountFreeMarginCheck( Symbol(), OP_BUY,  0.1 ) < 10. ) ||          ( AccountFreeMarginCheck( Symbol(), OP_SELL, 0.1 ) < 10. ) ||          ( GetLastError() == 134 ) )                  lot = 0.0; // not enough      else        lot = 0.1; // enough; open 0.1   else           lot = NormalizeDouble( size, 2 );     return( lot ); }



本文中的假设

本文中我们将进一步分析典型新手的逻辑:

  1. 一位新手访问论坛,进入代码 库,看到这个代码,并决定了解此 EA 的倾向。他对源代码的细节不感兴趣;他需要一个快速结果。

  2. 新手不关心测试结果相对于历史多变性的可靠性问题;他只是选择一个从几年前到现在的测试周期,在这个周期中,EA 表现出相当好的结果。他相信这个 EA 将来也能表现的很好,因为它在将近八年时间里一直都表现良好。

  3. 在收到固定 0.1 手的测试结果后,他访问论坛并看到经验丰富的论坛访客的典型回答,即在 0.1 手时所做的测试具备较高的策略稳定性,能提供相当可靠的结果,然后他前进一步,决定引入几何资金管理系统,即建仓金额与余额大小成比例。他也并不认为实际的止损会远大于获利,因为他还没看代码。他不确定余额曲线会怎么变化。

  4. 最终,我们的新手试着修改 MM,并发明了上述的第三种 MM。

赫兹量化将分析获得的结果和新手的操作,主要是观察测试结果的多个综合参数 - 净利润、最大亏损百分比和回收系数。



测试 1:固定手数“0.1”

以下是测试结果:

策略测试程序报告 20_200 expert_v4.2_AntS

Alpari-Demo (Build 215)


编辑切换为居中



编辑切换为居中


Expert Advisor 20_200 expert_v4.2_AntS,0.1 手

赫兹量化将再添加一个参数 - 回收系数:

RF(回收系数)= 总净利润/最大亏损 = 9911.72 / 923.58 =10.73

曲线看上去不错,RF 也很好,尽管周期将近 8 年。表中的所有其他参数也相当好:数学期望值为 12.44 点(可以更大,但这就不错了),最大亏损约为 20%。平均获利交易数与平均亏损交易数之比为 35.80/180.72 = 0.198 = 1/5.05;但获利交易数大于亏损交易数(89.21%/10.79%,即 8.27,这个数字高于 5.05)。因此策略看起来大有可为。

这给了新手信心,他决定冒险一搏:不采用固定手数,而是基于“每 1000 美元保证金 0.1 手”的“适度”比例引入几何资金管理。这种比例的风险远大于原始 EA 中提供的比例(每 10000 美元保证金 1/3 手略多一点),但我们的英雄可没有注意到这一点:他只想赚到尽可能多的钱...



测试 2,第 1 部分:手数与余额成比例,«0.1/$1000»

我留下了报告中我们可能会感兴趣的几行内容。

策略测试程序报告 20_200 expert_v4.2_AntS

Alpari-Demo (Build 215)


编辑切换为居中



编辑切换为居中


Expert Advisor 20_200 expert_v4.2_AntS,几何 MM

为了让视觉效果更好,我记录了一个可帮助跟踪动态流程的视频文件:几何 MM 的最终统计结果看上去通常比实际结果好得多,因为细节不会出错。视频完美展示了中间亏损,看上去就像图中不重要的凹陷。这些中间亏损并不那么小,有时达到已实现余额最大值的 50%(实际上,这个点不在余额达到其最大绝对值后发生的最后一次下跌中):

动态学中的几何 MM

由于我不了解的转换功能,视频要观看至第 34 秒;在显示关于测试模式的消息后,就会出现重复的结尾。

看,现在情况更糟了:图形看上去并不那么好,我们感兴趣的参数也已经发生变化。我们不讨论余额峰值时的建仓手数(大约 540 手!)对于经纪公司来说是否现实。我们看到净利润大大增加,但最大亏损百分比超过 70%,而且回收系数

RF=1989283.04 /3883421.15 =0.51–

直线下跌,现在甚至小于 1!当然,这么差的 RF 是最后一次下跌的结果,但我们不想自欺欺人,我们也不会把该下跌排除在报告内容之外,对不对?!这种情况已经在著名的文章“我的第一个’圣杯’”中描述过,这篇文章也许是论坛上引用最多的文章。

对于接受了总是请求固定 0.1 手时测试结果的“老手”的说法的新手来说,这是双重的经验教训。所以“在 0.1”时测试看起来似乎有欺骗性:抛开明显展示的正数学期望值和 0.1 手的策略稳定性不论,一般来说,要依赖“应该”有帮助的正数学期望值时,仅添加一个积极的 MM 是不够的。

导致这种曲线特性及其参数发生急剧变化的原因很明显:“在 0.1”进行测试时,保证金的增长伴随的是相对风险的减小,因为相对于保证金的手数在双曲线上减小。在使用几何 MM 时,风险不会变低,而是保持不变。这解释了测试周期结尾时大大增加的“凹陷”深度。

还有一个发现:平均获利交易数与平均亏损交易数之比也变得更差。现在它等于 20051.69/142644.96 =0.141 - 而不是上一个“0.1”测试中的 35.80 / 180.72 = 0.198。原因何在?答案如下:几何 MM 的亏损是针对开始交易时对应的帐户余额的相对手数计算得出的,即在下降余额轨迹的上点中。同时,获利交易的金额是根据建仓时的余额计算得出的,即在下降余额轨迹的下点中,并且它看上去略小于亏损交易的金额。

数值示例:假设当余额为 5000 美元并使用了几何 MM 时,我们开仓交易,手数为 0.1*($5K/$1K) = 0.5 手,并赢得了 100 点利润。这意味着 EURUSD 货币对的利润为 500 美元。现在假设我们立即进行了一个带来 100 点亏损的开仓交易。那么我们亏损多少?手数为 0.1*($5K+$500)/$1K= 0.55,即我们的损失是 550 美元,比获利大 10%。而在使用固定手数的第一种情况下,这种情况并不会发生!

我们能得出什么结论?

  1. 如果你想要使用一个积极的(几何)MM,则为了获取一个真正良好的余额曲线,你应该清醒地认识到,0.1 手测试的对应曲线应该是实际情况下的理想状态,没有“凹陷”。切勿忽视任何你要在实际交易中使用的 MM 类型。如果你的 MM 是不同的类型,不要盲目的完全遵循“0.1 测试”。

  2. 别忘了几何 MM 通常会提高亏损百分比。假设基于 5 年周期的 0.1 手测试显示保证金增长 1000%(从 1000 美元到 11000 美元)。顺便说一下,这是一个很实际的值:它对应于 60 个月的 10000 个点,即每月 167 个点。假设在 5 年周期结束之前,当保证金为11000 美元时 ,你在 0.1 手时的亏损非常小,仅有 - 5%,之后交易就在盈利,且保证金现在再次等于 11000 美元。你认为使用几何 MM 时亏损将会如何? 55% 的保证金 - 无论在此“凹陷”之前它已经增加了多少!下面将提供进一步的说明。

  3. 所以,这里的建议是:选择你的 MM 策略的“黄金分割”。这并不意味着你应该始终使用 0.1 手,但在价值百万的交易中,几何 MM 仅仅是你在低估风险的情况下做的一场美梦。

几何 MM 亏损论点证明: 如果在 0.1 手测试期间,周期结束时的亏损(当出现亏损交易前的余额等于 11000 美元时)等于 5%,则表示亏损额为 5%*$11K = $550,即 550 个点。现在我们来对几何 MM 进行相同的计算。

如果这个亏损结果来自一个已建仓位(例如,在没有止损位的情况下),我们的推理很简单:假设在“几何 MM”中发生此亏损之前,余额达到了 X*$1K(由于此 MM,X 很可能大于 11,但这里的 X 并不重要)。则 X*0.1 手交易打开,然后在损失等于lot*pips_value*pips= (X*0.1)*$10*550 = $550*X时平仓,即等于此亏损之前的 100%*($550*X)/(X*$1K) = 55% 的保证金。

当此亏损是多个序列亏损交易的结果时,情况会更加复杂,但正式地看,这些交易大概可以组合成一个交易,那么此亏损也可视为一个交易的结果;但是由于大量反向交易累积的效应,这个结果将会略有不同。

这个推理就是在写下本文时想到的,当时我试着解释几何 MM 的逻辑测试结果;结果的激进程度至今仍让我惊叹。而在此之前,我曾那么天真的相信,可以向 0.1 手时显示的任何策略添加带少量亏损甚至是一个积极 MM 的漂亮曲线 - 但我从没料到亏损和“0.1 测试”中展示的结果是如此的不同。现在我对长期使用的几何 MM 产生了很大的怀疑。原因是根本没有不亏损的策略...


期货量化交易软软件:资金管理排第二位,并不是很重要的评论 (共 条)

分享到微博请遵守国家法律