编码帮助 - 页 522 1...515516517518519520521522523524525526527528529...786 新评论 Harry 2015.08.30 16:51 #5211 大家好。 我想知道这是否是在for循环中计算指标值 的正确方法(贯穿所有可用的条形图)。 int OnCalculate(...) { //... ArraySetAsSeries(SignalLine,false)。 //... for(int i=0; i<Bars; i++) { double ma=iMA(NULL,0,MaPeriod,0,MaMethod,MaPrice,i)。 //... SignalLine=ma; } //... } //... return rates_total } P.S. 从逻辑上讲,在这个简单的案例中,我想通过iMA对象来表示和绘制MA的复制。但我不确定我如何设置循环。我得到的结果与内置MT4计算的结果有一点区别。我不知道为什么! 谢谢 Coding help Correct way to calculate 问吧! Mladen Rakic 2015.08.30 16:54 #5212 har:大家好。我想知道这是否是在for循环中计算指标值的正确方法(贯穿所有可用的条形图)。 int OnCalculate(...) { //... ArraySetAsSeries(SignalLine,false)。 //... for(int i=0; i<Bars; i++) { double ma=iMA(NULL,0,MaPeriod,0,MaMethod,MaPrice,i)。 //... SignalLine=ma; } //... } //... return rates_total } P.S. 从逻辑上讲,在这个简单的案例中,我想通过iMA对象来表示和绘制MA的复制。但我不确定我如何设置循环。我得到的结果与内置MT4计算的结果有一点区别。我不明白为什么! 谢谢 当你使用iMA()时,顺序并不重要。 但正确的方法应该是for(int i=Bars-1; i>=0; i--) - 这样可以避免很多情况下的错误。 Harry 2015.08.31 06:18 #5213 谢谢你mladen。所以,如果我设置ArraySetAsSeries(SignalLine,false),我应该用以下方式进行迭代 for (int i = 0; i < Bars; i++) 而相反,如果ArraySetAsSeries(SignalLine,true),我应该用以下方式进行迭代 for (int = Bars - 1; i >= 0; i--) 这样做对吗? Mladen Rakic 2015.08.31 06:25 #5214 har: 谢谢你mladen。这是因为我们使用ArraySetAsSeries()函数,那么我们应该反过来迭代数组,对吗? 谢谢! 这不会改变任何东西--你会得到带有当前值的元素0,当一个新的当前值到来时,SignalLine 的元素0会被新的值覆盖。 如果SignalLine是一个缓冲区,就不要使用ArraySetAsSeries(SignalLine,false) 。 nair 2015.08.31 06:27 #5215 你好,mladen先生和Igorad先生。 衷心感谢您的智慧分享和提供的帮助。 我也是在酝酿了很久之后再次请求你们的帮助,所以希望能得到你们的关注,你们的T3适应性指标ma _ica.mq4是我最喜欢的交易指标,虽然视觉上很好,但由于没有时间,很难手动操作,所以我希望有人能帮助我编码一个专家顾问,用该指标的箭头作为买入卖出信号,用正常的EA设施如追踪,bep和sl,tp来接受订单,还有很多大小。 Mladen和Igorad应该很忙--如果他们能帮忙,我很有天赋,如果没有,愿意帮忙的人可以帮我完成这个。这是指标T3适应性ma所在的页面"https://c.mql5.com/forextsd/forum/167/t3_adaptive_ma_i-ca_2.01_alerts_nmc.mq4 我也可以要求使用其他带有T3 cci的indies,但每个indies在一个EA中单独工作,并有使用真假选项。在任何对基于lukas箭头和曲线指标的EA感兴趣的人之间,它在分析价格转向的真实曲线方面仍然需要改进,因为它基于ma,价格没有被分析,但它在外汇中都是LIMITED,否则每个人都会选择成为百万富翁。 希望在论坛朋友的帮助下,它能尽早用于实盘交易。我试着给它编码,但我不是一个程序员,所以一切都徒劳无功,因此我在这里提出帮助请求。 梦想是伟大的,但手中的东西是渺小的。 Harry 2015.08.31 06:36 #5216 哦,好的...谢谢! 在C++中,没有这样的问题。 nair 2015.08.31 06:37 #5217 你好,Mladen 希望您能考虑提供帮助,请看这个帖子-#5118,就在您的帖子#5220的上面一个帖子。 对我来说,如果能像你一样有一双清晰的手,这将是最好的礼物。 Mladen Rakic 2015.08.31 06:55 #5218 har: 哦,好的...。谢谢!在C++中没有这样的问题。 因为我总是用类似C/C++的模式处理数组,这些数组的索引从0(最古老的)到Bars-1(最新的)条。如果你对最新的条形图使用索引0,它将总是重写第0个元素。 如果你想按照C/C++的方式使用,使用一个数组,检查 其大小是否等于Bars,如果不是,则将其调整为Bars大小,然后用Bars-i-1作为索引给元素赋值。 如果它是一个缓冲区,与C/C++方式相比,索引是倒置的,那么你不必改变该循环中的任何东西--只需删除将数组设为系列的部分即可。 Harry 2015.08.31 12:28 #5219 是的,我看到了! 我也想明白了。总之只是MQL和C++之间的小差异。就我所看到的,MQL中有很多C语言!但我绝对喜欢MQL 我希望在我的指标准备好后与大家分享(如果我能够理解是否有用),并给大家一个提示 techmac 2015.09.01 07:21 #5220 har: 是的,我看到了! 我也明白了。总之,MQL和C++之间只有一些小的区别。就我所看到的,MQL中有很多C语言。但我绝对喜欢MQL ,我希望在我的指标准备好后(如果我能够理解是否有用的话)与大家分享,并给大家提供帮助 即使它们看起来很像,但当你运行它们时,却远非相似。它的执行速度 比同等的C/C++代码至少要慢100倍。 如果你可以的话,把关键部分写在C/C++ dll中--这样会快很多。 1...515516517518519520521522523524525526527528529...786 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
大家好。
我想知道这是否是在for循环中计算指标值 的正确方法(贯穿所有可用的条形图)。
int OnCalculate(...)
{
//...
ArraySetAsSeries(SignalLine,false)。
//...
for(int i=0; i<Bars; i++)
{
double ma=iMA(NULL,0,MaPeriod,0,MaMethod,MaPrice,i)。
//...
SignalLine=ma;
}
//...
}
//...
return rates_total
}
P.S. 从逻辑上讲,在这个简单的案例中,我想通过iMA对象来表示和绘制MA的复制。但我不确定我如何设置循环。我得到的结果与内置MT4计算的结果有一点区别。我不知道为什么!
谢谢
大家好。
我想知道这是否是在for循环中计算指标值的正确方法(贯穿所有可用的条形图)。
int OnCalculate(...)
{
//...
ArraySetAsSeries(SignalLine,false)。
//...
for(int i=0; i<Bars; i++)
{
double ma=iMA(NULL,0,MaPeriod,0,MaMethod,MaPrice,i)。
//...
SignalLine=ma;
}
//...
}
//...
return rates_total
}
P.S. 从逻辑上讲,在这个简单的案例中,我想通过iMA对象来表示和绘制MA的复制。但我不确定我如何设置循环。我得到的结果与内置MT4计算的结果有一点区别。我不明白为什么!
谢谢当你使用iMA()时,顺序并不重要。
但正确的方法应该是for(int i=Bars-1; i>=0; i--) - 这样可以避免很多情况下的错误。
谢谢你mladen。所以,如果我设置ArraySetAsSeries(SignalLine,false),我应该用以下方式进行迭代
for (int i = 0; i < Bars; i++)
而相反,如果ArraySetAsSeries(SignalLine,true),我应该用以下方式进行迭代
for (int = Bars - 1; i >= 0; i--)
这样做对吗?
谢谢你mladen。这是因为我们使用ArraySetAsSeries()函数,那么我们应该反过来迭代数组,对吗? 谢谢!
这不会改变任何东西--你会得到带有当前值的元素0,当一个新的当前值到来时,SignalLine 的元素0会被新的值覆盖。
如果SignalLine是一个缓冲区,就不要使用ArraySetAsSeries(SignalLine,false) 。
你好,mladen先生和Igorad先生。
衷心感谢您的智慧分享和提供的帮助。
我也是在酝酿了很久之后再次请求你们的帮助,所以希望能得到你们的关注,你们的T3适应性指标ma _ica.mq4是我最喜欢的交易指标,虽然视觉上很好,但由于没有时间,很难手动操作,所以我希望有人能帮助我编码一个专家顾问,用该指标的箭头作为买入卖出信号,用正常的EA设施如追踪,bep和sl,tp来接受订单,还有很多大小。
Mladen和Igorad应该很忙--如果他们能帮忙,我很有天赋,如果没有,愿意帮忙的人可以帮我完成这个。这是指标T3适应性ma所在的页面"https://c.mql5.com/forextsd/forum/167/t3_adaptive_ma_i-ca_2.01_alerts_nmc.mq4
我也可以要求使用其他带有T3 cci的indies,但每个indies在一个EA中单独工作,并有使用真假选项。在任何对基于lukas箭头和曲线指标的EA感兴趣的人之间,它在分析价格转向的真实曲线方面仍然需要改进,因为它基于ma,价格没有被分析,但它在外汇中都是LIMITED,否则每个人都会选择成为百万富翁。
希望在论坛朋友的帮助下,它能尽早用于实盘交易。我试着给它编码,但我不是一个程序员,所以一切都徒劳无功,因此我在这里提出帮助请求。
梦想是伟大的,但手中的东西是渺小的。
哦,好的...谢谢!
在C++中,没有这样的问题。
你好,Mladen
希望您能考虑提供帮助,请看这个帖子-#5118,就在您的帖子#5220的上面一个帖子。
对我来说,如果能像你一样有一双清晰的手,这将是最好的礼物。
哦,好的...。谢谢!在C++中没有这样的问题。
因为我总是用类似C/C++的模式处理数组,这些数组的索引从0(最古老的)到Bars-1(最新的)条。如果你对最新的条形图使用索引0,它将总是重写第0个元素。
如果你想按照C/C++的方式使用,使用一个数组,检查 其大小是否等于Bars,如果不是,则将其调整为Bars大小,然后用Bars-i-1作为索引给元素赋值。
如果它是一个缓冲区,与C/C++方式相比,索引是倒置的,那么你不必改变该循环中的任何东西--只需删除将数组设为系列的部分即可。
是的,我看到了! 我也想明白了。总之只是MQL和C++之间的小差异。就我所看到的,MQL中有很多C语言!但我绝对喜欢MQL
我希望在我的指标准备好后与大家分享(如果我能够理解是否有用),并给大家一个提示
是的,我看到了! 我也明白了。总之,MQL和C++之间只有一些小的区别。就我所看到的,MQL中有很多C语言。但我绝对喜欢MQL ,我希望在我的指标准备好后(如果我能够理解是否有用的话)与大家分享,并给大家提供帮助
即使它们看起来很像,但当你运行它们时,却远非相似。它的执行速度 比同等的C/C++代码至少要慢100倍。
如果你可以的话,把关键部分写在C/C++ dll中--这样会快很多。