В статье описываются возможности языка MQL5 с точки зрения событийно-ориентированного программирования. Преимущество данного подхода состоит в том, что программа может получать информацию о поэтапном выполнении торговой операции. Приводится пример того, как с помощью обработчика события TradeTransaction можно получать и обрабатывать информацию о совершаемых торговых действиях. Думаю, что такой подход можно смело применять для целей копирования торговых сделок с терминала на терминал.
Trade Request Structure - Data Structures - Constants, Enumerations and Structures - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
ほとんどの場合、タンブラーは必要ありませんが、市場取引ハンドラーは必要です。
...しかし、私の質問では、トレーダーが自分のターミナルから発注した注文ではなく、他の市場参加者の注文のアクションを読む可能性を意味しました。つまり、私が書いたフィルターは、現在の市場操作に適用されるべきです。MetaTraderはそのような情報を提供していますか?スタックイベントハンドラーにそのような可能性は見当たりませんでした。
スタックには、現在市場に出ているすべての指値注文が表示されます。現在の市場操作」とはどういう意味ですか?
私の説明がわかりにくかったら申し訳ありません。もう少し詳しく説明させてください。ENUM_BOOK_TYPEには、スタックにリストされている注文は4種類しかありません。それらは限定注文と成行注文の2種類に分けられる。さて、私がこの取引をどのように理解しているかをお話ししましょう。ここで私が疑問に思っていることを警告しておきますので、もし間違った理解をしていたら、訂正してください。つまり、こうだ。ここで考えられるバリエーションには2つのグループがある。
私が考えている作業は、取引を2つのカテゴリーに分けることである。1つ目は指値注文によるもの、2つ目は成行注文によるものである。これが何のためなのかは、内密にお願いします。このようなフィルターの実装を1Cで見たことがあります!それを見たとき、私も非常に驚いた。でも、そのアイデアは気に入った。そして今、私が理解しているように、OnTickハンドラをOnBookEventハンドラとドッキングさせる必要があります。どうすればいいのか、全くわからないので、皆さんの力を貸してください。
外為市場でブッキングイベントを作成し、未決済の注文を 確認することは可能ですか?当然ながら、単一の流動性プロバイダーの場合です。
「全売り注文のうち、#6注文が価格7700ルーブル、数量1011ロットで最大の数量を持っていたことは明らかである。39番の注文は、価格が7653ルーブル、数量が534ロットで、すべての買い注文の中で最大の数量であった。"
6番でも39番でもない。これらはレベルであり、以下の方法でアクセスできる。
または
MqlBookArrayは、[0]から[ArraySize(bookArray)/2-1]までの売り注文と、[ArraySize(bookArray)/2]から[ArraySize(bookArray)-1]までの買い注文で構成される。私の知る限り、書籍には2n個のレベルがあります。そして、私が間違っていなければ、レベルはインデックス 0 (ゼロ) から始まるので、数学的モード (出来高が最も多く、売りオファーの頻度が最も高い) のインデックスは 5 (出来高 1011、レベル/価格 7700) であり、買いオファーのモードは 38 (出来高 534、レベル/価格 7653) です。
買いオファーはサポートと なる。そして売りはレジスタンスと なる。
どうすればレベル数を 増やすことができるのかがわかればいいのだが......。
ご質問ありがとうございます。まず最初に、BookEventProcessor2はインジケーターではなく、Expert Advisorです。必要なのは、ソースファイルとヘッダーファイルを1つのフォルダに入れることだけです。以下の添付画像を ご覧ください。
色を素早く変えたい場合は、CBookBarsPanel::Init()メソッドに行って ください:
または、メソッドのパラメータを少し変更してください:
こんにちは、デニス
すぐに返信いただきありがとうございます。 エキスパートアドバイザーは現在かなりうまく動作しています。 しかし、私はこのリファレンスについて話そうとしていました:
OrderSend() 関数を 使用して取引リクエストを送信する際、いくつかの操作では注文タイプの表示が必要です。注文タイプは特別な構造体MqlTradeRequestのtype フィールドで 指定され、ENUM_ORDER_TYPE列挙の値を受け入れることができます。
ENUM_ORDER_TYPE
識別子
説明
ORDER_TYPE_BUY
成行買い注文
注文タイプ
成行売り注文
注文タイプ_買い指値
買い指値注文
注文タイプ_売り指値
指値売り注文
注文タイプ_買い指値
買い指値注文
注文タイプ_売り逆指値
ストップ売り注文
指値買い注文
注文価格に到達すると、ストップリミット価格で買い指値注文が発注されます。
売り指値注文
注文価格に到達すると、指値注文がストップリミット価格で発注されます。
ORDER_TYPE_CLOSE_BY
反対売買でポジションを決済する注文
Mql5のターミナルを見ると、経験豊富なアドバイザーがORDER_TYPE_BUYとORDER_TYPE_BUYを 表示しているのがわかります。しかし、私の質問は、買い注文を見る方法はわかるのですが、大ボスはどこにお金を置いているのか、アイスバーグと特定の価格レベルでの保留中の注文を抱きしめています。
それは可能ですか?
よろしくお願いします。
rder_type_sell_limit
売り指値注文
注文タイプ_買い指値
買い逆指値注文