[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 149

 
avatara:

在比较价格时,我总是使用某个+/-epsilon=Point*0.01。

乘以1,000,000不会有任何作用。相信我。

我不太明白为什么会有一个问题<- 错误?

在文件中。

digits   -   Precision format, number of digits after decimal point (0-8). 

也就是说,最多可以有8位小数,而问题提到了10位--也许这就是问题所在?

 
Elenn:

当比较两个双倍类型的变量时,有时会得到一个不正确的结果。这可能是因为其中一个变量可能比另一个变量略大或略小(例如,10位数)。在大多数情况下,使用NormalizeDouble函数并没有帮助。有些人建议将一个变量减去另一个变量,但在这种情况下,如何最正确地构建一个表达式if(a>=b),将一个变量减去另一个变量?或者也许有其他的方法?

我想起了很久以前自己观察到的一个问题(也许从那时起有些变化,我不知道)。

a=5,c=4.0。

从MQ的角度来看,在这种特殊情况下,a>c不一定是真的。

如果a=5.0,c=4.0,或者a=5,c=4,则为真。

 

下午好!

假设我们有两个数字1.4451和1.4429。

如何从这些数字中取出1.445[1]和1.442[9]的最后一位数字?

 
TEXX:

下午好!

假设我们有两个数字1.4451和1.4429。

如何从这些数字中取出1.445[1]和1.442[9]的最后一位数字?

x = (10000 * y) % 10
 
Zhunko:
x = (10000 * y) % 10


能否用数字写给白痴们...

提前感谢!!。

 

日安!我可以重复一遍吗?我在我的EA中使用MACDAC作为趋势过滤器,是否有可能使我的EA只从macdak上的某个条形开始分析信号,然后当趋势改变时,一切又会改变?例如MAKDAK>0开始的趋势,只有在Makdak大于0的第15根柱子之后才开始分析信号?

谢谢你!

 
TEXX:


能否用数字来写,这样对于白痴...

提前感谢!!。


1.MQL4参考(MetaEditor)-->语言基础-->运算和表达式-->算术运算
2.教程 -->https://book.mql4.com/ru/basics/expressions
x = (10000 * 1.4451) % 10,其中"%"是算术运算 "除法的余数"(在我们的例子中为 "10")," *"是算术运算 "数值的乘法"。
 
SeALALex:

你好,我可以重复一下吗?我在我的EA中使用MACDAC作为趋势过滤器,是否有可能使我的EA只从macdak上的某个条形开始分析信号,如果趋势改变,再开始分析信号?例如,MACD>0开始一个趋势,只有在macdak高于0的第15条后才开始分析信号?

谢谢你!

问题是什么?记住MACD越过0的Bar(时间),对于每个新的Bar,比较它离它有多远。如果Delta>15 => 继续。

 

请告知什么是错的!



阿凡达
1
smith 06.09.2011 13:08
我做了一个提示器,根据策略,我应该在相对于开盘价(h1)的每小时下一个订单。当在结果栏上测试时,一切都很好,但当在所有时间段上测试时(然而,在真实的交易中),所有时间的每一个价格变化都是一个接一个的订单!(我怎么能控制它呢!?我在MT4和MT4终端上也试过了。请为这种问题建议一个函数,最好能有一个例子。
 
sergeev:

请告知什么是错的!



1
smith 06.09.2011 13:08
我做了一个提示器,根据策略,我应该在相对于开盘价(h1)的每小时下一个订单。当在结果条上测试时,一切都很好,但当在所有时间段上测试时(然而,在真实的交易中),所有时间的每一个价格变化都是一个接一个的订单!(我怎么能控制它呢!?我在mt4和mt4终端也试过了。请为这种问题建议一个函数,最好能有一个例子。

..当使用 "所有蜱虫 "方法进行测试时。

全局变量在开始时被设置(在start()之前)。

datetime TimeHandle = 0;

start() {
   i = 0;                        // Для Советников
   if(TimeHandle!=Time[i]) {
      TimeHandle = Time[i];

   . . . 

   }
}