MQL4に関する質問 - ページ 12

 
будет ли работать заметно быстрее, если обработку массивов вынести в DLL?
誰かコンパイラをインストールしてる?確認してみて!つまらなくない?


配列へのアクセスはローカル変数より10倍遅い。


配列の項目を アドレスする時間は、常に変数をアドレスする時間より長くはありません。具体的な数値はコンパイラーによって異なるが、その傾向は変わらないはずだ。コンパイラはVisual Studio 2005です。プロセッサーはAthlon XP 2500+。配列の初期化を含む実行時間は1.06-1.07秒です。




Dim t1, t2 As Double t1 = DateAndTime.Timer() Dim x, y, z As Double Dim d, k As Double Dim Open(5001), Close(5001) As Double For d = 5000 To 1 Step -1 For k = 1 To 4999 z = Close(k) : y = Close(k + 1) : x = Close(k + 2) z = Open(k) : y = Open(k + 1) : x = Open(k + 2) Next Next t2 = DateAndTime.Timer() For D, y = 5001 As Double Dim d, k = Open(5001), Close(5001) As Double For D, y = 1 To 4999 z = Close(k) : y = Close(k + 2) : x = Close(k + 2) Next Next t2 = DateAndTime.Timer()タイマ() MsgBox(CStr(t2 - t1) + " 秒")



同じループでも、

z = Close(1) : y = Close(1) : x = Close(1) z = Open(1) : y = Open(1) : x = Open(1)


は0.37秒から0.4秒を与える。そして最後に、 。


z = k : y = k : x = k z = k : y = k : x = k


0,56-0,6 с.つまり、


はコンパイラの問題でもなく、「配列/非配列」の問題でもなく、適切なデータ構造と正しいコードの 問題なのだ!という結論を導き出したいと思います。追伸:もちろん、時間計測を除く上記のテーゼは、一プログラマーとしての私の個人的で深い主観的で控えめな意見です。

 
ありがとうございます!

そうですね、やはりコンパイラでの結果コードの最適化は力ですね...
詳細は省きますが、visual studio copilerは配列アクセスを勝手に最適化しているようです。


ただし、コンパイラのオプティマイザは、このチートを部分的に理解することができます...:)
 
を導入して、テストの整合性を確保する必要があります。


そんな思いはとっくに捨てています。テストもしたことがあります。そして、私はある結論に達しました。

なぜなら、私がこれらの変数にどこからアクセスするつもりか、同じメソッド内か、タイマー(と構造的に無関係なコード)か、あるいは他のプロセスからか、100%知ることは 不可能だからです
だから、すべてがフェアなのです。確認しました。

追伸:オフトピック、すみません。我慢できなかった。
 
配列アクセスについて...
ArrayCopySeriesの パラメータで指定される配列は何ですか?

値の通常の配列ですか?値へのポインタの配列ですか?

(これは明らかに馬鹿な質問ですが、私は10年間プログラミングをしていません。ましてやC言語でも、ましてやWindowsでも。)

、このようなことについてどこで読めばいいのでしょうか?
 
ティック間でEAのイネーブルボタンの 状態を判断する方法はないでしょうか?
本当に必要なんだ...

何か方法はないでしょうか?どうだろう。start()の再帰的な呼び出しは可能ですか?
 
ということは、ボタンがオフになったときにdeinit()が発動するのではないのでしょうか?
 
ティック間でEAのイネーブルボタンの状態を判断する方法はないでしょうか?<br /> translate="no">。

ボタンが無効になっているとEAが起動しません。

start()への再帰的なアクセスは可能ですか?

が許可されています。
 
スラワ、
ご返信ありがとうご
ざいます。

ええと...で、どうするの......?
わからない...5で行くか、でも昨日...今日で3...小さいやつで。

小さいのが多いのは仕方ないですね。嫌だったんです。さて、どうしたものか... :(
簡単そうに見えるけど...。

(気にしないでください、もうキーボードの上に瞑想が飛び散っています)。
 
FirstVisibleBar()とBarsPerWindow()は、MEでカラーハイライトされない。
と思われるのは私だけでしょうか?
 
FirstVisibleBar()とBarsPerWindow()は、MEでカラーハイライトされない。<br / translate="no">私だけでしょうか、それともそうすべきでしょうか?

今も昔も普通にハイライトされています。ただ、183ビルドと187を確認しました。