[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 79

 
albion:
我请所有的专家看一下这个主题https://forum.mql4.com/ru/38745#429784。

请开始写你自己的代码,并在这个主题中讨论你不明白的地方,别忘了显示你遇到困难的代码部分
 
drknn:

有什么想法吗?
 
NameLess:


point_low=NormalizeDouble(iBands(NULL,0,50,2,0,PRICE_CLOSE,MODE_LOWER,0),Digits) 。

(wot)


那么数字等于什么呢?创建一个新的脚本,在其中你只写一行。

Print("Дигитс данной валютной пары нормализует до ",Digits," знаков после запятой");
 
drknn:


数字等于什么?创建一个新的脚本,在其中你只写一行。


已经检查过了,它是正确的(它是一个终端常数。
 
drknn:


数字等于什么?创建一个新的脚本,在其中你只写一行。


我试图找到iMA的源代码,也许是转换工作不正常,因为所有的计算都来自IMA,我没有更多的想法()
 
NameLess:

已经检查过了,它是正确的(它是一个终端常数。

你没有回答我的问题。这个货币对的位数是多少?顺便问一下,这是什么类型的货币对,它有多少个小数位,每格移动多少个点?
 
drknn:

你还没有回答我的问题。对于一个特定的货币对,数字等于什么。顺便问一下,这是一个什么样的货币对?

Digits是5,它是一个常数,不能取任何其他值。 eurobucks
 
NameLess:

位数等于5,这个常数不能取不同的值。 eurobucks对


换个方式试试。在Start函数的第一行写下以下内容。

string SMB=Symbol();
int DGS=MarketInfo(SMB,MODE_DIGITS);
Print("Дигитс = ",Digits,"  DGS = ",DGS);
string Val="";
Val = iBands(NULL,0,50,2,0,PRICE_CLOSE,MODE_LOWER,0);
double point_low=iBands(NULL,0,50,2,0,PRICE_CLOSE,MODE_LOWER,0);
Print("Val = ",Val,"  point_low до нормализации = ",point_low);
point_low = NormalizeDouble(point_low,5);
Print("point_low после нормализации = ",point_low);
 

也许那里的值以零结尾,而这个最后的零在归一化过程中被简单地丢弃了?被丢弃是因为条目0.1等同于0.10,0最好被丢弃?

P.S.

你知道,不能接触到终端和你使用的那些引号,要了解什么是什么是有问题的--只剩下一件事--实验。

 
drknn:


换个方式试试。在Start函数的第一行写上以下内容


谢谢你!我将试一试!