对EA的建议(从亏损到盈利) - 页 7

 
diostar:

不,这不是真正的问题,在这个阶段。它可能是浪费时间,从买入到卖出的测试,反之亦然,尽管它确实给人带来了变化。当我说,这就是我的意思。

在最短的时间内找到最佳解决方案。在相同的(非常短的)时间内,最多 5-10 分钟,测试每个单元的逻辑,所以逻辑可以是一个确定的,比如说。99%的好或99%的坏,都是非常确定的。

1) 你只需取一个主逻辑,比如说。

并删除所有其他的,然后你就这样做。

这是每一个单位的逻辑--测试买和卖,在同一时间。所以,如果你想用这一个主逻辑进行优化,你只需对你的基本参数进行优化--sl、tp、lot等。然后分析他们的买入和卖出的实例,判断这1个逻辑是否能在两种情况下都能成功--它是否做出了错误的或正确的输入。两者都是。然后继续前进,进入下一个逻辑。

随着时间的推移,你可能想尝试组合......第一个逻辑只是买入,逻辑2,只是卖出,或两者都是,等等。我发现这种方式更有条理,你可以真正看到哪个精确的逻辑真正导致了缩水。


我从来没有用这些方法测试过一个EA,所以请原谅我......

我的问题是:我应该隔离哪些参数 来严格关注利润?

  • MAs?
  • TP
  • SL
  • ?
 
c0d3:

我从来没有用这些方法测试过一个EA,所以请原谅我......

我的问题是:我应该隔离哪些参数来严格关注利润?

  • MAs?
  • TP
  • SL
  • ?

我也没有。我只是在工作中偶然发现了这个全新的想法。 我来自一个相当的技术基础,所以我很容易判断一些逻辑是完全不正确/有偏见/有缺陷的,在市场上。

但我在问:"如果真的如此,如何策略测试器上 证明这一点?肯定有办法的。"所以,我偶然发现了这个方法,很巧。

在这种情况下,你只需把那些处于检查条件的MA逻辑一个一个地拿出来,比如说,你从M240close< MA 240开始。你测试两边--买入和卖出,在同一时间。现在这些就是案例。


1)现在,从数学上讲,如果这个逻辑确实可行,结果应该是有点中性的,因为它涵盖了两边。同意吗?如果结果是有利可图--那么你可以通过观察买入和卖出的结果得出结论,这个逻辑的收益非常非常好,即使它受到了反面的打击。所以它是非常健全的。

2)现在,如果结果是灾难性的,那么你可以得出结论,整个逻辑,即比较240点的收盘价和MA240点的收盘价,对各种市场运动都是100%的缺陷。 因此,你应该相信,整个逻辑应该被取消,被完全取代。

剩下的--TP、SL,就留给优化吧。在这个阶段,将逻辑逐一纠正才是最重要的。

自从使用这种方法以来,我在自己的交易中取得了相当好的进展。以前,我做的事情和很多人差不多,但是用这种新的方法,我在非常非常短的时间内取得了很大的进步...;-)

 
diostar:

我也没有。我只是在工作中偶然发现了这个全新的想法。 我来自一个相当的技术基础,所以我很容易判断一些逻辑是完全不正确/有偏见/有缺陷的,在市场上。

但我在问:"如果真的如此,如何在策略测试器上证明 这一点?肯定有办法的。"所以,我偶然发现了这个方法,很巧。

在这种情况下,你只需把那些处于检查条件的MA逻辑一个一个地拿出来,比如说,你从M240close<MA 240开始。你测试两边--买入和卖出,在同一时间。现在这些就是案例。


1)现在,从数学上讲,如果这个逻辑确实可行,结果应该是有点中性的,因为它涵盖了两边。同意吗?如果结果是有利可图--那么你可以通过观察买入和卖出的结果得出结论,这个逻辑的收益非常非常好,即使它受到了反面的打击。所以它是非常健全的。

2)现在,如果结果是灾难性的,那么你可以得出结论,整个逻辑,即比较240点的收盘价和MA240点的收盘价,对各种市场运动都是100%的缺陷。 因此,你应该相信,整个逻辑应该被取消,被完全取代。

剩下的--TP、SL,就留给优化吧。在这个阶段,将逻辑逐一纠正才是最重要的。

自从使用这种方法以来,我在自己的交易中取得了相当好的进展。以前,我做的事情和很多人差不多,但是用这种新的方法,我在非常非常短的时间内取得了很大的进步...;-)

为什么不同时优化所有的变量呢?这可能需要一段时间来运行优化测试,但是,这就是为什么我有两台电脑。一台用于测试,一台用于开发。

假设你有一个功能正常的外壳EA,即SL,TP,追踪SL,增量,堆栈,风险,很多小时的交易,电子邮件,报告,打开关闭订单,在多个货币对上工作等等。假设所有这些都能正常工作,这不是一个小任务,然后你就会留下任何你用来进入交易的逻辑。在我的例子中,我有Trade(),返回1、0或-1。Trade()中的逻辑可以是你想插入的任何系统。

我首先在视觉模式下测试我的交易逻辑/系统,所以我确保逻辑运作正常,例如,止损设置在正确的位置,进场在正确的位置/bar/level和系统要求的任何地方。一旦完成了这些,除非我完全失去了理智,否则一般来说这需要一个小时或更多的测试。然后,我运行整个优化的TP范围,SL堆栈,交易时间和任何需要测试的交易逻辑Ma的变量,酒吧模式等等。

如果你在同一时间运行所有的优化,会让你更好地了解该策略是否有效。如果你想缩短测试时间,就在较短的时间内运行一个选择,只是为了获得系统的经验,例如1-2个月。如果你保持你的范围,这不应该花很长时间,4-8小时左右。如果它看起来很有希望,那么就进行一次真正的回溯测试,这将使你真正了解该系统是如何工作的。没有人说你不能在运行100次后停止回测,因为它看起来已经是个失败者。

在我的测试中,我把缩减作为我的首要数据,如果我的EA在2%的风险下缩减超过12%,那么我就回到了原点。如果这能解决问题,我就会看赢/亏百分比,以及平均赢/亏比率。我不确定你用你的方法是否能更快得到这些数字。如果我的大部分,即80-90%的选择运行没有使账户降至0,那么你就有了一个盈利的EA的好机会。然后,我取中间的利润运行,用较小的范围进行平均和重新优化,以获得我的设置,在实时数据上进行未来的测试。仅此一项就可能需要一个月的时间。除非这样做,否则我不会用真金白银来运行。

考虑到上述所有情况,这只是我做开发工作的方式,至少对EA来说是这样。

我不同意1或2的说法。

1)我不认为你能证明或甚至知道该系统是否会盈利,除非你通过回测器对所有可能的变量进行选择运行。如果,SL、TP、Stack、Stack之间的距离或MoveStop使策略成为赢家,这不是真正的如果,这是一个事实。如果你用自己的方式进行测试,你仍然需要一个SP或TP或其他什么来看到赢或输。如果你在1分钟的图表上有一个100点的SL,你很可能会有一个伟大的系统,有85-98%的胜率。我可以告诉你,当你通过优化运行它时,它不会有这样的表现。你可以有30%的胜率和一个非常有利可图的EA。你也可以有90%的胜率,但缩水可能是70%,4000次优化运行中有3000次耗尽账户。最后,你还是要做一次完整的运行。为什么不先做,然后再并行编码一个新系统。

2)这可能会变成一场灾难,你没有经过全面测试就折腾一个系统。这可能就像把一张中奖的强力球彩票扔进垃圾桶,因为你刚刚检查了强力球号码,你知道你没有中大奖。你确实有其他五个数字,你只是把25万的赢家扔进了垃圾桶,现在有些鸽子有一个非常昂贵的巢。

底线 是我认为系统的实际编码是开发过程中耗时最少的部分。测试是最长和最重要的部分,我想把大部分时间花在测试阶段。我也倾向于从失败的EA中学习更多,我知道这是每个人都会说的,但测试中的失败往往有助于缩小未来优化的参数范围,这使得测试更有前途的EA最终会更快。

只是我的2分钱。

 
danjp:

为什么不在同一时间优化所有的变量?运行到优化测试可能需要一段时间,但是,这就是为什么我有两台电脑。一台用于测试,一台用于开发。

假设你有一个功能正常的外壳EA,即SL,TP,追踪SL,增量,堆栈,风险,很多小时的交易,电子邮件,报告,打开关闭订单,在多个货币对上工作等。假设所有这些都能正常工作,这不是一个小任务,然后你就会留下任何你用来进入交易的逻辑。在我的例子中,我有Trade(),返回1、0或-1。Trade()中的逻辑可以是你想插入的任何系统。

我首先在视觉模式下测试我的交易逻辑/系统,所以我确保逻辑运作正常,例如,止损设置在正确的位置,进场在正确的位置/bar/level和系统要求的任何地方。一旦完成了这些,除非我完全失去了理智,否则一般来说这需要一个小时或更多的测试。然后,我运行整个优化的TP范围,SL堆栈,交易时间和任何需要测试的交易逻辑Ma的变量,酒吧模式等等。

如果你在同一时间运行所有的优化,会让你更好地了解该策略是否有效。如果你想缩短测试时间,就在较短的时间内运行一个选择,只是为了获得系统的经验,例如1-2个月。如果你保持你的范围,这不应该花很长时间,4-8小时左右。如果它看起来很有希望,那么就进行一次真正的回溯测试,这将使你真正了解该系统是如何工作的。没有人说你不能在运行100次后停止回测,因为它看起来已经是个失败者。

在我的测试中,我把缩减作为我的首要数据,如果我的EA在2%的风险下缩减超过12%,那么我就回到了原点。如果这能解决问题,我就会看赢/亏百分比,以及平均赢/亏比率。我不确定你用你的方法是否能更快得到这些数字。如果我的大部分,即80-90%的选择运行没有使账户降至0,那么你就有了一个盈利的EA的好机会。然后,我取中间的利润运行,用较小的范围进行平均和重新优化,以获得我的设置,在实时数据上进行未来的测试。仅此一项就可能需要一个月的时间。除非这样做,否则我不会用真金白银来运行。

考虑到上述所有情况,这只是我做开发工作的方式,至少对EA来说是这样。

我不同意1或2的说法。

1)我不认为你能证明或甚至知道该系统是否会盈利,除非你通过回测器对所有可能的变量进行选择运行。如果,SL、TP、Stack、Stack之间的距离或MoveStop使策略成为赢家,这不是真正的如果,这是一个事实。如果你用自己的方式进行测试,你仍然需要一个SP或TP或其他什么来看到赢或输。如果你在1分钟的图表上有一个100点的SL,你很可能会有一个伟大的系统,有85-98%的胜率。我可以告诉你,当你通过优化运行它时,它不会有这样的表现。你可以有30%的胜率和一个非常有利可图的EA。你也可以有90%的胜率,但缩水可能是70%,4000次优化运行中有3000次耗尽账户。最后,你还是要做一次完整的运行。为什么不先做,然后再并行编码一个新系统。

2)这可能会变成一场灾难,你没有经过全面测试就折腾一个系统。这可能就像把一张中奖的强力球彩票扔进垃圾桶,因为你刚刚检查了强力球号码,你知道你没有中大奖。你确实有其他五个数字,你只是把25万的赢家扔进了垃圾桶,现在有些鸽子有一个非常昂贵的巢。

底线是我认为系统的实际编码是开发过程中耗时最少的部分。测试是最长和最重要的部分,我想把大部分时间花在测试阶段。我也倾向于从失败的EA中学习更多,我知道这是每个人都会说的,但测试中的失败往往有助于缩小未来优化的参数范围,这使得测试更有前途的EA最终会更快。

只是我的两点意见。

好吧,那么让我们同意不同意....,并感谢你写了这么长的文章。也许这篇文章可以做到。优化=陷阱,你可以掉进去。https://www.mql5.com/en/articles/1434

 

@c0d3: 这里有一个建议,是这个论坛上一些伟大的开发者给我的。永远不要使用策略优化器(除了微调)。理想的开发过程是。1)你认为 一个策略有意义。2)你编写和测试该策略。4)该策略获得盈利。5)你使用优化器 进行微调。6)你从失败的 地方学习

优化器是一个#紧缩器,它将使1个点的Sl/Tp成为赢或输的区别。在我看来,每次优化一个变量或全部优化都没有区别。这是我在1个月大时的圣杯。如果有那么容易,我就不会还在寻找更好的方法了。

 
ubzen:

@c0d3: 这里有一个建议,是这个论坛上一些伟大的开发者给我的。永远不要使用策略优化器(除了微调)。理想的开发过程是。1)你认为 一个策略有意义。2)你编写和测试该策略。4)该策略获得盈利。5)你使用优化器 进行微调。6)你从失败的 地方学习

优化器是一个#紧缩器,它将使1个点的Sl/Tp成为赢或输的区别。在我看来,每次优化一个变量或全部优化都没有区别。这是我在1个月大时的圣杯。如果有那么容易,我就不会还在寻找更好的方法了。

这些观点正是这篇文章的优化之处。 也是我个人对测试者的看法。我很惊讶为什么会有这样的建议。 商业上的矛盾?

总而言之,交易是一个相对 "简单 "的游戏,如果你考虑到这个事实。没有人,即使是天才,也不会像一些机器人那样整天交易--好的、特殊的机器人只需要15-30分钟,最多一个小时就可以进入,拉出70-100点的线索,然后去吃午饭。听起来对一个机器人来说已经够难了?如果你能每周或每天做到这一点,并且像YTE的那个老太太一样喜欢做这个,那就是我所说的圣杯。

但是,如果你想用机器人把事情复杂化,那么,除了市场之外,你要准备好掌握某些真正使计算机程序运转的知识。你可能需要涵盖多个领域的能力,不仅仅是编程,还有基本的主题--布尔逻辑是一个明确的主题,数学和工程的见解将是有帮助的,等等,等等。这些可能超出一些人的能力。

如果你想知道更多,我可以分享的是,测试和优化,只不过是一个聪明的机械统计学家,按照你给它的一些逻辑来搅动数据而已。 但事实是,市场并不按统计规律或你的逻辑运作,如果你还没有发现这一点的话。

我有很好推荐的商业EA,它们的回测结果令人满意,但在过去的几个月里仍然给了我巨大的、巨大的缩水。 现在,如果你经历过这种情况,你会更明白我的意思。 有一种东西叫做圣杯,但绝对不是一个需要修补的机械性的东西,只是为了适应这个时刻。以及其辉煌的回测结果。

我的建议是:把这种修补作为一种爱好,并把交易分开来做。 如果你想把两者结合起来,那么从长远来看,你要准备好成为自己的牺牲品。

 

99% 的人做外汇交易都会输。这些都是非机器人 交易者。机器人并不邪恶,它是一种工具。机器人的好坏只取决于你为它们付出的金钱和时间;)

 
diostar:

好吧,那么让我们同意不同意....,并感谢你写了非常长的文章。也许这篇文章会做。优化=陷阱,你可以掉进去。https://www.mql5.com/en/articles/1434


优化是一个陷阱,如果你让它困住了你。我使用优化来获得尽可能多的交易,在一些年的时间里。当我在做其他事情的时候。我不会把我的一分钱放在一个没有经过测试、回测和前测的机器人上。问题是时间,你要等多久才能进行真正的资金交易。我已经做了5年左右的交易,机器人比人类的好处是,它做你编程的事情。它不会打开CNBC,听一些白痴的想法,它不会等待新的消息,它不会因为感觉到市场要转向而紧张或提前停止交易。如果你不是一个全职的交易员,它也能发挥作用。

如果你在优化器中运行12000次模拟,其中70%的运行是失败的,而10%的运行为你赚取了2000%或任何人们正在寻找的疯狂数字,那么你几乎有一个失败的系统,不值得花时间测试它。

如果你认为你将在若干年内手动测试一个系统,并在每次运行后调整它,每次改变一个参数,这比运行优化器更疯狂。然而,如果你在opt中运行了15,000次,而且没有一次是失败的,那么你就有了一个系统,至少可以放入模拟账户进行未来的测试,比如4周。在这一点上,你将会发现真正的编码错误。

让我看看一个每天交易15-30分钟,储存100-150个点,然后去吃午饭的人,我会让你看看一个不做真钱交易的人。交易是一份全职工作,就像任何其他工作一样。

如果这是一个爱好,我不知道你为什么要浪费时间做这种类型的编码。这在技术上是很容易的,而且你赚的钱还不如你做一份正常的开发工作来得多。我在日常工作中负责一个系统,该系统有近200万行代码,使用4种语言,在大型机、PC、各种UNIX和大多数Linux操作系统上运行。

以我的愚见,这篇文章很有趣。这并不意味着我相信其中的每一个字。这只是作者的观点,他们可能不得不运行大量的优化来得出优化是一个陷阱的结论。如果他们这样做了,那么这篇文章怎么可能是正确的,因为优化是不起作用的。

 
ubzen:

@c0d3: 这里有一个建议,是这个论坛上一些伟大的开发者给我的。永远不要使用策略优化器(除了微调)。理想的开发过程是。1)你认为 一个策略有意义。2)你编写和测试该策略。4)该策略获得盈利。5)你使用优化器 进行微调。6)你从失败的 地方学习

优化器是一个#紧缩器,它将使1个点的Sl/Tp成为赢或输的区别。在我看来,每次优化一个变量或全部优化都没有区别。这是我在1个月大时的圣杯。如果有那么容易,我就不会还在寻找更好的方法了。

  • 我非常同意,回测只适用于测试逻辑(技术、视觉),而不应该被用作衡量利润潜力的标准。
  • 因此,我只对EA进行预先测试,以衡量它们的性能,所以像优化这样的事情是一个全新的课题,我对它仍然持怀疑态度。
 
danjp:

如果你认为你要在若干年内手动测试一个系统,并在每次运行后改变一个参数来调整它,这比运行优化器更疯狂。然而,如果你在opt中运行了15,000次,而且没有一次是失败的,那么你就有了一个系统,至少可以放入模拟账户进行未来的测试,比如4周。在这一点上,你将会发现真正的编码错误。


这是一个很好的观点,关于反向测试