精英指标 :) - 页 157 1...150151152153154155156157158159160161162163164...1108 新评论 Mladen Rakic 2010.07.09 17:27 #1561 它可以工作 你可以使用类似if (previousNumberOfBars != Bars) 或if (volume[0]==1) 这样的方法,但是volume的使用很敏感(留下更多的错误空间,而且几乎可以肯定在第一次执行时不会计算出所有必要的条数,因为volume已经>1了)。 在任何情况下,我都建议反转循环的前两行,使之成为这样的东西。 if(lastbar != Time[0]) { for(int i=limit; i>=0; i--) {[/php]You need to check that condition only once regards mladen Snowski: Quick coding question: If I want an indicator to start its calculation on the open of a new bar, how can I code this? I now have this - just an example, but I doubt it's correct: [php] datetime lastbar; double buffer_a[]; double buffer_b[]; //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int bars_counted = IndicatorCounted(); if(bars_counted < 0) { return(1); } bars_counted--; int limit = Bars - bars_counted; if(limit>BarsToLoad && BarsToLoad>0) { limit = BarsToLoad; } for(int i=limit; i>=0; i--) { if(lastbar != Time[0]) { buffer_a = iMA(Symbol(), 0, FastEMA, 0, MODE_EMA, PRICE_CLOSE, i); buffer_b = iMA(Symbol(), 0, FastEMA, 0, MODE_EMA, PRICE_CLOSE, i+1); //LONG ARROW if(buffer_a > buffer_b) { ExtMapBuffer1 = Open - distance; } //SHORT ARROW if(buffer_a < buffer_b) { ExtMapBuffer2 = Open + distance; } lastbar = Time[0]; } } //---- return(0); } //+------------------------------------------------------------------+ san4x 2010.07.09 20:35 #1562 是的,当然,切换循环...好多了。 你认为哪种方法最准确,是if(previousNumberOfBars != Bars) 还是if(lastbar != Time[0]) 选项? 我个人乍一看没有明显区别,但我可能是错的。我同意成交量选项,对指标来说不是很好,在EA中可能会有效果。 非常感谢mladen,这对我糟糕的独立编码技能有很大帮助...。 干杯。 鄯善。 William Snyder 2010.07.09 21:17 #1563 chris1010: 请问Mladen或Mr Tools能不能在这个指标上增加一个弹出式和电子邮件提醒?在我看来,当指标窗口中的所有线条同时出现在指标窗口的最上方或最下方时,就可以确定一个好的买点或卖点。谢谢你的任何帮助。克里斯 给你,克里斯,因为现在市场已经关闭,所以无法现场测试警报,但在1分钟图表上弹出了警报,所以希望它应该是好的,当WSO和WRO都处于用户可选择的买入或卖出水平时,警报应该响起。我同意你的观点,当两条线都在最大或最小的时候,这个指标似乎是很好的卖出和买入机会。 附加的文件: wso-wro_alert.gif 52 kb wso-wro_ma-alerts.mq4 7 kb chris1010 2010.07.09 23:20 #1564 工具先生。谢谢你。有伟大的程序员帮助我,这很酷。 Mladen Rakic 2010.07.10 05:59 #1565 圣 坦率地说,我不知道该推荐哪一个。 Bars 是一种当前图表的内部metatrader变量,Time[0] 是一个数组结构的元素,描述了它在当前图表历史上的每一个单条。我的猜测是,首先Bars被更新以反映新的数组大小,然后新添加 到数组中的结构 被更新为数据(时间、"成交量 "和价格),但是如果他们以 "顺序方式 "来做(在代码执行完成之前不允许其他线程执行--我几乎100%确定这是它的方式--就我所知,总是有一个单独的线程在下载数据并管理我们正在谈论的所有事情。当我们打开一个新的图表,更多的数据被下载并添加到数组、变量和图表中时,我们都注意到了执行的 "暂停",然后两个变量将同时对用户可见。..访问时间应该是相同的...所以:都是一样的 问候 毫升登 Snowski: 是的,当然了,切换循环......好多了。 你认为哪种方法最准确,是if(previousNumberOfBars != Bars) 还是if(lastbar != Time[0]) 选项?我个人乍一看没有明显区别,但我可能是错的。我同意成交量选项,对指标来说不是很好,在EA中可能会有效果。非常感谢mladen,这对我糟糕的独立编码技能有很大帮助...。干杯。 桑。 Fudomyo 2010.07.11 02:50 #1566 mladen: 福道,一切都很好。只是有一些事情需要立即完成,我在TSD的工作因此受到了一些影响。现在问题解决了,所以我的时间会分得比较少。 祝大家周末愉快 问候 mladen 嗨,mladen。 我很高兴听到一切都很好 当你有机会的时候,我发布了两个指标,一个是RSX的MA,另一个是三角MA abands。 三角区间可以应用在RSX的MA上吗? 谢谢! Fudo Fudomyo: mladen, 是否有可能将RSX的MA(甚至是一个简单的RSX,如果RSX的MA不可能)与三角MA abands结合起来? 谢谢 san4x 2010.07.11 11:59 #1567 谢谢mladen,很好的解释,从来没有这样看过(MT4的线程)...又学到了一些东西。 坚持使用目前的设置(Time[0])。 干杯,桑。 Mladen Rakic 2010.07.11 14:34 #1568 ... 福道 给你 做了一些改变(实际上是一个新的指标,但这是我得出的一个想法),看看这是否是你所想的。 第一个变化是,我去掉了色块,为RSX线添加了颜色,所以现在它显示的是它在信号线 上方或下方的情况(所以颜色变化不是RSX的斜率,而是它与信号线的关系)。第二是它现在是一个单文件指标(不需要外部的Rsx指标)。 至于应用于什么:你可以选择 - 如果你设置TmaApplyToto 为0,它将应用于RSX,否则它将应用于信号线(RSX的MA)。 问候mladen Fudomyo: 嗨 mladen,我很高兴听到一切都很好 当你有机会的时候,我发布了2个指标,一个是RSX的MA,一个是三角MA abands。 三角区间可以应用在RSX的MA上吗? 谢谢! 福道 附加的文件: rsx__ma__tma_abands.gif 29 kb rsx__ma__tma_abands.mq4 9 kb casaliss 2010.07.12 04:45 #1569 插值添加 嗨 mladen 移動平均數(Mtfmovingaverage) mtf stohactic 插值添加 谢谢 附加的文件: mtf_movingaverage.mq4 5 kb mtf_stochastic.mq4 5 kb ads305z.png 9 kb Mladen Rakic 2010.07.12 05:12 #1570 卡萨利斯。 这些(还有几个 )你可以在这个主题中找到:https://www.mql5.com/en/forum/178741 他们没有这个选项,但这些指标实际上是在应用线性插值。 问候 mladen casaliss: 嗨 mladenmtf movingaverage mtf stohactic 插值添加 谢谢 1...150151152153154155156157158159160161162163164...1108 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
它可以工作
你可以使用类似if (previousNumberOfBars != Bars) 或if (volume[0]==1) 这样的方法,但是volume的使用很敏感(留下更多的错误空间,而且几乎可以肯定在第一次执行时不会计算出所有必要的条数,因为volume已经>1了)。
在任何情况下,我都建议反转循环的前两行,使之成为这样的东西。
{
for(int i=limit; i>=0; i--)
{[/php]You need to check that condition only once
regards
mladen
Quick coding question:
If I want an indicator to start its calculation on the open of a new bar, how can I code this?
I now have this - just an example, but I doubt it's correct:
[php]
datetime lastbar;
double buffer_a[];
double buffer_b[];
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int bars_counted = IndicatorCounted();
if(bars_counted < 0)
{
return(1);
}
bars_counted--;
int limit = Bars - bars_counted;
if(limit>BarsToLoad && BarsToLoad>0)
{
limit = BarsToLoad;
}
for(int i=limit; i>=0; i--)
{
if(lastbar != Time[0])
{
buffer_a = iMA(Symbol(), 0, FastEMA, 0, MODE_EMA, PRICE_CLOSE, i);
buffer_b = iMA(Symbol(), 0, FastEMA, 0, MODE_EMA, PRICE_CLOSE, i+1);
//LONG ARROW
if(buffer_a > buffer_b)
{
ExtMapBuffer1 = Open - distance;
}
//SHORT ARROW
if(buffer_a < buffer_b)
{
ExtMapBuffer2 = Open + distance;
}
lastbar = Time[0];
}
}
//----
return(0);
}
//+------------------------------------------------------------------+是的,当然,切换循环...好多了。
你认为哪种方法最准确,是if(previousNumberOfBars != Bars) 还是if(lastbar != Time[0]) 选项?
我个人乍一看没有明显区别,但我可能是错的。我同意成交量选项,对指标来说不是很好,在EA中可能会有效果。
非常感谢mladen,这对我糟糕的独立编码技能有很大帮助...。![](https://c.mql5.com/forextsd/smiles/smile.png)
干杯。
鄯善。
请问Mladen或Mr Tools能不能在这个指标上增加一个弹出式和电子邮件提醒?在我看来,当指标窗口中的所有线条同时出现在指标窗口的最上方或最下方时,就可以确定一个好的买点或卖点。谢谢你的任何帮助。克里斯
给你,克里斯,因为现在市场已经关闭,所以无法现场测试警报,但在1分钟图表上弹出了警报,所以希望它应该是好的,当WSO和WRO都处于用户可选择的买入或卖出水平时,警报应该响起。我同意你的观点,当两条线都在最大或最小的时候,这个指标似乎是很好的卖出和买入机会。
工具先生。谢谢你。有伟大的程序员帮助我,这很酷。
圣
坦率地说,我不知道该推荐哪一个。
Bars 是一种当前图表的内部metatrader变量,Time[0] 是一个数组结构的元素,描述了它在当前图表历史上的每一个单条。我的猜测是,首先Bars被更新以反映新的数组大小,然后新添加 到数组中的结构 被更新为数据(时间、"成交量 "和价格),但是如果他们以 "顺序方式 "来做(在代码执行完成之前不允许其他线程执行--我几乎100%确定这是它的方式--就我所知,总是有一个单独的线程在下载数据并管理我们正在谈论的所有事情。当我们打开一个新的图表,更多的数据被下载并添加到数组、变量和图表中时,我们都注意到了执行的 "暂停",然后两个变量将同时对用户可见。..访问时间应该是相同的...所以:都是一样的![](https://c.mql5.com/forextsd/smiles/smile.png)
问候
毫升登
是的,当然了,切换循环......好多了。
你认为哪种方法最准确,是if(previousNumberOfBars != Bars) 还是if(lastbar != Time[0]) 选项?
我个人乍一看没有明显区别,但我可能是错的。我同意成交量选项,对指标来说不是很好,在EA中可能会有效果。
非常感谢mladen,这对我糟糕的独立编码技能有很大帮助...。![](https://c.mql5.com/forextsd/smiles/smile.png)
干杯。
桑。福道,一切都很好。只是有一些事情需要立即完成,我在TSD的工作因此受到了一些影响。现在问题解决了,所以我的时间会分得比较少。![](https://c.mql5.com/forextsd/smiles/smile.png)
祝大家周末愉快![](https://c.mql5.com/forextsd/smiles/smile.png)
问候
mladen嗨,mladen。
我很高兴听到一切都很好![](https://c.mql5.com/forextsd/smiles/smile.png)
当你有机会的时候,我发布了两个指标,一个是RSX的MA,另一个是三角MA abands。
三角区间可以应用在RSX的MA上吗?
谢谢!
Fudo
mladen,
是否有可能将RSX的MA(甚至是一个简单的RSX,如果RSX的MA不可能)与三角MA abands结合起来?
谢谢谢谢mladen,很好的解释,从来没有这样看过(MT4的线程)...又学到了一些东西。
坚持使用目前的设置(Time[0])。
干杯,桑。
...
福道
给你![](https://c.mql5.com/forextsd/smiles/smile.png)
做了一些改变(实际上是一个新的指标,但这是我得出的一个想法),看看这是否是你所想的。
第一个变化是,我去掉了色块,为RSX线添加了颜色,所以现在它显示的是它在信号线 上方或下方的情况(所以颜色变化不是RSX的斜率,而是它与信号线的关系)。第二是它现在是一个单文件指标(不需要外部的Rsx指标)。
至于应用于什么:你可以选择 - 如果你设置TmaApplyToto 为0,它将应用于RSX,否则它将应用于信号线(RSX的MA)。 问候mladen
嗨 mladen,
我很高兴听到一切都很好![](https://c.mql5.com/forextsd/smiles/smile.png)
当你有机会的时候,我发布了2个指标,一个是RSX的MA,一个是三角MA abands。
三角区间可以应用在RSX的MA上吗?
谢谢!
福道插值添加
嗨 mladen
移動平均數(Mtfmovingaverage)
mtf stohactic
插值添加
谢谢
卡萨利斯。
这些(还有几个
)你可以在这个主题中找到:https://www.mql5.com/en/forum/178741
他们没有这个选项,但这些指标实际上是在应用线性插值。
问候
mladen
嗨 mladen
mtf movingaverage
mtf stohactic
插值添加
谢谢