В последнее время возрос интерес к кластерному анализу рынка FOREX. MQL5 открывает новые возможности исследования закономерностей движения валютных пар. Важным преимуществом MQL5, по сравнению с MQL4, является возможность использования неограниченного количества индикаторных буферов. В данной статье описан пример построения мультивалютного индикатора.
C появлением новой версии языка MQL, не только изменился подход к работе с индикаторами, но и появились новые способы создания индикаторов. Кроме того, появилась дополнительная гибкость при работе с индикаторными буферами - теперь вы можете самостоятельно указать нужное направление индексации и получать ровно столько значений индикатора, сколько вам требуется. В этой статье рассмотрены базовые методы вызова индикаторов и получения данных из индикаторных буферов.
もしかしたら質問を誤解しているかもしれませんが、別のアイデアを入れてみます。
インジケーター_適用価格
int
は"Apply to " フィールドのデフォルト値を設定します。ENUM_APPLIED_PRICE 列挙の値のいずれかを設定することができます。このプロパティが設定されていない場合、デフォルト値PRICE_CLOSEが適用されます。
もしかしたら質問を誤解しているかもしれませんが、別のアイデアを入れてみます。
インジケーター_適用価格
int
は"Apply to " フィールドのデフォルト値を設定します。ENUM_APPLIED_PRICE 列挙の値のいずれかを設定することができます。このプロパティが設定されていない場合、デフォルト値はPRICE_CLOSEです。
アイデアは良いが、ちょっと横着である(幅飛びのようなもの:)。
ユーザーが外部インジケータで選択したapplied_priceパラメータの値を内部インジケータに転送する必要があります。
例えば、選択されたデータ(これは内部インジケーターです)を基に作られたMAがあり、このMAの値を価格から引く必要があります。
したがって、PRICE_CLOSEが選択された場合、MAはこの価格に基づいて構築され、同じ価格がインジケータの計算式で使用されるべきです。
上記から、app_priceは単純にinputとして宣言されることが求められるが、その場合、ユーザーは必要なパラメータを2回指定しなければならないことがわかる。
Inputsで 1回、Parametrsで 1回。これは良くない。
必要な場合もあるだろうが、良くない場合もある。
ユーザーUrainをサポートしています。配列price[]の中身を調べるには?価格とは一体何なのでしょうか?
それがわからないのであれば、price[]配列を使う意味もなくなってしまいます。
この問題は、多通貨インジケーターを プログラミングする際に毎回発生します。例えば、通貨間の相関を表すインジケータを作成したいとします。すでに価格の配列があります。これが price[]です。2つ目の商品の価格をロードします。しかし、その型は何でしょうか?
app_priceパラメータを入力に持ち込み、price[]をバイパスして、価格を持つ2つの配列を個別にロードしなければなりません。
不便だ!
ユーザーUrainをサポートしています。配列price[]の中身を調べるには?価格とは何ですか?
また、その中のロジックは何ですか? 私たちはフィッティングしておらず、価格の配列で計算しているだけです。
しかし、特定の価格で計算する必要がある場合は、最初のフォームでOnCalculateコールを 使用し、app_priceを明示的に外側に指定してください。
なぜ論理的なのかというと、フィッティングしているわけではなく、価格の配列に対して計算しているだけだからです。
しかし、特定の価格で計算する必要がある場合は、最初のフォームでOnCalculateコールを 使用し、その中でapp_priceを明示的に指定します。
アレックス、トピックのタイトルを見てください。
インジケーターから インジケーターを呼び出し、そのインジケーターが別のインジケーターを呼び出す、
app_priceが必要なインジケーターを呼び出す際に、下位のインジケーターにどのように渡すか。
ユーザーが明確に定義している場合、各指標の価格の全セットを持ち運ぶのは経済的ではありません。しかし、フルセットでOnCalculate オーバーロードを選択すれば、そうなります。
もし、OnCalculateの 縮小版を適用し、同時にapp_priceを入力に入れると、混乱が生じます。
欠けているのは、現在のインジケータのバッファを使用して外部インジケータを呼び出す可能性です。
例えば、配信にストキャスティクスがないとします。
Kラインを計算し、バッファに入れました。
次に%Dラインを計算する必要があります。
ここで外部ウィザードを呼び出すことになる。
Kバッファを使って自分で計算するように言われるでしょう。
しかし、どうすればいいのか:
1. このウィザードのコードを知らず、コンパイルされたインジケーターとして購入した場合。
2.内蔵インジケーターはMQLインジケーターよりはるかに速くカウントされます。
また、入力バッファ上でインジケータを呼び出せると 非常に便利です。
.
欠けているのは、現在のインジケータのバッファを使用して外部インジケータを呼び出す可能性です。
例えば、配信にストキャスティクスがないとします。
Kラインを計算し、バッファに入れました。
次に%Dラインを計算する必要があります。
そこで外部ウィザードを呼び出します。
この可能性を実現するために外部ウィザードが必要なのでしょうか?
外部マスクは、ドキュメントからこの可能性に対応する必要がありますか?
ドキュメントによると、OTHERインジケータハンドルを渡す必要があります。 、私は現在のインジケータバッファを処理する可能性について話しました。 さらに。 OTHERインジケータハンドルを渡すことはできますが、バッファのどれを使用するかを指定する場所は見つかりませんでした。