MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1940

 
皆さん、こんにちは。mql4でのインジケータ呼び出しの 仕組みについて教えてください。ループ内でCCIの周期を変えていますが、繰り返し回数が205回以上になると、CCIはゼロを描き始め、別のバッファに描画します。num=204 の場合は、500 でも良いが、num=205 の場合は、最大で 207 になり、0 を含むことになる。チャートには数千本のバーが描かれています。ループ内のピリオドを変更しなければ、もちろん全てOKです。その理由は何でしょうか。複数のインジケーターコールで常に問題に直面しています。対処法をアドバイスしてください!記事を読むのもいいかも?
   if(rates_total>prev_calculated)
   {
      int num=205;
      period =2;   

         for(int i=0; i<=num; i++)
         {
            cci[i] = iCCI(NULL,0,period,PRICE_CLOSE,i);   
            period++;
         }
      ////////////
      period=208;

      for(int i=0; i<100; i++)
      {
         CCI[i] = iCCI(NULL,0,period,PRICE_CLOSE,i);
      }
    
   }
num=300の場合、最大周期は66となる
ファイル:
iCCI.mq4  10 kb
 
時々、インジケータを実行しようとすると、動作はするのですが、ターミナルがハングアップしてしまいます。
 
せめて、どっちを掘ればいいのか教えてください。
 
Aleksandr Kononov #:
せめて、どっちを掘ればいいのか、よく言うだろ?

また、何のためにこのような研究をしているのですか?実用的な意味があるのか?それとも興味本位で?

 
Aleksandr Kononov #:
せめて、どっちを掘ればいいのか教えてください。

.

 
研究ではなく、現実的な問題なんです。ただ、この例では、一番大事なことを残して、全体が取られてしまっているのです。私は常にこの問題に遭遇し、直感で解決することにうんざりしています。なぜメモリが足りなくなるのかを説明したいのですが、その時に、指標となる呼び出し 関数が複数回使用されると、こんな問題が発生します。ピリオドを変えずに呼べば、すべてOKです。でも、期間を変えると問題が出てくるんです。
 
Aleksandr Kononov インジケータコール 関数を複数回使用した場合に、なぜメモリ不足になったり、問題が発生したりするのかを説明したい。ピリオドを変えずに呼べば、すべてOKです。でも、期間を変えると問題が出てくるんです。

1つのインジケータの200本のバーを計算するのも1つの手です。200の指標に対して1本のバーを計算するのは、また別の話ですが...。200個のインジケータを読み込む必要性にどこで出くわすのか不明ですが...そのような「実験」には限界があるので、メモリ不足になる可能性はありますね...。

 
どこに応募するか」については、想像力の問題です。いろいろな場所
 
さて、メモリを確認する方法はあるのでしょうか?消費方法などはどうなっているのでしょうか?
 
Aleksandr Kononov #:
どこに適用するかは、想像力の問題です。いろいろなところに

ハングアップしたコードはどこにも適用できません。できるタスクを設定して...。そして、コードを失敗しやすくなる...。指標は高速に動作しなければならず、超長時間の計算をしている暇はないのです。