記事"MQL5 クックブック: 板情報の実装"についてのディスカッション

 

新しい記事 MQL5 クックブック: 板情報の実装 はパブリッシュされました:

この記事では、板情報(DOM)を利用する方法を示します。また、CMarketBookクラスの動作についても説明します。これは、MQL5クラスの標準ライブラリを拡張し、DOMを使用する際の便利な方法となります。

MQL5は常に進化し、毎年、より多くの情報を提供するように提案しています。そのようなデータの1つが板情報です。リミットオーダーのボリューム と価格帯を示す、特殊な表です。MetaTrader5では、リミットオーダーの板情報が搭載されていますが、常に十分という訳ではありません。まず、 EAはシンプルかつ便利な方法で板情報にアクセスできなれければなりません。確かに、MQL5はそのような情報をもとに稼働する特徴がありますが、それら は別枠で算術計算を要求する程度の低い特徴です

しかし、すべての途中計算を省くことができます。板情報で稼働する特殊なクラスを記述すれば良いのです。複雑な計算は板情報の内部で実行され、クラ ス自体はDOMの価格とレベルの実行のための便利な方法を提供します。このクラスは、市場の深さでの価格の現在の状態を反映し、速やかになる指標の形で効 率的なパネルを簡単に作成できるようになります。:


図1. パネル表示された板情報

この記事ではユーザーに板情報 (DOM) の利用法を提示します。また、CMarketBookクラスの実行原理についても説明します。これは、MQL5の標準ライブラリの拡張で、DOMの便利な使い方を提示します。

この記事の最初のチャプターの後では、MetaTrader5による一般的な板情報が興味深いものとなるでしょう。インジケーターにあるものと重複 するようなものではなく、まったく新しいものを提示します。ユーザーフレンドリーな板情報の実践的な生成例で、オブジェクト指向プログラミングの原則が複 雑なデータ構造の処理を可能にする様子を示したいと思います。MQL5でEAから直接、板情報へアクセスすることは難しくありません。そして、ビジュアル 化することによりとても便利になります。

作者: Vasiliy Sokolov

 
長い間読んだけど、何が言いたいのか理解できなかった?
 
Михаил:
長い間読んできましたが、なぜなのか理解できませんでした。

少なくとも、楽器の現在の流動性を分析するための(標準ライブラリの ような)クラスが用意されているべきだと思います。

Vasilyはよくできている!高いコードレベルと体系的なアプローチ。よくやった!

 
Михаил:
長い文章だが、なぜこんなことをするのか理解できなかった。
Dennis Kirichenko:

少なくとも、楽器の現在の流動性を分析するためのクラス(Standard Libraryの ような)が用意されているべきだと思う。

Vasilyはよくやった!高いコードレベルと体系的なアプローチ。よくやった!

その通りです。私の "MQLレシピ "の課題は、MQLスタンダード・ライブラリーを新しい非自明なクラスで拡張し、トレーダーの作業をより便利にすることです。

プライス・スタックに関しては、レベルIIデータへの最も効率的なアクセス・メカニズムを提供することが重要 だ。これは、OnBookEventごとにスタックを完全に検索するよりも、仲介クラスを通して作業する方がはるかに速く(そしてもちろんより便利に)なる場合です。プライス・グラス・クラスに組み込まれているアルゴリズムには理由があります。

 
Vasiliy Sokolov:

その通りだ。私の "MQLレシピ "の仕事は、標準的なMQLライブラリーを新しい非自明なクラスで拡張し、トレーダーの仕事をより便利にすることだ。

プライス・ブックに関しては、レベルIIデータへの最も効率的なアクセス・メカニズムを提供することが重要 だ。これは、各OnBookEventでスタックを完全に検索するよりも、仲介クラスを介して作業した方がはるかに高速(そしてもちろんより便利)になる場合です。プライス・グラス・クラスに組み込まれているアルゴリズムには理由があります。

 
グラスでの取引に役立つ情報だ!この件に関して同じ志を持つ人がいるのは良いことだ )
 
Михаил:

ミハイル、私たちはまだ隣のスレッドで あなたから最後の取引の方向性を学ぶのを待っています。

また、MetaTrader5でイベントモデルを使用する方法についての記事を書くことを約束したと思います。最後にそれを読みたいと思います。

 
Vasiliy Sokolov:

ミハイル、私たちはまだ隣のスレッドで あなたから最後の取引の方向性を学ぶのを待っています。

また、MetaTrader5でイベントモデルを使用する方法についての記事を書くことを約束したと思います。最後にそれを読みたいと思います。

その記事は公開されていませんが(あなたの記事と違ってサイズが小さい)、私のブログで読むことができます。

P/S 隣のスレッドで、方向性について読んでください。

ところで、記事について一言。

あなたの書き方ではできない:

//+------------------------------------------------------------------+
//| ブックイベント機能|
//+------------------------------------------------------------------+
void OnBookEvent(const string &symbol)
  {
//---
   printf("による価格ガラス + symbol +  "変更"); 
  }

BookEventイベントはブロードキャストだからです。

なぜなら、BookEventイベントはブロードキャストされるからです。そして、それを受信するようにサブスクライブすると、OnBookEvent()ですべてを受信することになります、

で、マーケット・ウォッチで開いているものすべてを受信することになります。

そのため、選択したシンボルのイベントをフィルタリングする必要があります:

//+------------------------------------------------------------------+
//| ブックイベント機能|
//+------------------------------------------------------------------+
void OnBookEvent(const string &symbol)
  {
//---
    if ( symbol == _Symbol )
    { 
      printf("による価格ガラス + symbol +  "変更");
    } 
  }
 
Михаил:

その記事は掲載されなかったが(あなたの記事と違ってサイズが小さい)、私のブログで読むことができる。

P/S 隣のスレッドで、その方向性についてお読みください...。

ところで、記事について一言。

あなたの書き方ではできない:

BookEventイベントはブロードキャストだからです。

なぜなら、BookEventイベントはブロードキャストされるからです。そして、それを受信するようにサブスクライブすると、OnBookEvent()ですべてを 受信することになります、

で、マーケット・ウォッチで開いているものすべてを受信することになります。

そのため、選択したシンボルに対してのみイベントをフィルタリングする必要があります:

マイケル、ドキュメントより:

MarketBookAdd

指定された商品の価格ブックのオープンを提供し、また 指定された ブックの変更に関する通知を受信するようにサブスクライブ します。

bool MarketBookAdd(
stringsymbol// symbol
);

つまり、開発者は、MarketBookAdd の定義済みシンボルのスタックが変更されたときだけ OnBookEvent が呼び出されるようにする目的で、MarketBookAdd を 導入しました。従って、OnBookEventには、定義済みのシンボル以外は呼ばれない。

 

OnBookEvent()を読む

В отличие от других событий, событие BookEvent является широковещательным.
Это означает, что достаточно одному эксперту подписаться на получение события BookEvent с помощью функции MarketBookAdd,
все остальные эксперты, имеющие обработчик OnBookEvent(), будут получать это событие.
Поэтому необходимо анализировать имя символа, которое передается в обработчик в качестве параметра const string& symbol.
 

こんにちは、

ご投稿ありがとうございました。

まさに私が探していたものです。

市場の深さは、スキャルパーにとって素晴らしい指標になります。

しかし、問題なのは、私の端末では市場の出来高の深さの情報を見ることができないことです。

ブローカーが提供する出来高情報にアクセスするにはどうすればいいでしょうか?