今までMT5を真剣に扱ったことがなかったのに、大きなプロジェクトを一気に移管することになりました。当然ながら難点もあり、そのひとつは配列が常に範囲外になってしまうことです。MT4では、発表後にわざわざアレイをクリアする必要がないこともあって、結果的にそのような問題はありませんでした。しかし、MT5では必要です。私の技術では、カーネルの大きさを変えながら、徐々に充填していく必要があります。配列の中には、正確なサイズが事前にわからないものがあります。セル内にゴミがなければ、とっくにうまくいっているはずだ。
つまり、一方ではアレイのゴミがあり、他方ではオーバーランのクリティカルエラーがあるのです。まるでドラえもんのような条件ですが...。
なぜ、MT4のように、配列の自動クリアを削除し、宣言された変数を ゼロにしなければならなかったのか理解したいのですが?
変数を許容すると、大きな配列では常にゴミが溜まるという問題に直面することになり、宣言時だけでなくリサイズ時にもゴミを片付けなければならなくなる...。なぜ?
また、当初は同じような苦労がありました。
私の意見では、配列は特定の方法で満たされます。これは、しばしばループで考慮されるべきです。
ピーター、意味がわからないんだけど?
一通りhttps://www.mql5.com/ru/forum/293630/page179#comment_10802823
今度はMQL5のせいだ...。;)
- 2019.02.28
- www.mql5.com
まあ、そうですね。 MQL4に慣れていないので。
もちろん、そうでしょう。
自分自身と自分のプログラムを尊重するプログラマーなら、物事を失敗させることはないだろう。MQL4では、#property strictを使用しない場合、インデックス20でサイズ10の配列を参照することができます。そして何も起こらない。プログラムは動き続けるが、次に何を使うかはプログラマーの判断に委ねられる。頭が良ければ、確かに配列の 外に値が出ないように、すべてチェックして制御するのでしょうが、「ぶっつけ本番」でやると、この制御はどうでもよくなり、「動くことが一番大事で、どうやったらどうなるか...」ということになるのでしょう。
従来のように自作をごまかすことができないため、手をこまねいていた大多数のユーザーから「悪い、悪い、複雑なMQL5」と不満の声が上がっています。しかし、元々、受信データをチェックし、制御しながらコードを考えて作っていた人たちは、言語の複雑さの違いに気づかず、「どこが複雑なんだ、同じじゃないか......」と、今になって思っているのです。
今までMT5を真剣に扱ったことがなかったのに、大きなプロジェクトを一気に移管することになりました。
配列を書き換えたときの深刻な違い
トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム
fxsaber, 2019.02.12 13:12
多次元配列 に対するArrayResizeの機能void OnStart() { int Array[][2]; Print(ArrayResize(Array, 7)); // MQL5 - 7, MQL4 - 14 Print(ArraySize(Array)); // 14 }
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
今までMT5を真剣に扱ったことがなかったのに、大きなプロジェクトを一気に移管することになりました。当然ながら難点もあり、そのひとつは配列が常に範囲外になってしまうことです。MT4では、発表後にわざわざアレイをクリアする必要がないこともあって、結果的にそのような問題はありませんでした。しかし、MT5では必要です。私の技術では、カーネルの大きさを変えながら、徐々に充填していく必要があります。配列の中には、正確なサイズが事前にわからないものがあります。セル内にゴミがなければ、とっくにうまくいっているはずだ。
つまり、一方ではアレイのゴミがあり、他方ではオーバーランのクリティカルエラーがあるのです。まるでドラえもんのような条件ですが...。
なぜ、MT4のように、配列の自動クリアを削除し、宣言された変数を ゼロにしなければならなかったのか理解したいのですが?
変数を許容すると、大きな配列では常にゴミが溜まるという問題に直面することになり、宣言時だけでなくリサイズ時にもゴミを片付けなければならなくなる...。なぜ?