问吧! - 页 53

 

闹钟

如何编写一个只有一次的警报,而不是一次又一次?

谢谢你的帮助。

 

许多功能在这里https://www.mql5.com/en/forum/174329

和alert_once线在这里https://www.mql5.com/en/forum/172885

 

检查 这个声明--请确认!

iLow(NULL,0,Lowest(NULL,0,MODE_LOW,1,4)<=0)

这是否说我的指标的最低值(4个柱状图)应该小于或等于0?如果不是,应该如何表述?

戴夫 提前感谢!
 
iscuba11:
iLow(NULL,0,Lowest(NULL,0,MODE_LOW,1,4)<=0)

这是否说我的指标的最低点(4个柱状体的后面)应该小于或等于0? 如果不是,应该如何说明?

戴夫 谢谢你

这是不对的,你可以看516号帖子的第52页

你计算指标最低点的方法不正确

 
asmdev:
这是不对的,你可以看看516号帖子的第52页,你计算指标最低值的方法是不正确的。
double lowestFG=9999, highestFG=-9999;//FG short for Forex_Grail, the name of my indicator histogram file.

int currentBar=0;

int endBar=4;

for(currentBar=0;currentBar<endBar; currentBar++)

lowestFG=MathMin(lowestFG, iForex_Grail(Symbol(),0,17,PRICE_CLOSE,currentBar)); //0 = anytime, 17 = maperiod of indicator.

if lowestFG <= 0 then go to next statement
这个读法对吗? 戴夫

当我把这个放到我的EA程序中时,它说iForex_Grail - 函数没有定义? Forex_Grail是我自定义指标 的名称。

也许应该这样说: lowestFG=MathMin(lowestFG, iCustom(NULL,0, "Forex-Grail Trade Indicator",period,PRICE_CLOSE,currentBar)); ?

 

发现我的错误!

戴夫

 

小数点后数位数太多了!!- 请指教。

我如何限制注释语句在图表上显示的小数位数。 现在它显示的变量结果是0.00347892,而我希望它只显示0.0035(四舍五入到下一个数字)?

谢谢你的意见! 戴夫
 
double lowestFG=9999, highestFG=-9999;

int currentBar=0;

int lastBar=4;

for(currentBar=0;currentBar<lastBar; currentBar++)

lowestFG=MathMin(lowestFG, iCustom(NULL,0,"Forex-Grail Trade Indicator",period,PRICE_CLOSE,currentBar));

Print ("Low =",lowestFG);

这是从指标[0.00至正值] 的缓冲区'0'读取的(工作正常!)。 我怎样才能让它从指标[0.00至负值] 的缓冲区' 1'中读取?

语句定义: double iCustom( string symbol, int timeframe, string name, ..., int mode, int shift) - 没有任何地方要求有缓冲区号码??????????????。 请帮助!!!! 它似乎被锁定在缓冲区'0'。

请给我指点迷津!

戴夫

 

iCustom( 字符串, int timeframe, 字符串 name, ...,int mode, int shift)

模式 "是你的缓冲区

iCustom( ... ...这里的指标参数 ... , 0, currentBar) - 将从0的缓冲区读取

iCustom( ... ...这里的指标参数 ... , 1, currentBar) - 将从第一缓冲区读取数据

这里有一些信息http://docs.mql4.com/indicators/iCustom

lowestFG=9999应该是可以的,但为了确定,可以写成

lowestFG = iCustom(NULL,0, "Forex-Grail Trade Indicator",period,PRICE_CLOSE,1,currentBar)代替。

DoubleToStr函数(http://docs.mql4.com/convert/DoubleToStr) 将限制小数点的位数,主要用于获得漂亮的#打印或警报功能。该函数不会四舍五入,而是简单地切断不需要的小数位。

如果你用你的这个双数#与另一个双数#比较,你仍然有一堆#在小数点之后。

使用NormalizeDouble(http://docs.mql4.com/convert/NormalizeDouble) 来限制小数点后的数字。

根据你的iCustom,你的指标有两个参数周期和价格(PRICE_CLOSE),检查是否正确。

 
iscuba11:
这是从指标的缓冲区'0'读出的[0.00到正](工作正常!)。

如果你的FG指标有两个参数(周期和价格),你需要在iCustom中增加一个参数,就像前面的帖子一样,如果你的FG指标有一个参数(周期),那么用缓冲区#(0或1或2或...)替换PRICE_CLOSE,这是巧合。

原因: