莫兰斯的错误有谁知道? - 页 3

 

RJo:

说到这里,我还没有看到一个有缺陷的mq4 的ex4的功能从SB。

你已经发布了有缺陷的mql4代码....看起来Molanis并不比EA Builder好。
 
RJo:


啊,那么......计算机是最擅长交易的,因此应该免除人类。


不....,计算机在自动 交易方面是最好的;)
 
RaptorUK:
你已经发布了有缺陷的mql4代码....看起来Molanis并不比EA Builder好。


"有缺陷 "是相对于ex4文件而言的,因为ex4比mq4功能 更强。正如我在第一篇文章中所说,我不是一个编码员。是的。谢谢你的具体诊断。哦,对了...你没有。

 
RJo:


"有缺陷 "是相对于ex4文件而言的,因为ex4比mq4功能更强。正如我在第一篇文章中所说,我不是一个编码员。是的。谢谢你的具体诊断。哦,是的......你没有。

我不需要重复WHRoeder已经给过的东西。
 
JDeel:

我们为什么不开始用汇编程序编程?我们可以在现有的最低水平上控制一切(仅次于机器代码)。是的,这需要更多的努力来学习,但我们一定会得到如此小的和超级优化的代码这真是太神奇了,你们不觉得吗,各位?

deVries,Molanis不是我的工具,我从来没有用它做过EA。但我看到你不是EA构建者的粉丝,我可以建议你永远不要尝试使用它们。只需使用MQL4/MQL5,这并不被禁止。有的人最喜欢粉红色,有的人最喜欢蓝色。这一直都是这样的,并将继续下去。


不要改变我的话....证明给我们看,你可以用我写的工具正确编码一个专家顾问。我还是那个意思...

我从未写过Molanis是你的工具。如果你在谷歌上搜索EABuilders,你会发现其他的。也许你是一个NoProgra Builder的用户...

你认为它是一个可以为MetaTrader4正确编码你的EA的工具,那么就用那个构建器来证明吧。

但也有人建议使用EABuilder或推广它来使用它们。

如果你想推广任何产品,那么请通过证明来确定该产品是好的。

而我仍然没有看到有人成功地做到这一点....

这些工具的最大缺点是,有些人认为不需要了解mq4的基础知识,因为一个工具就可以让你的产品变得更好。

但他们不知道他们从该工具中得到了什么质量....。或者他们不知道他们可以通过互联网得到的程序(免费或不免费)中的错误。

 
RJo:

谢谢你的具体诊断。哦,是的......你没有一个。

我给你一个具体的例子 . .

int CLOSELONG(string symbol_c) {
 CloseAllPositions(symbol_c,OP_BUY,MagicNumberLong);
 CloseAllPositions(symbol_c,OP_BUY,MagicNumberLong);
 return(0);
}

//CLOSESHORT closes short positions
/*
*** Generated with Molanis Strategy Builder 3.1 ***
*** www.molanis.com ***
*** Released 2010-02-20 ***
*/
int CLOSESHORT(string symbol_c) {
 CloseAllPositions(symbol_c,OP_SELL,MagicNumberShort);
 CloseAllPositions(symbol_c,OP_SELL,MagicNumberShort);
 return(0);
}

这两个函数 两次调用同一个函数。CloseAllPositions,第一次是长线,第二次是短线 ......它为什么要这样做?它这样做是为了清理第一次运行CloseAllPositions时未能关闭的订单,为什么它未能关闭头寸? 因为用于关闭这些头寸的循环计数上升,现在下降 ......你已经知道为什么会失败,因为你已经阅读了我就这个主题创建的主题。

因此,Molanis的好心人没有理解为什么有些头寸没有平仓,而是做了一个修正 ...... 第二次调用同一个函数来整理第一次之后的情况。

 

谢谢你发布Molanis的代码,RJo,我稍后会审查它 - Molanis的地段计算非常糟糕。我认为Molanis/EA SB的用户是快乐的用户,直到他们学会mql,到那时他们会从完全不同的角度看待Molanis/EA SB。

我认为我们最好先捍卫我们的钱,而不是捍卫Molanis/EA SB--或我们决定使用它。)

 
RJo:
印地语。


谢谢你发布的代码 ....

像WHRoeder那样善于快速指出错误的人,我不是,再说也没有意义了

但如果你不知道如何编码,你可以做一些其他的事情,你看这里....

.

我做了一个测试,看看指标的行为,这也给出了一些警告,做了两张图片

从2012年1月1日开始测试1分钟(使EA不交易)。

在这张图片中,你可以看到指标测试前的行为

以及测试开始后的行为

如果你在测试中放置一个不使用该指标的EA,你也会看到这种行为。

.

这也是一个警告,在你使用它之前,请仔细看看代码或指标的行为。

.

看起来这个指标的代码不是由Molanis制作的,因为它以..... 开始。

// This is Not Tested , Use At Your Own Risk !

//+--------------------------------------------------------------------------+
//| 3 MA Cross w_Alert v2.mq4                                                |
//| Copyright © 2005, Jason Robinson (jnrtrading)                            |
//| http://www.jnrtading.co.uk                                               |
//| 3 ma conversion and Alert , David Honeywell , transport.david@gmail.com  |
//| http://finance.groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/ |
//+--------------------------------------------------------------------------+

/*
  +-------------------------------------------------------------------------------+
  | Allows you to enter 3 ma periods and it will then show you and alert you at   |
  | which point the 2 faster ma's "OPEN" are both above or below the Slowest ma . |
  +-------------------------------------------------------------------------------+
*/   

我认为这个指标的错误在于它计算的是未来。

   for(i = 0; i <= limit; i++)
    {
      
      counter=i;
      Range=0;
      AvgRange=0;
      for (counter=i ;counter<=i+9;counter++)
       {
         AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
       }
      Range=AvgRange/10;
       
      fasterMAnow      = iMA(NULL, 0, FasterMA, FasterShift, FasterMode, PRICE_CLOSE, i+1);
      fasterMAprevious = iMA(NULL, 0, FasterMA, FasterShift, FasterMode, PRICE_CLOSE, i+2);
      fasterMAafter    = iMA(NULL, 0, FasterMA, FasterShift, FasterMode, PRICE_CLOSE, i-1);
      
      mediumMAnow      = iMA(NULL, 0, MediumMA, MediumShift, MediumMode, PRICE_CLOSE, i+1);
      mediumMAprevious = iMA(NULL, 0, MediumMA, MediumShift, MediumMode, PRICE_CLOSE, i+2);
      mediumMAafter    = iMA(NULL, 0, MediumMA, MediumShift, MediumMode, PRICE_CLOSE, i-1);
      
      slowerMAnow      = iMA(NULL, 0, SlowerMA, SlowerShift, SlowerMode, PRICE_CLOSE, i+1);
      slowerMAprevious = iMA(NULL, 0, SlowerMA, SlowerShift, SlowerMode, PRICE_CLOSE, i+2);
      slowerMAafter    = iMA(NULL, 0, SlowerMA, SlowerShift, SlowerMode, PRICE_CLOSE, i-1);
当 "i = 0 "时,"i-1 "是未来.....。
 
WHRoeder:

Ichi_Cloud_EA.mql4,排名不分先后

  1. 外部的Is_micro_account,而不是通过Market_info来计算它
  2. 使用micro_account和NormalizeDouble假设lotStep是0.1 0或0.01。不允许有其他经纪人定义的 值。
  3. 外部的FiveDigits而不是计算它。只测试3或5允许的标准对,jpy类型的对。交易金属FAIL。为什么对无效的设置进行测试。
  4. 全局PipMultiplier在图表变化时不会 重置。
  5. 很多外部的bools不能被策略测试。
  6. 没有理由使用两个神奇的数字
  7. 只有在TradingStartTime和TradingEndTime之间的小时才会交易。不可能 设置超过午夜的时间(例如,从2000年开始,到0600年结束,即只在悉尼时段)。
  8. 使用PreviousBarCount==Bars。Bars不可靠 (图表中的最大条数)Volume不可靠(你可能错过ticks)总是使用时间。
  9. 使用iClose(Symbol(),0,1),而不是更简单更快速的Close[1]。
  10. 在Init中 Slippage = Slippage*PipMultiplier; 意味着每次你改变图表(货币对或时间框架)时,Slippage都会增加3 、30、300、3000!
  11. 如果(条件)boolVar= true;否则boolVar= false;当它可以使用simplier boolVar= condition时,magiccond和其他bool使用。
  12. 如果(iClose() <> iCustom())完全相同的iClose和iCustom调用4次以上,从不缓存数值。
  13. 在关闭时计数。调用函数两次。向上计数意味着它将错过每一个其他订单。调用函数两次意味着它在4个或更多的未平仓订单上失败 总是倒数。
  14. "M-ERROR : Expiration has to be at least 1 minute. "刚刚有一个关于这个 到期 时间的帖子应该是10分钟以上! 我最关心的是第10条。
  15. 对于挂单,调用Normaliszedouble(price, Digits),当ticksize != Point时,将无法工作

由于最关心第10条,我首先调查了它。当我发现这个时,我正在给Molanis写一个巨大的支持请求。

EA代码中使用的滑点是一个外部整数变量(extern int)。

"在执行init()之前,外部变量将获得用户在设置工具栏中设置的值,在执行init()时,外部变量将有用户设置的新值。因此,外部变量的新值从执行init()开始的专家顾问的新会话(init - start - deinit)的时刻开始生效。"(https://book.mql4.com/variables/types)

这样看来......虽然全局变量在执行init()时通常被忽略,而支持旧值,但外部变量在执行init()时被更新。无论我换多少次图表,滑点仍被设置为3(或我设置的任何数值)。我相信这就是EA的设计运作方式。

 
RJo:
这样看来......虽然全局变量在执行init()时一般会被忽略而改用旧值,但外部变量在执行init()时被更新。

无论我换多少次图表,滑点仍然设置为3(或我设置的任何数值)。我相信这就是EA的设计运作方式。

你甚至懒得阅读 你发布的链接(https://book.mql4.com/variables/types),它说 "全局变量在说明 执行特殊功能之前只初始化一次 "。

全局变量和静态变量是在加载EA的时候设置的,而不是在deinit/init循环中设置的。

在Slippage = Slippage * 10之后添加一个打印语句,并运行它,改变图表或时间框架,如果你不想相信我们的文件,可以看看日志。