错误、漏洞、问题 - 页 288

 

以免重复发帖。请看一下https://www.mql5.com/ru/forum/2547/page1#comment_45265

我在那里做错了什么? 似乎与文章中的内容相同。我想学习如何与标准类合作。但我似乎做错了(。

Обсуждение статьи "Как использовать торговые классы Стандартной библиотеки при написании советника"
Обсуждение статьи "Как использовать торговые классы Стандартной библиотеки при написании советника"
  • www.mql5.com
Обсуждение статьи "Как использовать торговые классы Стандартной библиотеки при написании советника".
[删除]  
Trolls:

以免重复发帖。请看一下https://www.mql5.com/ru/forum/2547/page1#comment_45265

我在那里做错了什么? 似乎与文章中的内容相同。我想学习如何与标准类合作。但我似乎做错了(。

在那里回答了。
 

函数中的一个错误

string  DoubleToString(
   double  value,      // число
   int     digits=8    // кол-во знаков после запятой
   );

如果数字>=12

void testDoubleToString()
  {
   int i,j,cn=11,digits=DBL_DIG+1;
   double dblVal,dblValFromStr,pres=0.1;
   string dblStr;
   Print("Start testDoubleToString cn=",cn," digits=",digits);
   for(i=1; i<=digits; i++)
     {
      for(j=2; j<cn; j++)
        {
         dblVal = 1.0/j;
         dblStr = DoubleToString(1.0/j, i);
         dblValFromStr=StringToDouble(dblStr);
         if(MathAbs(dblValFromStr-dblVal)>pres)
           {
            Print("ERROR from function DoubleToString digits: ",i," value: 1/",j," dblVal: ",
               dblVal," strVal: ",dblStr," dblValFromStr: ",dblValFromStr);
           }
        }
      pres*=0.1;
     }
  }
//---
void OnStart(){testDoubleToString();}
//---

它给出了

来自函数 DoubleToString的错误 数字:14 值:1/10 dblVal:0.1 strVal:1.0000000000 dblValFromStr:1
ERROR from function DoubleToString digits: 14 value: 1/9 dblVal: 0.1111111111111111 strVal: 1.11111111111111 dblValFromStr: 1.111111111111
来自函数DoubleToString的ERROR 数字:14 值:1/8 dblVal:0.125 strVal:1.2500000000 dblValFromStr:1.25
ERROR from function DoubleToString digits: 14 value: 1/7 dblVal: 0.1428571428571429 strVal: 1.42857142857143 dblValFromStr: 1.42857142857143
ERROR from function DoubleToString digits: 14 value: 1/6 dblVal: 0.166666666667 strVal: 1.666666667 dblValFromStr: 1.66666666667
来自函数DoubleToString的错误 数字:14 值:1/5 dblVal:0.2 strVal:2.0000000000 dblValFromStr:2
来自函数DoubleToString的ERROR 数字:14 值:1/4 dblVal:0.25 strVal:2.50000000000000 dblValFromStr:2.5
ERROR from function DoubleToString digits: 14 value: 1/3 dblVal: 0.333333333333 strVal: 3.333333333 dblValFromStr: 3.333333333333
来自函数DoubleToString的错误 数字:14 值:1/2 dblVal:0.5 strVal:5.0000000000 dblValFromStr:5
来自函数DoubleToString的ERROR 数字:13 值:1/10 dblVal:0.1 strVal:1.0000000000000 dblValFromStr:1
ERROR from function DoubleToString digits: 13 value: 1/9 dblVal: 0.11111111111111 strVal: 1.11111111111 dblValFromStr: 1.11111111111
来自函数DoubleToString的ERROR 数字:13 值:1/8 dblVal:0.125 strVal:1.2500000000000 dblValFromStr:1.25
来自函数DoubleToString的ERROR 数字:13 值:1/7 dblVal:0.1428571428571429 strVal:1.4285714285714 dblValFromStr:1.4285714285714
来自函数DoubleToString的错误 数字:13 值:1/6 dblVal:0.166666666667 strVal:1.6666666667 dblValFromStr:1.6666666667
来自函数DoubleToString的ERROR 数字:13 值:1/5 dblVal:0.2 strVal:2.0000000000000 dblValFromStr:2
来自函数DoubleToString的错误 数字:13 值:1/4 dblVal:0.25 strVal:2.5000000000000 dblValFromStr:2.5
ERROR from function DoubleToString digits: 13 value: 1/3 dblVal: 0.333333333333 strVal: 3.333333333 dblValFromStr: 3.333333333333
来自函数DoubleToString的ERROR 数字:13 值:1/2 dblVal:0.5 strVal:5.0000000000000 dblValFromStr:5
来自函数DoubleToString的ERROR 数字:12 值:1/10 dblVal:0.1 strVal:1.000000000000 dblValFromStr:1
ERROR from function DoubleToString digits: 12 value: 1/9 dblVal: 0.11111111111111 strVal: 1.111111111111 dblValFromStr: 1.111111111111
来自函数DoubleToString的错误 数字:12 值:1/8 dblVal:0.125 strVal:1.250000000000 dblValFromStr:1.25
ERROR from function DoubleToString digits: 12 value: 1/7 dblVal: 0.1428571428571429 strVal: 1.428571428571 dblValFromStr: 1.428571428571
来自函数DoubleToString的错误 数字:12 值:1/6 dblVal:0.166666666667 strVal:1.666666667 dblValFromStr:1.666666667
来自函数DoubleToString的ERROR 数字:12 值:1/5 dblVal:0.2 strVal:2.000000000000 dblValFromStr:2
来自函数DoubleToString的ERROR 数字:12 值:1/4 dblVal:0.25 strVal:2.500000000000 dblValFromStr:2.5
ERROR from function DoubleToString digits: 12 value: 1/3 dblVal: 0.333333333333 strVal: 3.3333333333 dblValFromStr: 3.33333333333333
来自函数DoubleToString的错误 数字:12 值:1/2 dblVal:0.5 strVal:5.000000000000 dblValFromStr:5


操作系统: WIN7

构建:387

 
BZSP:

函数中的一个错误

string  DoubleToString(
   double  value,      // число
   int     digits=8    // кол-во знаков после запятой
   );

当数字>=12时

谢谢你,我们会看一看。
 

我如何设置图表子窗口的高度? 如果是一个函数?还是只能通过模板?

 
dentraf:

我如何设置图表子窗口的高度? 如果是一个函数?还是只能通过模板?

所有功能在帮助中都有描述。

通过模板来做。

 
В классе CArray #include <Arrays\Array.mqh> 
забыли прописать виртуальные методы Reserve()и Resize() 
 

这里有一个有趣的事情--当你默认运行STRATEGY TESTER 的时候

被设置为低优先级,现在我不得不每次都手动将其改为中等。


也许这就是它应该有的样子?

 

alexluek:

也许这就是它应该有的样子?

是的,它是专门为在优化模式下 运行多个本地代理而设计的。

重点是,测试者非常密集地使用CPU,并且很容易占用系统中所有核心的100%。如果你把优先级设置为 "中等",CPU将被加载到100%,甚至终端会耗尽资源。单核处理器的情况尤其糟糕。

这就是为什么在优化模式下,代理的默认设置是低优先级,这允许其他程序也能工作。如果计算机不忙于其他工作,那么即使在低优先级时,代理也会获得所有的CPU资源(降低CPU优先级并不意味着直接减少资源)。

最有可能的是,我们将把优先级从 "低 "改为 "低于平均水平"--这将足以使操作系统在优化模式下的全负荷下保持响应。

值得注意的是,当运行一个代理并拥有超过1个核心时,该代理以 "中等 "优先级运行。拥有额外内核的单个代理可能不会对整个系统产生那么大的影响。


ps:看看你的截图--即使在低优先级的情况下,CPU负载也有95%。

 
Renat:

是的,这样做是专门为了在优化模式下运行多个本地代理。

....

ps:看看你的截图--即使在低优先级的情况下,CPU负载也有95%。


请牢记这一点。谢谢