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

 
Roman Sharanov:

と、指標からデータを取得し、グラフ?

すべてが可能です。しかし、そのためには、少なくとも両方の言語に堪能である必要があります。

 
Artyom Trishkin:

何でも可能です。しかし、そのためには、少なくとも両方の言語に堪能である必要があります。

わがもの

 
Roman Sharanov:

わがもの

それなら、クロスプラットフォームのコードを書くのに問題はないはずです。

 

おかしな状況

ある一行のコードで、以下のようなエラーが発生することがあります。

どのような場合にこのエラーが発生するのでしょうか?


   ChartTimePriceToXY(0,0,Time[0],price,x1,y_cord);


2018.06.08 13:41:39.021    program name XAUUSDcheck,H1: array out of range in 'DrawInterfaceLib.mqh' (47,31)


 
Sergey Likho:

おかしな状況

ある一行のコードで、以下のようなエラーが発生することがあります。

どのような場合にこのエラーが発生するのでしょうか?


配列の範囲 外である。配列に渡されるインデックスは、配列の最大サイズより大きいか(配列が10の場合、最初の要素のインデックスは0なので、そのような配列の最大インデックス=9)、または0より小さいです。配列のサイズが0であるかのどちらかです。

 
Artyom Trishkin:

配列の範囲 外です。配列に渡されるインデックスは、配列の最大サイズより大きいか(配列のサイズが10の場合、最初の要素はインデックス0なので、そのような配列の最大インデックスは9)、またはゼロより小さい。配列のサイズが0であるかのどちらかです。

ありがとうございます。もちろん、それはわかっています。

Time[0] 配列にアクセスする際、どのような条件でこのエラーが発生する可能性がありますか?

では、配列はゼロなのですか?また、時系列ではどうしてそうなるのでしょうか?

 
Sergey Likho:

おかしな状況

ある一行のコードで、以下のようなエラーが発生することがあります。

どのような場合にこのエラーが発生するのでしょうか?

MT4の古いバグ(時間配列のサイズがゼロになるようです)。2年ほど前、あるクライアントに常に表示されるようになりました。しかし、このバグを再現するのは非現実的なようでした。サービスデスクは問題を認識しているが、修正することができない。それ以来、私はiTimeや iOpenなどを介してのみ、タイムシリーズへの直接アクセスを使用することはありません。

 
Ihor Herasko:

MT4の古いバグ(時間配列のサイズが0になるようです)。2年ほど前、私のクライアントの一人にこの現象が現れ続けました。しかし、このバグを再現するのは非現実的であることが判明した。サービスデスクは問題を認識していますが、解決することはできません。それ以来、私はタイムシリーズに直接アクセスすることはなく、iTimeやiOpenなどのラッパーを使用しています。

そう、結局そうして、iTimeに 置き換えたのです。ありがとうございます。

 

こんにちは。アウトオブバウンズ、どうすれば直るのか?

 if(TimeFrame>Period()) 
     {
      ArrayCopySeries(santa1,5,Symbol(),TimeFrame);
      summ=CountBars+TimeFrame/Period();
      shift=0;
      for(int iy=0; shift<summ; shift++) 
        {
         if(Time[shift]<santa1[iy]) iy++;//вот эта строка "array out of range" 
         list[shift]=bufbuy[iy];
        }
     }
 
PolarSeaman:

こんにちは。アウトオブバウンズ、どうすれば直るのか?

上記のコードのshiftとiyの変数の値は、Timeとsanta1の配列の 外に出るかどうかチェックされていません。だから、意味があるのです。使用前にその値を確認すると、エラーは解消されます。

また、より具体的に言うと、CountBarsとTimeFrameの変数がどのように生成されるかを知る必要があります。