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

 
どうすればいいのでしょうか?もう2日間も無駄に座っている。他にどんな解決策があるのでしょうか?
 
OnCalculate(...)ハンドラで、バッファ定数 open,high,low,close が1文字ずつ履歴全体に対してオーバーフローしてしまうのですが、どうしたらいいでしょうか?例えば、配列 mas[i]= open[i] /close[i] の値をあるペアの全履歴について計算し、この値を他の文字と平均化したいのです。 いろいろと検索してみましたが、あまり似たようなものはありませんね。どこを見ればいいのか教えてください。
 
Juer:
どうすればいいのでしょうか?もう2日間も無駄に座っている。他にどんな解決策があるのでしょうか?

また、再現性のある例をどこに示したのでしょうか?コードの切れ端を渡すだけか。我々の判断で動作するコードにコンパイルする必要があるのでしょうか?もし、当てが外れて、間違ったものが必要になったらどうする?

 
Artyom Trishkin:

また、再現性のある例をどこに示したのでしょうか?コードの切れ端しかあげないのかよ。我々の判断で動作するコードにリンクさせなければならないのでしょうか?もし私たちが当てずっぽうで、間違ったものを必要としていたら?

でも、構造体の配列ではなく、CArrayObjクラスで、構造体型のオブジェクトを作るにはどうしたらいいでしょうか?宣言の仕方や追加の仕方がよくわからないし、こんなことでいいのか?

 
Juer:

でも、構造体の配列ではなく、CArrayObjクラスで、構造体型のオブジェクトを作るにはどうしたらいいでしょうか?宣言の仕方や追加の仕方がよくわからないし、こんなことでいいのか?

このデータを持つことで何を得たいのか、といった具体的な内容ではなく、一般的な問題を記述するようにしてください。

 
mwwm:
OnCalculate(...)ハンドラで、バッファ定数 open,high,low,close が一文字ずつ履歴全体に対してオーバーフローして しまうのですが、どうすればいいでしょうか?例えば、配列 mas[i]= open[i] /close[i] の値をあるペアの全履歴について計算し、この値を他の文字と平均化したいのです。 いろいろと検索してみましたが、あまり似たようなものはありませんね。どこを見ればいいのか教えてください。
オーバーフローとは どういう意味ですか?
 
Дед пенсионер:
オーバーフローとは 何ですか?

XAUUSD,Daily:アレー・アウト・オブ・レンジ・イン・『!2019』。mq4' (243,6) はOnCalculate の定数による計算と CopyOpen' - 以下のようにしようとすると、関数 呼び出しにオーバーロードのいずれかを適用することができません。構造体を介してデータへのアクセスを整理するのは非常にわかりにくい、どの時点でOHLCがすべての気配値を取り、その後新しいものだけを取るのか、私はiOpen(,,,)で行き詰っています。)


 
Juer:

そのため、無効な配列アクセスというエラーが発生します。

構造体の中に配列や文字列はありません。bool, integer, double, enums のみ。

申し訳ございません。ちょっとバカになった。もちろん、もう少し複雑な仕組みにしなければならないでしょう。

bool CCandleRule::GetRulesArray(input_rule &rules_array[])
{
   int nArraySize = ArraySize(rules);
   if (ArraySize(rules_array) != nArraySize)
      if (ArrayResize(rules_array, nArraySize) != nArraySize)
         return false;

   for (int i = 0; i < nArraySize; ++i)
      rules_array[i] = rules[i];
      
   return true;
}

C++のようなベクトルではありません。そのため、要素ごとのコピーが必要なのです。また、元の配列と出力配列のサイズを一致させることにも気を配る必要があります。だから、機能が1行に収まらないんです。そして、それは常にうまく実行されるとは限りません。そのため、正常に実行されたことの確認を返す必要があるのです。

 
mwwm:

XAUUSD,Daily:アレー・アウト・オブ・レンジ・イン・『!2019』。mq4' (243,6) はOnCalculate の定数による計算と CopyOpen' - 以下のようにしようとすると、関数 呼び出しにオーバーロードのいずれかを適用することができません。構造体を介してデータへのアクセスを整理するのは非常にわかりにくい、どの時点でOHLCがすべての引用符を取り、その後新しいものだけを取り、iOpen(,,,)で立ち往生。)


オーバーライドされず、存在しないインデックスにアクセスしている。
 
Artyom Trishkin:
オーバーライドされないし、存在しないインデックスに対応している。

とか、どうしたら正しくできるのか?

理由: