どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 1040

 
こんにちは!以下の質問ですが、インジケーターをコンパイルする際にいつも違う値が表示され、理解できません。iCustomインジケーターの呼び出しが 機能しているかどうかの確認はありますか?一部のインジケータがロードする時間がなく、そのためにシグナルが跳ね返っているのではないかと疑っています。iCustomが正しく読み込まれたかどうかを確認する方法はありますか?
 
LRA:

エックブルグ!!!すべての警告をなくすこと。最初の 警告は、その文が何の効果もないこと、つまりコンパイラによって破棄されたことを意味します - これは悪い ことです。最後の 警告は、ローカル変数(配列)のサイズが512kBを超えているため、効果がないという意味ですが、これは残念 です。残りの警告-初期化されていない変数が使用されている可能性があります。カードにお金を入れるのを忘れて、使おうとしたときと同じです。プログラムの分岐をすべて確認する必要があるのです。コンパイラが過大な保険をかけていることもある。この場合、int x=0; string y=""; bool z=falseのように宣言します。

最初と最後の警告をなくした。

OK、了解です、やってみます)

 
LRA:

エックブルグ!!!すべての警告をなくすこと。最初の 警告は、その演算子が何の効果もないこと、つまりコンパイラによって破棄されたことを意味します。最後の 警告は、ローカル変数(配列)のサイズが512kBを超えているため、効果がありませんというもので、残念でした ね。残りの警告-初期化されていない変数が使用されている可能性があります。カードにお金を入れるのを忘れて、使おうとしたときと同じです。プログラムの分岐をすべて確認する必要があるのです。コンパイラが過大な保険をかけていることもある。この場合、int x=0; string y=""; bool z=falseのように宣言します。

初期化時に変数に0を代入すると警告が出なくなりましたが、配列の場合はどうなのでしょうか?

そして、その宣言の場所ではなく、最後に使われる場所、つまりprint関数による配列の出力が行われる場所です。

 
Ekburg:

初期化時に変数に0を代入すると警告が出なくなりましたが、配列の場合はどうなのでしょうか?

そして、宣言された場所ではなく、最後にprint関数を介して配列から出力される場所で使用されるのです。

1人で印刷するのではなく、2人、3人で印刷する...。またはループの中で、変数が非常に大きく形成されていることが良い...
 
Tecuciztecatl:
1枚だけでなく、2枚、3枚と出力する...またはループの中で、変数が非常に大きく形成されていることが良い...

すでにループでやってますけど・・・(

for(int z=0;z<6;z++)
      {
      Print("О!!!   ",z,"   Кол-во  = ",Info[z][0],"; Кол-во B = ",Info[z][1],"; Кол-во S = ",Info[z][2],"; Максимальное отклонение = ",Info[z][3],"; Среднее отклонение = ",Info[z][4]);
      Print("B!!!   ",z,"   Кол-во + = ",BI[z][0],"; Кол-во - = ",BI[z][1],"; Общий объём = ",BI[z][2],"; Средний объём = ",BI[z][3],"; Мах просадка = ",BI[z][4],"; Средняя просадка = ",BI[z][5]);
      Print("S!!!   ",z,"   Кол-во + = ",SI[z][0],"; Кол-во - = ",SI[z][1],"; Общий объём = ",SI[z][2],"; Средний объём = ",SI[z][3],"; Мах просадка = ",SI[z][4],"; Средняя просадка = ",SI[z][5]);
      }

コンパイラが参照している箇所を赤で強調しました。

 

1枚のプリントを2-3枚に分割する...。配列のデータ型は 何ですか?

は、この方法で試してみたところ、うまくいきました。

double Info[6][6],BI[6][6],SI[6][6];

for(int z=0;z<6;z++)
      {
      Print("О!!!   ",z,"   Кол-во  = ",Info[z][0],"; Кол-во B = ",Info[z][1],"; Кол-во S = ",Info[z][2],"; Максимальное отклонение = ",Info[z][3],"; Среднее отклонение = ",Info[z][4]);
      Print("B!!!   ",z,"   Кол-во + = ",BI[z][0],"; Кол-во - = ",BI[z][1],"; Общий объём = ",BI[z][2],"; Средний объём = ",BI[z][3],"; Мах просадка = ",BI[z][4],"; Средняя просадка = ",BI[z][5]);
      Print("S!!!   ",z,"   Кол-во + = ",SI[z][0],"; Кол-во - = ",SI[z][1],"; Общий объём = ",SI[z][2],"; Средний объём = ",SI[z][3],"; Мах просадка = ",SI[z][4],"; Средняя просадка = ",SI[z][5]);
      }
 
Ekburg: 出力をループさせることによって...
配列宣言を 示し、その理由を説明しなさい。なぜ二次元なのか、なぜこのサイズなのか、実際に使われている要素はいくつなのか、余白は何のためにあるのか、など。
 
LRA:
配列宣言を示して、その理由を説明してください。なぜ二次元なのか、なぜこのサイズなのか、実際に使われている要素はいくつなのか、余白は何のためにあるのか、など。

   double Info[6][5];
   double BI[6][7];
   double SI[6][7];

スクリプトの冒頭で宣言され、コードの実行とともに徐々に埋められていく。

もしかしたら、ある計算でゼロがたくさんついた値が出ることが問題なのでは?正常化する必要があるのでは?

 

みんな、ヒントがあるよ。インジケータが他のインジケータを呼び出す。他のインジケータから全ての値を読み込んだ後に、メインインジケータの機能を実行させる方法。スリップインインジケーターが作動しない、どうすればいい?他の指標のデータが読み込まれ、計算を開始できることを確認する方法とは?

次のバーの出現中にコンパイルするときにジャンプしているため、いくつかのデータは、古いバー、新しいもののために、私は別のシンボルを使用していることを考慮して取られ、それはシンボルの一部が更新されていないことが判明し、データは前のバーのために来る。すべてのシンボルが新しいバーを 持ち、計算ができるように同期させる方法は?

 
こんにちは、プロフェッショナルの皆さん。残念ながら、誰も私に答えてくれません。同じ結果を出すために、コードにどんな変更を加える必要がありますか?それとも、不可能なことなのでしょうか?