StepMA_Stoch_v1 EA。 简单而令人满意 - 页 3

 

对不起,昨晚太晚了,发错了该死的专家。糟糕

在这里,它是再次

附加的文件:
 

斯佩斯特克罗斯

只是一个快速的回溯测试

附加的文件:
 
jorgka:
只是一个快速回测

你好,Jorgka。

谢谢你的努力和这个EA。

但是我没有看到任何可以优化参数 的设置。它的标准参数是1.0,但在大多数情况下,可以看到这不是理想的参数。在30分钟的图表中,经验告诉我们,+/-1.4-1.6会做得更好。因此,是否有可能增加steppmatoc的参数,以便对其进行优化?

TNX很多都是提前...iGoR

 

嗨,Jorgka。

我不认为该EA的工作是正确的。当我们尝试在没有任何止损的30分钟电缆上回测 你的默认设置时,它只给出15笔交易。应该有数百次交易。如果你看一下2年内的指标,有100多个交叉点。

问候iGoR

 

设置

大家好。

很抱歉,自从我开始这个话题以来,我没有给它添加很多东西,但是我建议Jorgka回顾一下我在这个话题开始时解释的参数。如果你使用1.0,该EA将不会盈利,但如果使用1.9,该EA将非常有利可图。会有亏损,但收益是巨大的。EA所要做的就是一旦电缆、美元/瑞士法郎、美元/日元和欧元/日元的30分钟图表上确认出现交叉,就买入或卖出。如果你能对EA进行编程,卖出或买入两倍于当前仓位的股票,这将使一个仓位关闭,同时以相同的金额开设下一个仓位,但方向相反。

该EA的好处是,你不需要止损,因为总会有另一个十字星来结束当前的头寸。相信我,有了这个EA,你就不需要止损 了。现在,在编制上面解释的平仓/开仓程序时要小心,因为在卖出或买入两倍于开仓金额的头寸时,有可能前一个头寸没有关闭。我见过这样的情况,它只是开了一个全新的头寸,金额是之前头寸的两倍,而没有关闭之前的头寸。例如,假设你有一个1标准手的多头头寸。下一个十字星来了,所以EA卖出了2个标准手。这应该卖出所有的第一个标准手,关闭该头寸。剩下的1手空头,就是相反方向的新头寸。这是最理想的。我见过这样的情况:你可能仍然有1个多头头寸和2个空头头寸,而不是最后只剩下1个空头头寸。这就是我们想要避免的情况。

另一个必须处理的问题是,确保EA只在线条完全交叉时执行,而不是在它们交叉时执行,因为在它交叉时你会得到大量的开仓和平仓。该EA真的不需要比我在这里所说的更复杂。唯一需要增加的功能是,随着账户的增长,可以增加手数,但是一旦这个功能被加入,并且EA被正确编程,它真的不需要再复杂了。如果编程正确,它就会工作。就像我之前说的,我已经手动回测了这个策略,结果很好。我认为关键是要确保EA完全按照我们的要求来做。

谢谢你的帮助。

Huhenyo

 

EA的细节

我将尝试回答一些问题,并带来一些清晰的信息。

double diCustom0=iCustom(NULL, 30, "StepMA_Stoch_v1", 10, 1.8, 0, 0, 0); double diCustom1=iCustom(NULL, 30, "StepMA_Stoch_v1", 10, 1.8, 0, 1, 0) 。

double diCustom2=iCustom(NULL, 30, "StepMA_Stoch_v1", 10, 1.8, 0, 0, 1);

double diCustom3=iCustom(NULL, 30, "StepMA_Stoch_v1", 10, 1.8, 0, 1, 1);

OK 正如你所看到的,有4个double dicustom命令。

dicustom1, dicustom2, dicustom3 & dicustom4。

我尽可能简单地给你们分解一下。

其中NULL,30,这是时间框架的值。比如30=30分钟,或者如果你把它改成NULL,15,这将调用一个15的时间框架。

"StepMA_Stoch_v1 "是专家从MT指标集中调用的指标。

值,10,1.8,10这些是StepMA_Stoch_v1的输入参数,必须按顺序排列。因此,如果伊戈尔愿意,他可以将这些值从 "StepMA_Stoch_v1"、10、1.4、0中改变。

最后剩下的两个专家中的所有数值指的是数值。其中值0是黄线,值1是蓝线。为什么你会问值0(黄色)不是值1,蓝色(值1)不是值2,这是因为在StepStoch指标中,它将值0定义为黄色,值1定义为蓝色。 最后一个字段是值0代表当前栏,值1代表1栏后。

