Dibujo del libro de órdenes
Una estrategia creada desde código puede dibujar datos en el panel Libro de órdenes de forma similar al cubo Panel de libro de órdenes. Para ello, debe escribirse el siguiente código.
- Cree un descendiente de la interfaz IOrderBookSource, que Designer usa para identificar la fuente. En el ejemplo se usa la clase OrderBookSource, que es la implementación predeterminada de la interfaz:
private static readonly OrderBookSource _bookSource = new OrderBookSource("SMA");
- Sobrescriba la propiedad OrderBookSources:
public override IEnumerable<IOrderBookSource> OrderBookSources
=> new[] { _bookSource };
Así, la estrategia indicará al código externo (en este caso, al panel Libro de órdenes) qué fuentes de libros de órdenes están disponibles. La multiplicidad de fuentes aparece cuando la estrategia trabaja con varios libros de órdenes (distintos instrumentos, o libros de órdenes con diversas modificaciones, como por ejemplo un libro de órdenes reducido).
- Añada la inicialización de la suscripción al libro de órdenes en el código de la estrategia. En el caso de SmaStrategy, se añade al final del método OnStarted:
var bookSubscription = new Subscription(DataType.MarketDepth, Security);
bookSubscription
.WhenOrderBookReceived(this)
.Do(book =>
{
// dibujar el libro de órdenes
DrawOrderBook(bookSubscription, _bookSource, book);
})
.Apply(this);
Subscribe(bookSubscription);
En el manejador Do se llama al método DrawOrderBook, que envía el libro de órdenes para dibujarlo.
- Añada el panel Libro de órdenes y seleccione la fuente creada en el código:

- Después de iniciar la estrategia para pruebas, el libro de órdenes se llenará con datos:
