问吧! - 页 54

 

缓冲区为0 的可能解决方案。

int currentBar=0;

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

double highestFG = lowestFG;

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

for(currentBar=0;currentBar<4; currentBar++) highestFG =MathMax(highestFG , iCustom(NULL,0, "Forex-Grail Trade Indicator",period,PRICE_CLOSE,0,currentBar)) 。

你需要为缓冲区#1重新做一遍

 
iscuba11:
我如何限制注释语句在图表上显示的小数位数的数量。 现在它显示的变量结果是.00347892,而我希望它只显示.0035(四舍五入到下一个数字)?
感谢你的意见! 戴夫

函数 IndicatorDigits

 

首先,我想感谢你们所有人对我的帮助。 我相信我现在可以把我的新EA上线进行测试了。

我仍然有一个关于小数点位的问题。

评论语句是由EA生成的,而不是由指标生成的。 我相信指示性数字的功能 是在指标本身而不是在EA中使用的。 难道没有一个简单的四舍五入的变量,我可以使用。 为什么他们把这种语言搞得这么复杂。 即使是基本的语言可能也能做到这一点!

像往常一样,我们欢迎知识和智慧的反馈。 如果你能提供帮助,请帮助我们。

谢谢大家

 

我终于读对了你的帖子,试试Comment(DoubleToStr(doubleVariable, 4))。

 

这就成功了! 现在要进行调整和测试。 你们都祝福了我--谢谢!

以耶稣的名义,祝大家平安和爱! 戴夫牧师
 

请提供更多帮助!

if(currency_decimal == 2) OpenTriggerLevel = DoubleToStr(OpenTriggerLevel,2);

我想做的是,当用户在EA设置中从4位中选择2(currency_decimal)时,EA会自动将默认的OpenTriggerLevel从小数点后4位改为2。 这样的改变必须发生在像USDJPY这样的小数点后2位的货币上。

显然,编译器不喜欢上述语句中的第二个"="符号

继续感谢您的帮助!谢谢您的意见。

戴夫
 

MQL4有预定义的变量Digits,它对应于对的小数位数。

DoubleToStr(OpenTriggerLevel, Digits)。

代码是正确的,可能是变量定义的错误。

 
asmdev:
MQL4有预定义的变量Digits,它对应于一对小数的位数。

DoubleToStr(OpenTriggerLevel, Digits)。

代码是正确的,可能是变量定义中的错误。

我试过这样做,但它仍然显示OpenTriggerLevel为0.0004而不是0.04。

if(currency_decimal == 2) DoubleToStr(OpenTriggerLevel,2);

还是很困惑吗?

 
iscuba11:
if(currency_decimal == 2) OpenTriggerLevel = DoubleToStr(OpenTriggerLevel,2);[/PHP]

What I am attempting to do is have the EA automatically change the default OpenTriggerLevel from 4 decimal places to 2 when the user selects 2 (currency_decimal) from 4 in the EA setup. Such a change would have to take place on a currency like USDJPY which is 2 decimal places.

Evidently the compiler does not like the second ' = ' sign in the above statement.

With continued appreciation, Thanks in Advance for your input assistance!

Dave

这句话的问题在于,变量 "OpenTriggerLevel "是 "double "类型,而该函数返回的是 "string"。因此,虽然这段代码在语法上是正确的,但在语义上却是错误的,我相信这就是编译器抱怨的原因。

如果你想在一个变量中携带字符串,你需要一个变量来做这件事。否则你可以在'Comment'参数中使用'DoubleToStr'函数来替换目前写着'OpenTriggerLevel'的地方。那里可以说

[PHP]DoubleToStr( OpenTriggerLevel, currency_decimal )

而你根本不需要'if ...'语句。

 

有谁知道如何通过脚本获得每个买入、卖出、买入止损、卖出止损、买入限价和卖出止损的总额? 谢谢。

原因: