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

 

下面是2年测试的情况,改成1批,改成240帧,两个参数都是同步的=60。 (除了M60之外,所有这些逻辑都被删除了)。

测试中的条数 13544
模拟的点数为5961890
建模质量90.00%。
不匹配的图表错误 0
初始存款10000.00
总净利润 30459.02
毛利润 99716.99
毛亏损 -69257.97
盈利系数 1.44
预期回报率 152.30
绝对缩水 1037.97
最大跌幅 20707.98 (35.94%)
相对跌幅 35.94% (20707.98)
总交易量 200
空头头寸(韩元%) 97 (30.93%)
多头头寸(韩元%) 103 (30.10%)
盈利交易(占总数的百分比) 61 (30.50%)
亏损交易(占总数的百分比) 139 (69.50%)
最大的
盈利交易 5833.00
亏损交易 -3156.00
平均数
盈利交易 1634.70
亏损交易 -498.26
最多
连续赢钱(以金钱计算的利润) 6 (14728.00)
连续亏损(金钱损失) 12 (-1587.00)
最大的
连续盈利(赢钱的次数)14728.00 (6)
连续亏损(亏损数) -9507.00 (5)
平均数
连续赢钱 1
连续亏损 3

 
diostar 2011.10.05 12:37

你误解了。MTF不是原因,甚至不是一个问题。prb只是MA。让我试着解释一下,非常简单。

MA告诉我们过去的情况。因此,当使用MA信号时,比如在H1上,期望,E,是在下一帧,比如H4上,将与H1的过去 "一致"。当H1的过去表现在H4的现在时,就可以获利。当E发生时,意味着关闭交易,或做任何策略想做的事。

但在这种情况下,发帖人采取了相反的做法。这是很基本的交易缺陷,因为所有的预期都是错乱的。


虽然多时间框架不是我的强项。所以,如果我的想法是错误的,请纠正。

在你发布的上述逻辑中。

if((Close[0]<=fastMA30 && Close[0]<=fastMA60 && Close[0]<=fastMA240))

我用红色强调的&&告诉我,fastMA240也需要同意。

看到fastMA240是所有MA中最慢的一个。如果说fastMA240使系统变化更慢,这不是很合理吗。而且,整个系统被fastMA240所说的东西弄得一团糟?

现在,如果我们采纳了你的建议。

if((Close[0]<=fastMA30 && Close[0]<=fastMA60))

在我看来,如果不使用fastMA240,系统对变化的反应会更快。但是我们仍然有一个问题,就是MA60在做节目。

总而言之:所有重要的是底线,即从长远来看,这是否是一种有利可图的方法。IMO没有办法说哪个更好。你的方法和原作者的方法没有测试 :)

最后,我不喜欢上述代码的地方。1)使用了当前栏位,如Close[0],这段代码对回测人员不友好。2) 使用=符号,如<=,首先,很少有价格会被=,因为它是双倍的类型。其次,在罕见的情况下,当所有的MAs都=Close[0]时,系统会变得没有方向,例如:if(xMA>=Close[0]){Buy}_____if(xMA<=Close[0]){Sell},当它是=Close[0]时,正确的行动是什么呢。

 
diostar:

从结果来看,我将不建议进行任何优化。 直到这些策略和逻辑问题得到解决。

首先,在H1上运行了7年的测试后,我没有那么多时间,也没有那么多动力去看EA中的所有代码行,但我确实被两个神奇的数字所震撼--用于 "慢 "交易和 "快 "交易。 我想,这是一种什么样的策略?

然后,我浏览了一下编码模式,尝试注释出慢速魔法的数字。 该EA没有工作,正如预期的那样。

然后,我评论了另一个快速魔法数字。惊喜,惊喜,EA的编译没有错误。

因此,看来,逻辑完全没有达到预期的效果?可以肯定的是,你的EA只是基于一些慢速的MA逻辑进行填充,但从来没有基于快速的逻辑?

既然你是这个EA的所有者,你应该对所有这些有更好的答案,而不是我的简单方法。


我有一些想法没有实现,因此你看到了慢速和快速魔法数字。


EA只对订单使用慢速魔法数字,它与慢速和快速MAs完全分开,这些MAs被条目扫描。

我希望这能回答你的问题

谢谢

 
ubzen:
你们应该把这变成一个小项目,用它来创造一个成功的系统。每个人都从当前版本的EA开始,然后在其中添加一些东西。然后你们选择你们中最强的编码员来集合最好的想法。当你们完成了目标,然后把它放到代码库中。这将是非常有趣的,看看会出现什么。

我很愿意在这样的努力中合作,从所发布的EA的基本版本中建立一个可盈利的EA。

 
mbirrell:

我会寻找其他进入市场的方式。当这些指标发出信号时,已经为时已晚。我总是使用限价单来预测市场将要做什么。有些人可能会嘲笑采取这种方法,但它对我很有效。记住,这不是短跑,而是一场马拉松。


我绝对同意你的逻辑,但我如何转换我现有的逻辑以适应限价单模式?
 
danjp:

有趣的想法,我 f c0d3是确定的,我会给它一个尝试。我应该可以用他的规则替换我的规则功能。这将使它具有交易时间规则、电子邮件通知、错误检查、堆叠、限价和挂单、追踪止损等。可能只需要一两天的时间,就可以让这些规则在我的EA外壳中运行。然后,我可以考虑调整这些规则,以尝试使其更有利可图。

我绝对可以接受,但你是否可以在这个主题上分享你的代码?
 
diostar:

如果你看过他的 "规则",它们是这样的(对于卖出的情况)。

从数学上讲,这是个无稽之谈。 原因是在较高的框架上的MA,由于完成一个柱子所需的时间比较低的框架长,所以预期会比较慢。所以,总的来说,这种逻辑最终主要是由这种较低的条件决定的。

因此,到那时,从MA240的角度来看,MA显示了过去,然后是60,然后是30,市场是一个卖点。 我的建议是简单地 "扭转 "这个无意义的规则,所以不要做空,要做多,反之亦然。我很肯定,结果会更漂亮。



让我解释一下空头交易,反之则是多头交易。

  • 进场条件1:如果当前收盘价 低于MA30(100样本)、MA60(100样本)和MA240(100样本),我们处于下降趋势中
if((Close[0]<=fastMA30 && Close[0]<=fastMA60 && Close[0]<=fastMA240))
   {
      // we are in a downtrend
      //Comment("\n"+"short only");
      shortEntry();
   }
  • 进场条件2:等待entryTF(15M)的收盘价高于MA30(50个样本)和MA60(50个样本)。

if(iClose(Symbol(),entryTF,1)>=slowMA30 && iClose(Symbol(),entryTF,1)>=slowMA60)
  • 进入空头

的想法。MTF逻辑

  • 当价格低于MA30时,这是基于M30的。
  • 当价格低于基于H1的MA60时
  • 当价格低于基于H4的MA240时
  • 等待M15收盘价高于基于M30的MA30时
  • 等待M15的收盘价高于MA60,这是基于M60的。
  • 进场做空:使用订单参数


我还将尝试反转这些条目,看看会发生什么


希望这能回答你的问题

 
ubzen:

@diostar,关于MTF逻辑的有趣想法和看法。这是我注意到的关于MTF逻辑的东西,一个时间框架通常主导着这个系统。

@danjp,是的,这可能是将规则纳入你信任的工作程序的最快方式。因为我们大多数人已经有一个模板,可以把逻辑插入其中。如果有人不愿意把自己的代码交给别人,那么有一个建议是,让组装代码的人使用我们代码库中的可信库。(例如:OrderReliable.mqh.)。

你知道吗?我有点喜欢这个主意。如果我可以从这里得到3个人的签名,我将开始一个新的主题。我们合作,努力创造一个有利可图的EA。这将是一个很好的测试,看看多个交易者是否真的可以交易同一个系统。)


请在这里发布主题,如果你启动它,我一定要参加。
 
danjp:

我会做一个优化运行,让(1*STD)->(5*STD),同时在同一运行中尝试0.3->1.5的SL和TP。我将从12个月的运行开始。如果你从其中一些运行中得到了不错的结果,我会在EA中添加一个小时的交易程序,并使用你从上一次运行中得到的数值,看看你是否可以在不需要24小时交易的情况下进一步改善它。

祝你好运,继续发布结果。

你能推荐一些文件,用于运行(1*std)->(5*std)和(0.3->1.5的SL和TP)的回测
 
diostar:

前瞻性测试总计156笔交易,比那39笔回测交易要可靠得多。回溯测试的整个想法是尽可能多地投入交易,并获得快速的结果。回溯测试是为了什么?







回溯 测试只是为了测试策略,看看你的逻辑是否有效,但要判断它是否有利可图,只有预先测试才能确定。


有很多时候,当你看到一个EA在回测中有利可图,然后你运行它,然后你的EA打破了你的银行。

原因: