Livro de ofertas

OrderBookWidget apresenta os níveis de compra e venda, o preço médio, o diferencial, o volume acumulado e o sentimento do mercado. Estão disponíveis as vistas diagonal e empilhada, a inversão dos lados, a profundidade de 5 ou 10 níveis e um gráfico de profundidade em canvas.

Criação

import {
  OrderBookWidget,
  type TradingHost,
} from '@stocksharp/trading-controls';

declare const host: TradingHost;

const book = OrderBookWidget.create(
  document.querySelector<HTMLElement>('#order-book')!,
  { followsActive: true },
  {
    host,
    onPriceSelected: (price, side) =>
      console.log('preencher', price, side),
    onPriceExecuted: (price, side) =>
      console.log('executar', price, side),
    maxDepth: () => 10,
    pixelRatio: () => window.devicePixelRatio || 1,
  },
);

book.setSymbol('BTC@IMEX');

Um clique normal num nível chama onPriceSelected, enquanto um clique com Ctrl ou Cmd chama onPriceExecuted. O lado numérico 0 significa compra e 1 significa venda: clicar num preço de venda seleciona a compra e clicar num preço de compra seleciona a venda. O controlo fornece a intenção ao anfitrião, mas não envia a ordem.

Imagens e alterações do livro de ofertas

O primeiro quadro deve ser uma imagem completa:

book.applyFrame({
  symbol: 'BTC@IMEX',
  sequence: 1,
  isSnapshot: true,
  bids: [
    { price: 68_420.4, quantity: 2.5 },
    { price: 68_420.3, quantity: 4.1 },
  ],
  asks: [
    { price: 68_420.5, quantity: 1.8 },
    { price: 68_420.6, quantity: 3.2 },
  ],
});

Os quadros seguintes com isSnapshot: false são aplicados como alterações. Uma quantidade 0 elimina o nível. sequence deve aumentar sem interrupções; em caso de lacuna, o controlo chama host.trading.marketData.resubscribe(symbol, MarketDataLevels.Full) para obter uma nova imagem. Os níveis inválidos e um livro de ofertas cruzado são enviados para host.log.

Vista e estado

book.setDepth(10);
book.setView('stacked');
book.setInvertSides(false);
book.setShowDepthChart(true);

maxDepth() permite ao anfitrião reduzir o número de níveis num ecrã pequeno, enquanto pixelRatio() define a densidade da memória de suporte do canvas. As cores do gráfico são devolvidas por host.presentation.canvasPalette().

Para um painel que segue o instrumento ativo, as definições da vista são guardadas em host.preferences. Uma instância fixa guarda-as no estado do painel. Durante a criação, podem ser fornecidos symbol, depth, view, invertSides, showDepthChart e followsActive.

As ordens ativas de host.trading.marketData.getOrders() são assinaladas junto dos níveis correspondentes.

Métodos públicos

  • setSymbol, getSymbol — gerem o instrumento.
  • setDepth, getDepth — definem e devolvem a profundidade.
  • setView, setInvertSides, setShowDepthChart — alteram a vista.
  • getBids, getAsks — devolvem os níveis atuais.
  • isFollowsActive — indica se o painel segue o instrumento ativo.
  • applyFrame — aplica uma imagem ou alteração.
  • dispose — liberta os recursos.

Consulte também