2007年自动交易锦标赛:专家的常见错误 - 页 8

 
无论是哪种情况
 if(OrderStopLoss()!=(Bid-Point*TrailingStop))
无论哪种方式,我们都要检查止损是否以点为单位,表达是否以点为单位。

另外,谁需要以0.1为增量的手数,且最多有5手的限制

TmpRound = MathRound(Lots/0.1);
        Lots = TmpRound*0.1;       
        if(Lots>5)Lots=5;
        if(Lots<0.1)Lots=0.1;
 
1)不仅要找出专家的常见错误,而且要展示解决这些问题的方法,这将是一件好事。

2)它对每个人都有用。但是,例如,由其开发者编写的经典MACD Sample.mq4专家顾问作为一个例子,由于错误#1,其本身不会通过测试。
为什么一个初级交易员 会看到一个正确解决方案的例子?

3)顺便说一下,留下一个简单的专家顾问,例如,基于中位数的专家顾问,作为一个例子,满足所有的要求,为专家顾问的编程设定良好的规则,这是一个很好的主意。很多人都会感谢它。这将是对MQL4作为建立自动交易系统的基础的良好推广。
 
AstaLavista:
1)不仅要找出EA中的常见错误,还要展示解决这些问题的方法,这将是一个好主意。

2)所有人都会从中受益。但是,举例来说,作为例子编写的经典MACD Sample.mq4专家顾问将无法通过测试,因为错误#1。
为什么一个初级交易员会看到一个正确解决方案的例子?

3)顺便说一下,布置一个简单的专家顾问,例如,基于平均值的专家顾问,作为一个满足所有要求的例子,并定义了专家顾问编程的良好规则,这是一个好主意。很多人都会感谢它。这将是对MQL4作为建立自动交易系统的基础的良好推广。


金玉良言!

我希望至少在计划中的 "向导 "代码创建模板中能考虑到这一点。

 
2 AstaLavista:Rosh的尾随代码更正确(尽管你应该在括号内的比较行 中将oldTP改为oldSL,newTP改为newSL)--他的条件是">"。在你的案例中,如果价格回滚,那么尾盘也将回滚,因为条件将得到满足
 
Stepler2442:
2 AstaLavista:Rosh的尾随代码更正确(尽管你应该在括号内的比较行中将oldTP改为oldSL,newTP改为newSL)--他的条件是">"。在你的案例中,如果价格回调,尾盘也会回调,因为条件会得到满足
在这种情况下,只要将海湾的情况替换为
 if(OrderStopLoss()<(Bid-Point*TrailingStop)

当数值相等时,该条件将不被满足,以避免错误#1,而当数值低于设定的止损时,将不进行修改--换句话说,它将作为一个完整的跟踪止损来运作。
OrderStopLoss() и (Bid-Point*TrailingStop)

 
Stepler2442:
2 AstaLavista:Rosh的尾随代码更正确(尽管你应该在括号内的比较行中将oldTP改为oldSL,newTP改为newSL)--他的条件是">"。在你的案例中,如果价格回滚,那么尾盘也将回滚,因为条件将得到满足
谢谢你,我改正了。
 
AstaLavista:
Stepler2442:
2 AstaLavista: Rosh的尾随代码更正确(尽管你应该把括号里的oldTP改为oldSL,newTP改为newSL)--他有">"的条件。而在你的情况下,如果价格回滚,那么尾随也会回滚,因为条件会得到满足!

在这种情况下,只需用 。
 if(OrderStopLoss()<(Bid-Point*TrailingStop)


是的,它将会起作用。Rosh建议的追踪的唯一区别和一些优势是,有了它,你不仅可以轻松地进行追踪,还可以进行分步追踪,这样就不用担心每一个点,也不用用大量的修改来打扰你的经纪人:)
 

不幸的是,有时它不起作用(我以前也有过这种情况),但这总是会起作用。

if(NormalizeDouble(OrderStopLoss(),Digits) < NormalizeDouble(Bid-Point*TrailingStop,Digits))
 
如果我们能找到一切的最佳解决方案,以模范顾问的形式,那就太好了......
 

先生们,EA的自动测试 产生的日志是否可以下载查看?我在我的个人资料中找不到它。