精英指标 :) - 页 157

 

它可以工作

你可以使用类似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);

}

//+------------------------------------------------------------------+
 

是的,当然,切换循环...好多了。

你认为哪种方法最准确,是if(previousNumberOfBars != Bars) 还是if(lastbar != Time[0]) 选项?

我个人乍一看没有明显区别,但我可能是错的。我同意成交量选项,对指标来说不是很好,在EA中可能会有效果。

非常感谢mladen,这对我糟糕的独立编码技能有很大帮助...。

干杯。

鄯善。

 
chris1010:
请问Mladen或Mr Tools能不能在这个指标上增加一个弹出式和电子邮件提醒?在我看来,当指标窗口中的所有线条同时出现在指标窗口的最上方或最下方时,就可以确定一个好的买点或卖点。谢谢你的任何帮助。克里斯

给你,克里斯,因为现在市场已经关闭,所以无法现场测试警报,但在1分钟图表上弹出了警报,所以希望它应该是好的,当WSO和WRO都处于用户可选择的买入或卖出水平时,警报应该响起。我同意你的观点,当两条线都在最大或最小的时候,这个指标似乎是很好的卖出和买入机会。

附加的文件:
 

工具先生。谢谢你。有伟大的程序员帮助我,这很酷。

 

坦率地说,我不知道该推荐哪一个。

Bars 是一种当前图表的内部metatrader变量,Time[0] 是一个数组结构的元素,描述了它在当前图表历史上的每一个单条。我的猜测是,首先Bars被更新以反映新的数组大小,然后新添加 到数组中的结构 被更新为数据(时间、"成交量 "和价格),但是如果他们以 "顺序方式 "来做(在代码执行完成之前不允许其他线程执行--我几乎100%确定这是它的方式--就我所知,总是有一个单独的线程在下载数据并管理我们正在谈论的所有事情。当我们打开一个新的图表,更多的数据被下载并添加到数组、变量和图表中时,我们都注意到了执行的 "暂停",然后两个变量将同时对用户可见。..访问时间应该是相同的...所以:都是一样的

问候

毫升登

Snowski:
是的,当然了,切换循环......好多了。

你认为哪种方法最准确,是if(previousNumberOfBars != Bars) 还是if(lastbar != Time[0]) 选项?

我个人乍一看没有明显区别,但我可能是错的。我同意成交量选项,对指标来说不是很好,在EA中可能会有效果。

非常感谢mladen,这对我糟糕的独立编码技能有很大帮助...。

干杯。

桑。
 
mladen:

福道,一切都很好。只是有一些事情需要立即完成,我在TSD的工作因此受到了一些影响。现在问题解决了,所以我的时间会分得比较少。

祝大家周末愉快

问候

mladen

嗨,mladen。

我很高兴听到一切都很好

当你有机会的时候,我发布了两个指标,一个是RSX的MA,另一个是三角MA abands。

三角区间可以应用在RSX的MA上吗?

谢谢!

Fudo

Fudomyo:

mladen,

是否有可能将RSX的MA(甚至是一个简单的RSX,如果RSX的MA不可能)与三角MA abands结合起来?

谢谢
 

谢谢mladen,很好的解释,从来没有这样看过(MT4的线程)...又学到了一些东西。

坚持使用目前的设置(Time[0])。

干杯,桑。

 

...

福道

给你

做了一些改变(实际上是一个新的指标,但这是我得出的一个想法),看看这是否是你所想的。

第一个变化是,我去掉了色块,为RSX线添加了颜色,所以现在它显示的是它在信号线 上方或下方的情况(所以颜色变化不是RSX的斜率,而是它与信号线的关系)。第二是它现在是一个单文件指标(不需要外部的Rsx指标)。

至于应用于什么:你可以选择 - 如果你设置TmaApplyToto 为0,它将应用于RSX,否则它将应用于信号线(RSX的MA)。
问候

mladen

Fudomyo:
嗨 mladen,

我很高兴听到一切都很好

当你有机会的时候,我发布了2个指标,一个是RSX的MA,一个是三角MA abands。

三角区间可以应用在RSX的MA上吗?

谢谢!

福道
附加的文件:
 

插值添加

嗨 mladen

移動平均數(Mtfmovingaverage)

mtf stohactic

插值添加

谢谢

附加的文件:
 

卡萨利斯。

这些(还有几个 )你可以在这个主题中找到:https://www.mql5.com/en/forum/178741

他们没有这个选项,但这些指标实际上是在应用线性插值。

问候

mladen

casaliss:
嗨 mladen

mtf movingaverage

mtf stohactic

插值添加

谢谢