板情報の描画

コードから作成したストラテジーは、板情報 パネルに、板情報パネル キューブと同様にデータを描画できます。そのためには、次のコードを記述する必要があります。

  1. IOrderBookSource インターフェイスの派生を作成します。Designer はこれを使用してソースを識別します。この例では、インターフェイスの既定実装である OrderBookSource クラスを使用しています。
private static readonly OrderBookSource _bookSource = new OrderBookSource("SMA");
  1. OrderBookSources プロパティをオーバーライドします。
public override IEnumerable<IOrderBookSource> OrderBookSources
	=> new[] { _bookSource };

これにより、ストラテジーは外部コード (この場合は 板情報 パネル) に、利用可能な板情報のソースを示します。複数のソースが発生するのは、ストラテジーが複数の板情報 (異なる銘柄、または各種変更を加えた板情報、たとえば 間引き板情報 など) を扱う場合です。

  1. ストラテジーコードに、板情報へのサブスクリプションの初期化を追加します。SmaStrategy の場合、OnStarted メソッドの末尾に追加します。
var bookSubscription = new Subscription(DataType.MarketDepth, Security);
			
bookSubscription
	.WhenOrderBookReceived(this)
	.Do(book =>
	{
		// 板情報を描画します。
		DrawOrderBook(bookSubscription, _bookSource, book);
	})
	.Apply(this);
			
Subscribe(bookSubscription);

Do ハンドラー内では、板情報を描画用に送信する DrawOrderBook メソッドが呼び出されます。

  1. 板情報 パネルを追加し、コードで作成したソースを選択します。

Designer_Source_Code_OrderBook_00

  1. テスト用にストラテジーを起動すると、板情報にデータが入力されます。

Designer_Source_Code_OrderBook_01