[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 306

 
drknn:

インジケータで「無限」長の配列を宣言することができる。それを宣言して、ループの中ですぐに見つかった値を配列に書き込みます。問題は、必要な選択をExpert Advisor/Scriptにどのように転送するかという点だけです。ツールもありますが、複雑さを見極める必要があります。1回目はフィルタリングされた値の数を計算し、配列の次元を変更し、2回目は配列に値を入力する、というように2回実行するのが本当は簡単なのかもしれませんね。

ありがとうございます。しかし、インジケータとのバリアントは適切ではありません。得られたサンプルをExpert Advisorに渡す前に、Expert Advisorからインジケータにサンプル条件を渡すことに問題があります。
 
PapaYozh:

必要な最大サイズより大きな配列を宣言する。


その通りです :)サイズを何倍にもすれば、うまくいくでしょう。例えば、フィルタリングされる値の数が千を超えないことがあらかじめ分かっている。数千個のセルの配列を宣言して、完了です :)

しかし、必要なメモリは一部持っていかれます。:(

 
drknn:


その通りです :)サイズを何倍にもすれば、うまくいくでしょう。例えば、フィルタリングされる値の数が千を 超えないことがあらかじめ分かっている。数千個のセルの配列を 宣言して 完了です :)

しかし、必要なメモリは一部持っていかれます。:(


フィルタリングされる値の数が1000を超えないことがあらかじめ分かっている」 のであれば、サイズ1000の配列を宣言 すれば十分です。
 
splxgf:

https://docs.mql4.com/ru/math/MathPow ない?あるいは初歩的な演算が問題の条件。 それなら選択肢http://bpascal.ru/download/desc/436.php すべて手書きでやるなら、指数や対数を自作関数で実装する。

はい、まさに条件通りです。リンクありがとうございます!まさに私が必要としていたものです。
 
Elenn:
こんにちは、いくつかのアドバイス:ループは、特定の条件を満たす値を検索します。見つかった値は、配列に書き込まれる。そのため、宣言する配列のサイズは未知数である。時間とリソースの観点から、2回実行するのは避けたい(1回目で見つかった値の数を数え、2回目で配列を宣言し、配列にデータを書き込むことができるようにするため)。1回の実行で必要な結果を得る方法はありますか?
値が見つかるたびに、配列のサイズを 1セルずつ大きくすることができます。しかし、これではスピードが出ません。サイズを数セル大きくして最適化し、数回の繰り返しでリサイズをスキップすることができます。
 
PapaYozh:

フィルタリングされる値の数が1000を超えないことがあらかじめわかっている」 場合は、サイズ1000の配列を宣言すればよいのです。


しかし、不可抗力の場合のコンティンジェンシー・プランはどうでしょうか?エラーについて通知し、Expert Advisorをブロックするコードを書きますか?まあ、人には見えないかもしれませんが......まあ、その時はちょうど仕事中だったのでしょう。

そう、確かに、問題の解決策はひとつではありません。フィルタリングループの内部で配列の次元を動的に増やすという、Zhunkoさんが 提案された方法がベストだと思います。正直言って、この回答は嬉しいですね。思いもよらなかったです :)

 
drknn:


フィルタリングループの内部で配列の次元を動的に増やすという、Zhunkoさんが 提案された方法が一番良いのではないかと思います。正直、その答えは嬉しいですね。思いもよらなかったです :)

このソリューションは本当に独創的で、私も試してみたくなりました。しかし、アレイを再宣言する場合、再初期化によりデータが失われるのではないでしょうか?
 
Elenn:
このソリューションは実に独創的で、ぜひ試してみたい。しかし、配列を再宣言した場合、再初期化によりデータが失われるのでは?

よくやりますね。いくつかの初期配列を作成します。そして、(必要であれば)何らかの値でインクリメントし(1つでは無理、配列操作に時間がかかりすぎる)、実際に満たされた配列の サイズだけを作業中にチェックします。今のところ、問題はありません
 
Vinin:

配列操作の完了に時間がかかりすぎる
配列操作はすべて長いのか、それとも特定のものだけなのか?
 
Elenn:
どのアレイ操作にも時間がかかるのか、それとも特定の操作だけに時間がかかるのか?

特に配列のリサイズ。なるべく少ない回数で行うのが良い
理由: