在回测 过程中,基本上有两种方法可以捕捉到每笔交易的MAE/MFE。
我追求的第一种方法是在回测期间逐点追踪头寸的最大盈亏,以 "实时 "方式捕捉极端情况。这是最耗费CPU的方法,也是最不容易在最终结果中出现系统误差的方法。
第二种方法,也是我目前使用的方法,是等待回测完成,然后在deinit()过程中循环浏览订单历史,提取每笔交易的开仓和平仓时间戳,搜索这两个时间戳之间发生的极端低价和极端高价。然后使用这些极端价格来计算交易在这些时间必须发生的MAE和MFE。
这样做非常快,而且节省资源,是回溯测试的理想选择,但如果MAE或MFE恰好发生在开盘蜡烛或收盘蜡烛中,就会带来错误,因为在hst文件中定义这些蜡烛的价格点可能在时间上发生在订单打开之前或关闭之后(但在同一蜡烛中)。
在实践中,我没有发现第二种方法的这个缺点实际上是一个很大的问题。但这是需要注意的。
(为你的deinit()开发一个包含程序的另一个好处是,你也可以把它作为一个脚本在你的远期/实时账户上运行......只要拖放,它就能让你分析账户上过去的交易。)
hi ubzen 你好吗?
1)你的出场逻辑似乎没有按照原始系统的定义工作,至少从图表上看是这样。
2)对我来说,该系统在风险回报率为2而不是1的情况下运行得更好,也许动态RRR甚至可能会有更大的改善。
3)2010年1月1日到2010年3月1日似乎是这个EA的一个甜蜜点,几乎没有损失,这个时期对于测试来说可能有点小,不好选择。
4) 我们对该策略有不同的解释,在价格/MA交叉后,我理解MACD必须已经越过0(但不超过5个柱子的距离),但你在等待MACD交叉后开单。
-我的解释已经过滤了大量的交易。
我已经添加了。
a)支持在同一时间买入和卖出。(同时,如果订单处于盈亏平衡状态,可以开立新的订单。)
b)枢轴点进入过滤器(只在上面买入/只在下面卖出)
c)我使用CCI而不是原来的退出逻辑。(关于这种情况,还有很多事情要做。)
这里有一些照片。
谢谢Zzuegg。
你真是个冒险家;)。10% ???.我很高兴看到它在未来有些作用。我不敢看未来,因为担心这东西的曲线拟合。视觉上看一下就可以了。
1)你的出场逻辑似乎没有按照原始系统的定义工作,至少从图表上看是这样。我 将重新编写代码,以确保它是按照提供者的原意进行的,然后再发布EA。
2)该系统在风险回报率为2而不是1的情况下对我来说效果更好,也许动态的RRR甚至可以提高。 好吧,这就是为什么我做这一切的原因,看看什么会改善。
3) 2010年1月1日至2010年3月1日似乎是这个EA的甜蜜点,几乎没有损失,这个时期对于测试来说可能有点小,不好选择。 所以它在第一次尝试时就达到了甜蜜点,我很担心。我真的不关心这个东西是否是圣杯。我只是把它作为一个案例研究,它不是我的系统,因此,我可以把代码贴出来。
4) 我们对该策略有不同的解释,在价格/玛交叉后,我理解MACD必须已经越过0(但不超过5个柱子的距离),但你要等待macd交叉并打开订单。是 的,我知道这一点。现在只有原来的提供者可以澄清这个问题。
谢谢Zzuegg。
3) 2010年1月1日至2010年3月1日似乎是这个EA的甜蜜点,几乎没有损失,这个时期对于测试来说可能有点小,不好选择。 所以它在第一次尝试时就达到了甜蜜点,我很担心。我真的不关心这个东西是否是圣杯。我只是把它作为一个案例研究,它不是我的系统,因此,我可以把代码贴出来。
如果它运行良好,为什么不使用一个系统?还有很多事情要做,但对于一个原始策略来说,它显示了潜力。
关于10%,我喜欢在测试过程中清楚地看到上升和下降的情况,当然,对于现实的模拟来说,这并不重要。
补充。
最有趣的是,即使风险回报率为2,这个系统也赢得了超过50%的交易,这是一个相当大的优势。
@1005phillip:注意到警告。我从来没有花时间去下载tick-data。这个问题有多大?
因为最大逆向偏移对交易者来说应该是更重要的,我们就从这个开始。使用同样的结果,我在我的Excel内绘制了我认为是(LS法)的趋势线,如果我错了,有人纠正我。用来生成Spread sheet的工具是在这里 找到的Rosh的。接下来,我将使用1005phillip在这里 找到的工具,根据一些不同的时间常数来评估它。
嗯,它有一个正的斜率。那么,这意味着什么,我们怎样才能使它变得更好?见鬼,如果我知道,我就不会在这里做实验了。然而,正如文章所说,它是正的,这就是我们的储蓄罐里的一个点。我打算把Stop_Level的逻辑留在原地。当我们用不同的收盘时间来测试时,这些数字应该会有很大的变化。
下面是图表和斜率的图片....我还附上了报告所创建的.csv。
ubzen,对于你如何处理MAE数据,这是一个个人偏好的问题。
我不把MAE与盈亏相提并论......对我来说,这不是一个统计学上有效的因果关系。
我将MAE描述为MAE告诉您,您的 "进入策略 "使您过早地进入了一个头寸,其数量与MAE相等。因此,您的交易的 "盈利潜力 "被削弱了,其数额等于MAE。
MAE是用来调整你的进入策略的。MFE是用来调整你的退出策略的。
MFE和OrderProfit之间的差异,我称之为 "多余的MFE "或简单的 "EMFE",这是由于你的退出策略使仓位保持过长而留在桌上的钱。
第三,时间就是金钱。支持一个交易的保证金头寸所占用的资金是不能用来支持另一个交易的资金。因此,"到MAE的时间 "和 "到EMFE的时间 "是需要分析的参数,因为它们向你表明了你没有明智地/有效地使用你的资本的时间。
最后,至关重要的是,你要调查MAE和MFE发生的时间顺序。如果MAE发生在MFE之前,那么交易是好的,但需要优化调整进入和退出策略,使MAE最小,EMFE最小。
但是如果MAE发生在MFE之后,那么这个策略就会在多个方面被破坏。也许最重要的是,它的开仓方式与应该采取的方式相反。如果你的策略是开了一个多头头寸,而市场接着进行了一个价格行动,导致MFE发生在你的交易的MAE之前,那么这意味着你的交易真的应该是一个空头头寸,而不是一个多头头寸(在这种情况下,多头的MFE变成了空头的MAE,反之,MFE也是如此)。
我想我以前可能发过这些,但不记得了。
嗨,菲利普。我只有几个小问题。
使用你的工具后,我得到了这些直方图文件。到现在为止,我仔细看了一下 "Profitloss与MAE和MFE "的点数。
根据我的理解,这些数值显示了我在交易过程中错过的点数。基本上最好的结果是当Profit==MFE和MAE==0时,对吗?
如果你看一下下面的图片,我们可以看到。
- 如果EA获利,它接近MFE(当然,因为我使用takeprofits)。
- 如果EA获利,MAE也大多接近于0,这意味着进场是相当好的。(至少在订单开放期间是最好的)
- 如果EA出现亏损,它大多与MAE相符(当然,因为使用了止损)。
- 如果在这种情况下,MFE接近于0,就没有机会盈利。
- 但如果MFE很高,则意味着我错过了一个出口。
这些结论是否有效?
目的:我正试图定义一个系统开发过程。我的脑子里有一些想法,但并不全面。我希望其他更了解的人能够对这个过程进行批评。如果任何杰出的成员对我把论坛当作个人博客使用有意见,或者认为这个实验没有任何好处,就说出来,我会及时停止。
好的,我们已经有了一个叫sakis的 会员提供的系统。3个月的小样本测试显示了可预期的结果。现在我正在学习如何利用这篇文章 获得这个时期的所有统计测量。我将首先从Mae/Mfe开始。