[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 657

 
IgorM:

ありがとうございます、そうです、これは私が探していたものです、どなたかmt4とmt5の同じタイプのコードの速度を測定したことがありますか?

と付け加えます。同じタイプのEAのテスト・最適化のスピードの違いに一番興味があります。
 
ToLik_SRGV:

Yuriさん、今後のために、 を2回以上繰り返すコードは、メソッドに割り当てるようにすると、配列が何重にもなってコードが散らかることがなくなりますよ...。


Anatolyさん、どうもありがとうございます。 この記事には、Skypeのようにお辞儀でアイコンを挿入することができないのが残念です。すべてがシンプルでエレガント。他のテクニカル分析ツールとのコミュニケーションから、そうであるべきだと理解していますが、mqlとの連携はまだまだ未熟です。メソッドとしてマークするためのヒントをありがとうございます。

最後に、このEAで同じバーに複数の注文を出すのを避ける方法を教えてください。すでに善良な人たちがヒントを出してくれているのですが、それが定着しませんでした。

 
granit77:
と付け加えます。同じ種類のEAのテスト・最適化速度の違いに一番興味があります。


MT4とMT5の最適化は、少なくともMT5がすでに不完全な条件チェックを実装しているという事実のために、非常に異なっているはずです
 
IgorM:


MT4とMT5で同じタイプのコードの速度を測定したことがある方はいらっしゃいますか?


2010.06.29 16:29:56 Test_Speed (EURUSD,M1: 時間1641 msec MT-4)

2010.06.29 16:28:56 Test_Speed (EURUSD,M1) 時間359 msec MT-5

このコードは、あなたが見るように、翻訳する必要はありません それは5と4のために適合しています

 int start_=GetTickCount();
 int d=0;
 for(int i=0;i<100000000;i++)d+=11;
 Print("время ",GetTickCount()-start_," мсек");

複雑な機能を高速化するために、開発者がどのような工夫をしたのか、想像してみると、とてもシンプルな追加機能とは思えません。

 
Urain:

これは初歩的な足し算の話であって、複雑な機能を高速化するために開発者が何をねじ込んできたか想像してみてください。


MT4のEAコードの処理は、Javaに非常によく似ています。ビルトイン関数は非常に高速ですが、ユーザー関数は、最も基本的なアクションでさえ、それほど高速ではありません。

最適化というと、条件のフルチェックに非常に戸惑うのですが、そんなことは20年ぐらい聞いていません - School Basics :)

 

GoldUSDが入っている多通貨のインジケーターが 見つからないのですが。リンク先を突いてください。


、インデックスをアップグレードします。

 
IgorM:


もっと具体的に質問してください。

注文時に現在の価格に関心がある場合は、現在の価格をグローバル配列に格納し、配列のカウンタインデックスを変更する役割を担うコードに呼び出しを追加し、コード内の任意の場所からそれを表示することができます。


つまり、注文の開始価格から始まるすべての価格を配列に書き込んで、配列の 最大値と最小値の要素を 抽出する必要があるのです。

コードでどのように実装すればよいか教えてください。

 
zelek:


つまり、注文の開始価格から始まるすべての価格を配列に書き込んで、配列の最大値と最小値の要素を抽出できるようにする必要があります。

コードでの実装方法を教えてください。


注文を出した後、現在の価格を 配列に書き込むのですが、なぜでしょうか? 最低価格と最高価格がわかるバーがあります。 もし価格をティックごとに書き込むとしたら、20から80単位/分までのティックを含む配列がどれほどのデータになるか想像もつきません。

それとも、注文が開始されたときの価格が必要ですか?- ターミナル上で決済済み・未決済の注文を表示することが可能です。

 
IgorM:


注文を開始し、現在の価格をデータ配列に保存したいのですが、なぜですか?

それとも、注文が開始されたときの価格が必要ですか?- ターミナル上で決済済み・未決済の注文を表示することが可能です。


1ピップからの仮想トレーリングストップのようなものを実装したい。

新しいティックごとに最大値を知る必要があります。

 
zelek:


仮想トレーリングストップのようなものを一点から実装したい。

このため、新しいティックごとに最大値を知る必要があります。


このために配列全体を記録・保存する必要はなく、注文開始時の最大値と最小値の2つの数値だけを保存すれば十分です。しかし、これを行うには - 実際には - 注文が開始された最初の分バーの価格を監視する必要があるだけです。それ以降は、価格を常に記憶することなく、分単位のバーで最大値と最小値がかなり決定されます。