Exemplos com o Livro de Ofertas
Obter os Melhores Preços
Para obter os melhores preços do livro de ofertas, é importante focar-se nos primeiros elementos das listas de ordens de compra (Bids) e ordens de venda (Asks), uma vez que estes representam os preços disponíveis mais favoráveis para transações:
var bestBid = orderBook.Bids.FirstOrDefault();
var bestAsk = orderBook.Asks.FirstOrDefault();
if (bestBid != null)
{
Console.WriteLine($"Melhor preço de compra: {bestBid.Price}");
}
if (bestAsk != null)
{
Console.WriteLine($"Melhor preço de venda: {bestAsk.Price}");
}
Ou use os métodos de extensão prontos a usar GetBestBid e GetBestAsk:
var bestBid = orderBook.GetBestBid();
var bestAsk = orderBook.GetBestAsk();
if (bestBid != null)
{
Console.WriteLine($"Melhor preço de compra: {bestBid.Price}, volume: {bestBid.Volume}");
}
else
{
Console.WriteLine("Não há melhores ordens de compra.");
}
if (bestAsk != null)
{
Console.WriteLine($"Melhor preço de venda: {bestAsk.Price}, volume: {bestAsk.Volume}");
}
else
{
Console.WriteLine("Não há melhores ordens de venda.");
}
Analisar a Profundidade do Livro de Ofertas
Para analisar a profundidade do livro de ofertas, pode percorrer os itens nas listas Bids e Asks, começando pelo início da lista. Isto fornece uma visão geral da distribuição das ordens em diferentes níveis de preço e ajuda a identificar potenciais níveis de suporte e resistência:
foreach (var bid in orderBook.Bids)
{
Console.WriteLine($"Preço de compra: {bid.Price}, volume: {bid.Volume}");
}
foreach (var ask in orderBook.Asks)
{
Console.WriteLine($"Preço de venda: {ask.Price}, volume: {ask.Volume}");
}
Procurar Volumes no Livro de Ofertas
Um algoritmo para procurar volumes significativos no livro de ofertas ajuda a identificar níveis onde se acumulam ordens grandes. Isto pode indicar o interesse de grandes participantes e servir como sinal adicional ao tomar decisões de negociação.
Algoritmo:
- Determinar um limiar de volume que será considerado significativo.
- Percorrer as ordens nas listas Bids e Asks, comparando o volume de cada ordem com o valor limiar.
- Registar os níveis de preço onde foram encontradas ordens com volume acima do limiar.
double significantVolumeThreshold = 10000; // Exemplo de valor de limiar
Console.WriteLine("Volumes significativos no livro de ordens:");
foreach (var bid in orderBook.Bids)
{
if (bid.Volume >= significantVolumeThreshold)
{
Console.WriteLine($"Compra: preço {bid.Price}, volume {bid.Volume}");
}
}
foreach (var ask in orderBook.Asks)
{
if (ask.Volume >= significantVolumeThreshold)
{
Console.WriteLine($"Venda: preço {ask.Price}, volume {ask.Volume}");
}
}
Este algoritmo ajuda a destacar níveis com volumes significativos, que podem desempenhar um papel importante nos movimentos dos preços de mercado.