インジケーターのないアドバイザー、そんなのあり? - ページ 3

 
Алексей Тарабанов:

危険な誤解

何が誤解されているのでしょうか?
履歴配列が必要な場合は、それを行う。必要ないのなら、やらない方がいい。
個人的には、内部テストなどを使うことが多いので、ほとんど配列でやっています。しかし、私の配列がチャートのバーの数と同じになることはほとんどありません。時には少なく、時には多く。
例えば、一般的なジグザグを例にとってみましょう。情報量の多い配列の要素は 10%未満で、残りは空ですが、配列全体が列挙されています。それで、効率的なのか?明らかに、値とインデックスを持つ構造体の短い配列を使用する方が正しいです。
 

しかし、私の配列がチャートのバーの数と同じになることはほとんどありません。時には少なく、時には多く。

心配なのは、もっと大きくなる可能性があることです。

 
Nikolai Semko:
まず、インジケータ・バッファと同じように内部データ配列を持ち、同じようにそれを埋めることを誰が妨げるのでしょうか。
第二に、なぜアドバイザーがすべての履歴を必要とするのか。原則として、最後、あるいは最後から二番目の値。そして、このような指標となるものは必要ないのです。

また、インジケーターで計算するのと、Expert Advisorで同じように計算するのと、どちらがリソース的に合理的なのか、どちらが早いのか。

 
Алексей Тарабанов:

しかし、私の配列がチャートのバーの数と同じになることはほとんどありません。時には少なく、時には多く。

心配なのは、もっと大きくなるのではないかということです。


必要な場面もあるかもしれませんよ、グギレン。
例えば、こんな感じです。
私は、TFに関係なく、ほとんど分単位のバーデータかティックを使用しています。
TFを変更するたびに、Expert Advisorがすべてのバッファインジケータを再計算しなければならないのは、非常に間違っており、無駄があります。そんなことはないんですけどね。
したがって、もし私が週単位のタイムフレームを使用している場合、私の配列は明らかにチャートのバーの数よりはるかに大きくなります。
ダニの話でもないんですけどね。
生産性を上げ、メモリを節約するために、原則として、構造体やインデックスアレイを複数個持っています。

一般にiCustomでインジケータを使う場合、いろいろと制約があります。そこに無制限の立ち位置があればどうでしょう。
ダブルは1種類にしか縛られません。そして、構造物の配列も夢ではありません。
カラーインジケーターまで付いているなんて、とんでもない。バーあたり8バイトは明らかに多すぎる。

しかも、最後の1本だけ必要な場合でも、CopyBufferを通してのみバッファにアクセスできます。

もちろん、iMAのような標準的なビルトイン・インディケーターを使用している場合は、気にする必要はないでしょう。しかし、それでも、ここではカスタムインディケーターについて話して いるのだと思います。プロは内蔵のインジケータを実際の取引に使っていないと思うのですが。


 
VVT:

また、インジケーターでカウントするのと、EAで同じようにカウントするのと、どちらがリソースの節約という点で都合が良いでしょうか?

前の記事で一部回答しています。
これは非常に長い質問なので、開発者、特にマルチスレッドを担当する人に聞いた方がいいでしょう。

私はこの質問の専門家ではありません。しかし、私の考えを伝えることはできます。もし私が何か勘違いしているようでしたら、正しくご存知の方は訂正してください。

したがって、シンボルが指標で過負荷になっていない場合、エキスパート アドバイザーの作業と指標バッファの計算は並行して実行され、OSスケジューラが指標スレッドのために別のプロセッサコアを見つけることができれば、異なるCPUコアでも実行されると考えることができます。その方が、より効率的に結果を得られる可能性が高いのです。
ただ、スレッドコンテキストの切り替え速度とか、複数スレッドの相互作用の微妙なところはいろいろありますね。スレッドのコンテキストスイッチの速度はプロセスと比較して非常に高いことは知っていますが、無料ではありません。
さらに、前に言ったようにCopyBufferによる指標バッファ要素へのアクセスは、インデックスによる配列要素へのアクセスよりも高価になります。
また、Expert Advisor 内不要な計算、 内部配列のサイズやインデックスの最適化も可能で、リソース消費量の削減に大きな可能性があります。
もちろん、質問に対する完全な答えを出すためには、実験や適切なテストが必要です。しかし、私はまだ平均的なパフォーマンスが優れていると信じたいのです。

 
Dmitry Fedoseev:

そして、サイクルで毎回実行する?EMAがあればさらに面白い。

指数関数的 加重平均を計算するためにシングルパスアルゴリズムを使用する

ma = (1 - a) * 価格 + a * ma

 
Dmitry Fedoseev:

通常のインジケーターは、開始時のみ全てのバーをカウントし、その後1本ずつカウントしていきますが、このインジケーターは、開始時のみカウントし、その後1本ずつカウントしていきます。このインディケータでは、SMAを簡単に作成することができ、1バールの計算でも、MAの全期間を循環させる必要はありません。

もちろん、Expert Advisorで配列バッファを作成することも可能です。しかし、何のために、特別に設計された要素がある場合 - インジケータ?

では、何が問題なのでしょうか?新しいバーが 出現した--と考えた。

 
anim:
Expert Advisorをインジケータに縛られないようにしたい。バーを計算 し、内部で売買シグナルを取るのだ。可能なのでしょうか?
もちろん、Expert Advisorにインジケータの 計算式を実装すれば可能です。
 
Vladimir Mikhailov:

ワンパス・アルゴリズムを使って指数関数的に 重み付けされた平均を計算する

ma = (1 - a) * 価格 + a * ma

これは間違っている!

コレクトは

ma[i] = (1 -a) * 価格 +a* ma[i+1].

すなわち,パラメータa に依存して必要な深さを持つ配列が必要である.

そうでなければ、少なくとも移行プロセスが続く限り、全く無意味なものとなってしまうでしょう。

インジケーターの数値とEAでの計算結果を比較することで、簡単に確認することができます。
 
Dmitry Fedoseev:

もちろん、Expert Advisorでも配列からバッファを作ることは可能ですが...。しかし、特別に設計された要素があるのに、なぜ、インジケーターなのでしょうか?

インジケーターからのシグナルをスキップすることに問題があるのですが、誰も推薦してくれません。

https://www.mql5.com/ru/forum/365021

プリントによると、イベントはインジケータから発生し、新しいバーをチェックし、新しいバーではなく、前のバーのデータがあります。

3つの端子で同時にテストしたところ、2回とも3つのうちの1つの端子でスキップが発生しました。

В моих ТС пропуск сигнала
В моих ТС пропуск сигнала
  • 2021.03.16
  • www.mql5.com
Не люблю создавать новые темы, Небольшие исходные данные: Советник работает в OnChatEvent, 7 символов, циклов нет, прямая передача номера за минусо...