エラー、バグ、質問 - ページ 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();}
//---

与えるものです。

ERROR fromfunction DoubleToString digits: 14 value: 1/10 dblVal: 0.1 strVal: 1.000000000000 dblValFromStr: 1
ERROR from function DoubleToString digits: 14 value: 1/9 dblVal: 0.1111111111 strVal: 1.1111111111 dblValFromStr: 1.111111111111
ERROR from function DoubleToString digits: 14 value: 1/8 dblVal: 0.125 strVal: 1.250000000000 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.66666666667 dblValFromStr: 1.6666666666667
ERROR from function DoubleToString digits: 14 value: 1/5 dblVal: 0.2 strVal: 2.000000000000 dblValFromStr: 2
ERROR from function DoubleToString digits: 14 value: 1/4 dblVal: 0.25 strVal: 2.50000000000000 dblValFromStr: 2.5
ERROR from function DoubleToString digits: 14 value: 1/3 dblVal: 0.3333333333 strVal: 3.3333333333 dblValFromStr: 3.3333333333
ERROR from function DoubleToString digits: 14 value: 1/2 dblVal: 0.5 strVal: 5.000000000000 dblValFromStr: 5
ERROR from function DoubleToString digits: 13 value: 1/10 dblVal: 0.1 strVal: 1.0000000000000 dblValFromStr: 1
ERROR from function DoubleToString digits: 13 value: 1/9 dblVal: 0.1111111111 strVal: 1.1111111111 dblValFromStr: 1.11111111111
ERROR from function DoubleToString digits: 13 value: 1/8 dblVal: 0.125 strVal: 1.2500000000000 dblValFromStr: 1.25
ERROR from function DoubleToString digits: 13 value: 1/7 dblVal: 0.1428571428571429 strVal: 1.4285714285714 dblValFromStr: 1.4285714285714
ERROR from function DoubleToString digits: 13 value: 1/6 dblVal: 0.1666666667 strVal: 1.6666666667 dblValFromStr: 1.666666666667
ERROR from function DoubleToString digits: 13 value: 1/5 dblVal: 0.2 strVal: 2.0000000000000 dblValFromStr: 2
ERROR from function DoubleToString digits: 13 value: 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.333333333333 dblValFromStr: 3.333333333333333
ERROR from function DoubleToString digits: 13 value: 1/2 dblVal: 0.5 strVal: 5.0000000000000 dblValFromStr: 5
ERROR from function DoubleToString digits: 12 value: 1/10 dblVal: 0.1 strVal: 1.000000000000 dblValFromStr: 1
ERROR from function DoubleToString digits: 12 value: 1/9 dblVal: 0.1111111111 strVal: 1.1111111111 dblValFromStr: 1.1111111111 11.
ERROR from function DoubleToString digits: 12 value: 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
ERROR from function DoubleToString digits: 12 value: 1/6 dblVal: 0.1666666667 strVal: 1.66666666667 dblValFromStr: 1.6666666666667
ERROR from function DoubleToString digits: 12 value: 1/5 dblVal: 0.2 strVal: 2.000000000000 dblValFromStr: 2
ERROR from function DoubleToString digits: 12 value: 1/4 dblVal: 0.25 strVal: 2.500000000000 dblValFromStr: 2.5
ERROR from function DoubleToString digits: 12 value: 1/3 dblVal: 0.3333333333 strVal: 3.33333333 333333 dblValFromStr: 3.33333333 333333
ERROR from function DoubleToString digits: 12 value: 1/2 dblVal: 0.5 strVal: 5.000000000000 dblValFromStr: 5


OS: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つのエージェントを実行し、1つ以上のコアを持つ場合、このエージェントは「中」の優先度で実行されることに注意することが重要です。コアを追加したシングルエージェントは、システム全体にそれほど影響を与えないかもしれません。


ps: スクリーンショットを見てください。低優先度でもCPU負荷は95%です。

 
Renat:

はい、これは特に、複数のローカルエージェントを最適化モードで実行するために行われます。

....

ps: スクリーンショットを見てください。低優先度でもCPU負荷は95%です。


ぜひ覚えておいてください。感謝