回溯测试多货币EA - 页 2 1234 新评论 kgo 2010.09.06 13:24 #11 在我的案例中,解决方案是IsNewBar()方法,并切换到 "Every Tick "执行方法,除非我的EA只在开放价格 上工作。 Documentation on MQL5: Standard Constants, Enumerations and Structures / Indicator Constants / Price Constants www.mql5.com Standard Constants, Enumerations and Structures / Indicator Constants / Price Constants - Documentation on MQL5 Alireza 2010.09.06 13:57 #12 trendick:阿里,我上面提到的例子是你提到的EA,它是你提到的IsNewBar()函数的来源,并且已经使用了它。你怎么解释这个?我说的是我的EA,它在两个符号上交易。一个符号 用ontick()获得 数据另一个使用Isnewbar()。当我改变它们获取数据的方式时,结果是一样的。你可以尝试一下,比较一下结果。我还尝试像上面讨论的EA一样,用isnewbar获取两个报价,也有同样的问题,但是用ontick()获取原始符号的报价,问题就解决了。当然,测试器是有问题的,我只是展示了我是如何得到我想要的结果的。 trendick 2010.09.06 16:09 #13 kgo: 在我的例子中,解决方案是IsNewBar()方法,并切换到 "Every Tick "执行方法,除非我的EA只在开盘价 上工作。 你能详细说明一下吗? 也许可以用一个代码片段来证明? 你能处理3种货币吗? trendick 2010.09.06 16:24 #14 trendick: 你能详细说明一下吗? 也许可以用一个代码片段来演示? 你能处理3种货币吗?好的,我明白你的意思。其中一个货币对用于触发一个新的条形图,对于其他货币对,你可以立即读取点子。 Bogdan Caramalac 2010.09.06 17:09 #15 你这里有一个例子:http://mqlmagazine.com/mql-programming/mql5-a-portfolio-moving-average-sample-expert/ trendick 2010.09.06 17:10 #16 Kgo,但这仍然不能解决我的问题。能否请你展示一下你的工作片段?谢谢,trendick trendick 2010.09.06 17:13 #17 TheEconomist 2010.09.06 17:09 # 你这里有一个例子:http://mqlmagazine.com/mql-programming/mql5-a-portfolio-moving-average-sample-expert/ 谢谢TheEconmist!(我以为你们坚持随机行走的假设......:-)):我马上就去查这个。 kgo 2010.09.06 22:33 #18 我做了一些新的测试,我之前的帖子是不正确的。IsNewBar()方法并没有帮助。TheEconomist展示了一个很好的例子,对于多货币EA来说,OnTick()应该如何实现。 Bogdan Caramalac 2010.09.07 13:31 #19 你能相信我甚至不知道这个IsNewBar()方法在哪里?哪个类? trendick 2010.09.07 13:45 #20 TheEconomist: 你能相信我甚至不知道这个IsNewBar()方法在哪里吗?哪个类?我们指的是第105条的方法。这里是(只有开头和结尾是相关的)。在这里,它是。/+X================================================================X+ //| IsNewBar() function | //+X================================================================X+ bool IsNewBar(int Number,string symbol,ENUM_TIMEFRAMES timeframe) { //----+ static datetime Told[]; datetime Tnew[1]; //----+ Declare variable to store sizes of variables arrays static int Size_=0; //----+ Change size of variables arrays if(Number+1>Size_) { uint size=Number+1; //---- if(ArrayResize(Told,size)==-1) { string word=""; StringConcatenate(word,"IsNewBar( ",Number, " ): Error!!! Unable to change sizes of variables arrays!!!"); Print(word); //---- int error=GetLastError(); ResetLastError(); if(error>4000) { StringConcatenate(word,"IsNewBar( ",Number," ): Error code ",error); Print(word); } //---- Size_=-2; return(false); } } CopyTime(symbol,timeframe,0,1,Tnew); if(Tnew[0]!=Told[Number]) { Told[Number]=Tnew[0]; return(true); } //----+ return(false); } 1234 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
阿里,我上面提到的例子是你提到的EA,它是你提到的IsNewBar()函数的来源,并且已经使用了它。
你怎么解释这个?
我说的是我的EA,它在两个符号上交易。一个符号 用ontick()获得 数据
另一个使用Isnewbar()。
当我改变它们获取数据的方式时,结果是一样的。你可以尝试一下,比较一下结果。我还尝试像上面讨论的EA一样,用isnewbar获取两个报价,也有同样的问题,但是用ontick()获取原始符号的报价,问题就解决了。
当然,测试器是有问题的,我只是展示了我是如何得到我想要的结果的。
在我的例子中,解决方案是IsNewBar()方法,并切换到 "Every Tick "执行方法,除非我的EA只在开盘价 上工作。
你能详细说明一下吗? 也许可以用一个代码片段来演示? 你能处理3种货币吗?
好的,我明白你的意思。其中一个货币对用于触发一个新的条形图,对于其他货币对,你可以立即读取点子。
Kgo,但这仍然不能解决我的问题。能否请你展示一下你的工作片段?
谢谢,trendick
TheEconomist 2010.09.06 17:09 #
你这里有一个例子:http://mqlmagazine.com/mql-programming/mql5-a-portfolio-moving-average-sample-expert/
你能相信我甚至不知道这个IsNewBar()方法在哪里吗?哪个类?
我们指的是第105条的方法。这里是(只有开头和结尾是相关的)。
在这里,它是。