好了,这就是指标设置。

现在是买入卖出的参数

lFlagBuyOpen = (diCustom3>=diCustom2) && (diCustom0>diCustom1);

lFlagSellOpen = (diCustom2>=diCustom3) && (diCustom1>diCustom0);

lFlagBuyClose = (diCustom2>=diCustom3) && (diCustom1>diCustom0);

lFlagSellClose = (diCustom3>=diCustom2) && (diCustom0>diCustom1);

买入(做多)Dicustom3必须小于或等于dicustom2

衡量一个条形图,黄线必须小于或等于蓝线

&

Dicustom0必须大于Dicustom1

如果在IFlagBuyOpen字符串中,所有这些线都是向上的,那么我们就有一笔交易可以做多。

你会注意到Iflagsellclose和Iflagbuyopen是一样的,因为在做空一个货币(卖出)时,我们希望退出交易,就像我们要买入一样,因此Iflagsellopen和iflagbuyclose也有同样的参数。

我知道这对某些人来说听起来很困惑,而对其他人来说则不是问题,但这就是你如何识别一个交叉点,根据指标的交叉点进行买入和卖出交易。

伊戈尔。

不要依赖MT4的回测。

另外,如果你需要改变参数,打开EA和Dicustom1到4,数值1.8,然后把它改为1.4或1.6,只要适合你。

Huhenyo

正如我所告诉你的,EA将在交叉买入和卖出时打开和关闭,使用第一个帖子中给出的参数。

我将根据账户的百分比添加资金经理,默认为2%。

当你们满意时,我将发布更新。

谢谢

Jorgka

 
jorgka:
我将尝试在这里回答一些问题并带来一些澄清。

其中NULL,30,这是时间框架的值。比如30=30分钟,或者如果你把它改成NULL,15,这将调用一个15的时间框架。

"StepMA_Stoch_v1 "是专家从MT指标集中调用的指标。

值,10,1.8,10这些是StepMA_Stoch_v1的输入参数,必须按顺序排列。因此,如果伊戈尔愿意,他可以从 "StepMA_Stoch_v1"、10、1.4、0改变这些参数。

嗨,Jorgka。

这一点我已经弄明白了。我在30分钟的图表上做了测试,我做了多次回测,每次都把数值从1.1改到了1.8。但是就像我说的,在两年的时间里,每次测试的交易量不超过15次......所以回测确实不可靠,就像我在其他简单策略中发现的那样。

问候...iGoR

 

回溯测试

iGoR。

我发现,如果你在回溯测试中使用每一个刻度的 选项,你会得到更多的交易。 在一个月的回测中,大约有15笔美元/日元和美元/瑞士法郎的交易。

Jorgka,

嘿,在大多数情况下,EA都能准确地进行交易。 指标的第二个设置需要是1.9而不是1.8。 这有很大的区别。 我回头检查了EA做的交易,大部分都是正确的,但有一个交易是假的,指标甚至没有接近交叉。 你知道可能发生了什么吗? 我附上一张截图,你可以看到。 我还说,有一个交叉点没有被交易。 你是否在代码中加入了在30点移动后不进行交叉交易的内容? 如果是这样的话,我认为真的没有必要在里面放这个代码。

谢谢你到目前为止的工作。 我真的认为这个EA有潜力。

附加的文件:
badtrade.jpg  192 kb
 

结果和虚假交易

好吧,我只是稍微改变了一下设置,使PeriodWATR为20,Kwatr为1.9。 我使用评估每个tick 的设置来运行测试器,图表是英镑/美元。 然后我回去重新评估了每一笔交易。 EA做了所有正确的事情,直到它来到交易#24-#28(见图)。 我不知道为什么它会做出这样的错误交易。 我还附上了刚过一个月的英镑/美元的交易结果;只要我们能弄清楚如何避免虚假交易,它们就很有希望。 如果没有这两笔虚假交易,该EA在一个月内的单手交易中会产生大约60%的回报。 不错,是吧?

谢谢大家的关心和帮助。

Huhenyo.

附加的文件:
false_trades.jpg  235 kb
results.jpg  185 kb
 

看来当前条形信号的移动足以触发一些错误的信号,谢谢你指出来。

我将做一些改变,在当前条形图的收盘时进行,这将解决虚假交易。

我正在测试这个EA,并将在下周公布结果。

我很快会有一个更新

乔尔格卡