关于MQL4文件的讨论 - 页 16 1...91011121314151617181920 新评论 Sceptic Philozoff 2007.03.20 10:04 #151 Yurixx: 而且我希望能明确说明什么时候需要进行双重归一化。 确切地说,这里有一个明显的误解。这个函数的帮助给出了一个例子,这个函数完全没有用处。 double normalizeDouble( double value, int digits) 将浮点值四舍五入到给定的精度。返回归一化的双倍类型的值。 计算出的StopLoss和TakeProfit值,以及挂单的开盘价 必须被归一化,其值被储存在预先定义的数字 变量中。 参数。 价值 - 浮点值。 数字 - 精度格式,小数点后的位数(0-8)。 样本。 double var1=0.123456789; Print(DoubleToStr(NormalizeDouble(var1,5),5)); // output: 0.12346 这种双重转换让我在第一次看到时感到非常困惑。事实上,当把它输出到专家顾问的日志中时,就会发现 Print( DoubleToStr( var1, 5 ); 也许有一些交易函数的例子会更有参考价值,也就是说,那里才是真正需要规范化的地方。stdlib.mq4中的CompareDoubles()函数的例子也会很有参考价值(这是初学者几乎总是踩到的地方)。 // Функция корректного сравнения двух переменных типа double из библиотеки stdlib.mq4 bool CompareDoubles(double number1,double number2) { if(NormalizeDouble(number1-number2,8)==0) return(true); else return(false); } 雷纳特,这不是一个选项吗? PSmith 2007.03.20 10:37 #152 既然我们在谈论这个问题,我想问一个我已经纠结了一段时间的问题。下面是一个示例代码。 int start() { double haOpen, haHigh, haLow, haClose; if(Bars<=10) return(0); ExtCountedBars=IndicatorCounted(); //---- check for possible errors if (ExtCountedBars<0) return(-1); 第一个return(0)和第二个return(-1)的根本区别是什么? 它是如何影响一个指标(或专家顾问)的执行的? 当返回一个负值时会发生什么? 而我是否可以写一些类似的东西。 void start() { // //... // return; } Rashid Umarov 2007.03.20 11:17 #153 原则上没有区别,因为返回值不被终端分析(目前)。事实上,这是一种记录方式,可以帮助程序员自己理解,在这种情况下,start()有一个非标准的终止(值减1)。 ANDREAS BOURINARIS 2007.03.20 12:58 #154 PSmith: 而我是否可以写成这样: void start() { // //... // return; } 比如说,我最近就是这样写的。:)此外,我甚至根本不使用最终回报。似乎在文档的某个地方甚至说过,在像void这样的 函数中,最后的返回是不必要的。 Sceptic Philozoff 2007.03.20 13:12 #155 这里有另一个问题:为什么函数 doubleiVolume( 字符串, int timeframe, int shift) 返回双倍类型的值? Rashid Umarov 2007.03.20 13:14 #156 原本不是双倍的,但在某些时候,突然发现int类型 并不总是适合存储量(例如,对一个高度波动的工具采取月度时间框架)。 在这种情况下,很容易出现溢出错误。 Sceptic Philozoff 2007.03.20 13:36 #157 从文档(数据类型)中可以看出:整数常数可以承担从-2147483648到2147483647的 值。2002年7月,欧元兑美元:历史上每个月的最大点数,670000。即使有这个最大的勾股量,也需要3000个月,也就是250年,才能获得溢出。另一方面,数量可能进一步增长,所以这个数字在理论上并不是那么遥不可及...... Rashid Umarov 2007.03.20 13:50 #158 Mathemat: 从文档(数据类型)中可以看出:整数常数可以承担从-2147483648到2147483647的 值。2002年7月,欧元兑美元:历史上每个月的最大点数,670000。即使有这个最大的勾股量,也需要3000个月,也就是250年,才能获得溢出。另一方面,数量可能进一步增长,所以这个数字在理论上并不是那么遥不可及...... 我自己也问过这个问题,得到的答案正是如此。尽管这很难让人相信。但是,如果你把股票市场的报价放入MT4 ... Sceptic Philozoff 2007.03.20 14:02 #159 同月_DJI - 42228720!是啊... Yurixx 2007.03.20 14:52 #160 Rosh,如果我对你的沉默理解正确的话,对于哪些情况和哪些表达式/变量需要规范化,没有明确的说法。如果是这样的话,也许可以回答一个更简单的问题:计算值的规范化形式是否为 int StLs=25。 double prc = Ask + StLs*Point; 或者我应该在实验中自己发现这个问题? 1...91011121314151617181920 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
而且我希望能明确说明什么时候需要进行双重归一化。
计算出的StopLoss和TakeProfit值,以及挂单的开盘价 必须被归一化,其值被储存在预先定义的数字 变量中。
这种双重转换让我在第一次看到时感到非常困惑。事实上,当把它输出到专家顾问的日志中时,就会发现
也许有一些交易函数的例子会更有参考价值,也就是说,那里才是真正需要规范化的地方。stdlib.mq4中的CompareDoubles()函数的例子也会很有参考价值(这是初学者几乎总是踩到的地方)。
雷纳特,这不是一个选项吗?
第一个return(0)和第二个return(-1)的根本区别是什么?
它是如何影响一个指标(或专家顾问)的执行的?
当返回一个负值时会发生什么?
而我是否可以写一些类似的东西。
而我是否可以写成这样:
从文档(数据类型)中可以看出:整数常数可以承担从-2147483648到2147483647的 值。2002年7月,欧元兑美元:历史上每个月的最大点数,670000。即使有这个最大的勾股量,也需要3000个月,也就是250年,才能获得溢出。另一方面,数量可能进一步增长,所以这个数字在理论上并不是那么遥不可及......
从文档(数据类型)中可以看出:整数常数可以承担从-2147483648到2147483647的 值。2002年7月,欧元兑美元:历史上每个月的最大点数,670000。即使有这个最大的勾股量,也需要3000个月,也就是250年,才能获得溢出。另一方面,数量可能进一步增长,所以这个数字在理论上并不是那么遥不可及......
我自己也问过这个问题,得到的答案正是如此。尽管这很难让人相信。但是,如果你把股票市场的报价放入MT4 ...
Rosh,如果我对你的沉默理解正确的话,对于哪些情况和哪些表达式/变量需要规范化,没有明确的说法。如果是这样的话,也许可以回答一个更简单的问题:计算值的规范化形式是否为
int StLs=25。
double prc = Ask + StLs*Point;
或者我应该在实验中自己发现这个问题?