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

 
Yevhenii Levchenko:

何というか、そういうこともあるのか、また、見積書に何らかの亀裂があるためなのか、それとも私の書き方が間違っているのか。

MT4テスターが正常に動作していないことを教えてほしいのですか?- ティックや バーにエラーがあるスクリーンショットを聞くことはありません - テスターは、あらゆる可能な低TFからすべてを生成します。

開発者は、あなたのような質問にはいつも、「コードを正しく書きましょう」と答えています。

コードの書き方の例を示しましたが......。見れないし、おもしろくない :)))- を読みながら、自分のコードに取りかかります。

 
Igor Makanu:

MT4テスターが正常に動作していないことを教えてほしいのですか?- ティックや バーにエラーがあるスクリーンショットを聞くことはありません - テスターは、あらゆる可能な低TFからすべてを生成します。

開発者は、あなたのような質問にはいつも、「コードを正しく書きましょう」と答えています。

コードの書き方の例を示しましたが......。見れないし、おもしろくない :)))- を読みながら、自分のコードに取りかかります。

よし!ありがとうございました。

 
Yevhenii Levchenko:

よし!ありがとうございました。

便利かもしれないhttps://www.mql5.com/ru/forum/165405#comment_5602248

Архивные котировки от Metaquotes
Архивные котировки от Metaquotes
  • 2017.01.02
  • www.mql5.com
Ситуация: В терминале MT4 по клавише F2 можно закачать архивные котировки. Они нужны всем, кто разрабатывает свою торговую систему...
 

こんにちは、同志の皆さん。私はmql4で簡単なものを書くことを学んでいて、今配列を操作しようとしています。 私はこのコードの部分のエラーを理解することができません。

   double d1 = NormalizeDouble(Low[iLowest(NULL, 0, MODE_LOW, MaxLimit, 0)],4);
   double d2 = NormalizeDouble(High[iHighest(NULL, 0, MODE_HIGH, MaxLimit, 0)],4);
   double CrossBarsNum[][2];
   for (double d = d1; d <= d2; d += 0.0001)
     {
       double a = 0.0;
       for(int i = 0; i < MaxLimit; i++)
           if(d > Low[i] && d < High[i])
               a+=1;
               CrossBarsNum[(d-d1)/0.0001,0] = d;
               CrossBarsNum[(d-d1)/0.0001,1] = a;

最後の2行で期待した文言の整数式でクラッシュしています。私が理解した限りでは、配列のインデックスは数式で設定することができます。配列文字列を検索し、引用符とその引用符を含むバーの 数を順次記録することが必要である。計算式では整数値(0から1刻み)が出るので、何が違うのか?

 
Azat0t:

こんにちは、同志の皆さん。私はmql4で簡単なものを書くことを学んでいて、今配列を操作しようとしています。 私はこのコードの部分のエラーを理解することができません。

最後の2行で期待した文言の整数式でクラッシュしています。私が理解した限りでは、配列のインデックスは数式で設定することができます。配列文字列を検索し、引用符とその引用符を含むバーの 数を順次記録することが必要である。数式は整数値(0以上1単位)を返すので、何がエラーになっているのでしょうか?

配列のインデックスをdoubleではなくint型にする。配列のインデックスは整数でなければならない。

 
Sergey Basov:

便利かもしれないhttps://www.mql5.com/ru/forum/165405#comment_5602248

ありがとうございました。私は結構、そうしてきました。読み込み後、「更新」を押すと、引用文が違っていた。ロボットの作業に制限時間を設けていたことを忘れていた。:)
 
Azat0t:

こんにちは、同志の皆さん。私はmql4で簡単なものを書くことを学んでいて、今配列を操作しようとしています。 私はこのコードの部分のエラーを理解することができません。

最後の2行で期待した文言の整数式でクラッシュしています。私が理解した限りでは、配列のインデックスは数式で設定することができます。配列文字列を検索し、引用符とその引用符を含むバーの 数を順次記録することが必要である。この式は整数値(0以上1単位)を返すので、どこでエラーになるのでしょうか?

明示的な型変換を使用する

               CrossBarsNum[int((d-d1)/0.0001),0] = d;
               CrossBarsNum[int((d-d1)/0.0001),1] = a;
 
ありがとうございます、エラーを修正しましたが、まだ結果は出ません:配列が埋まりません。これは何につながるのでしょうか?
   int handle;
   handle = FileOpen("FindLevels.txt", FILE_CSV|FILE_WRITE, '\t');
   double d1 = NormalizeDouble(Low[iLowest(NULL, 0, MODE_LOW, MaxLimit, 0)],4);
   double d2 = NormalizeDouble(High[iHighest(NULL, 0, MODE_HIGH, MaxLimit, 0)],4);
   double CrossBarsNum[][2];
   for (double d = d1; d <= d2; d += 0.0001)
     {
       double a = 0.0;
       for(int i = 0; i < MaxLimit; i++)
           if(d > Low[i] && d < High[i])
               a++;
               CrossBarsNum[int((d-d1)/0.0001),0] = a;
               CrossBarsNum[int((d-d1)/0.0001),1] = d;
     } 
   FileWrite(handle, CrossBarsNum[11,1], d, d1, d2, a, ArraySize(CrossBarsNum));
   //FileWriteArray(handle, CrossBarsNum, 0, WHOLE_ARRAY);
   FileClose(handle);
   return(0);
変数 d, d1, d2 は正確に動作します。
 
Azat0t:
ありがとうございます、エラーを修正しましたが、まだ結果は出ていません:配列が埋まっていません。変数 d, d1, d2 は正確に動作する。
配列のサイズは、1次元目は常に0です。ArrayResize()はどこにもありませんでした。
 
Azat0t:
ありがとうございます、エラーを修正しましたが、まだ結果は出ていません:配列が埋まっていません。変数 d, d1, d2 は正確に動作します。

を入れるのを忘れないでください。

#property strict
すべてのエラーを修正すれば、すべてがうまくいくかもしれません。デバッガーを使いこなす。ステップ・バイ・ステップの実行で、すべての問題が明らかになります。