订单簿示例
获得最佳价格
为了从订单簿中获得最佳价格,重要的是关注买单列表(Bids)和卖单列表(Asks)的前几个元素,因为这些代表了交易中可获得的最优价格:
var bestBid = orderBook.Bids.FirstOrDefault();
var bestAsk = orderBook.Asks.FirstOrDefault();
if (bestBid != null)
{
Console.WriteLine($"最佳买价: {bestBid.Price}");
}
if (bestAsk != null)
{
Console.WriteLine($"最佳卖价: {bestAsk.Price}");
}
或者使用现成的扩展方法 GetBestBid 和 GetBestAsk:
var bestBid = orderBook.GetBestBid();
var bestAsk = orderBook.GetBestAsk();
if (bestBid != null)
{
Console.WriteLine($"最佳买价: {bestBid.Price}, 数量: {bestBid.Volume}");
}
else
{
Console.WriteLine("没有最佳买单。");
}
if (bestAsk != null)
{
Console.WriteLine($"最佳卖价: {bestAsk.Price}, 数量: {bestAsk.Volume}");
}
else
{
Console.WriteLine("没有最佳卖单。");
}
分析订单簿深度
要分析订单簿的深度,可以从列表的开头开始,迭代 Bids 和 Asks 列表中的项目。这可以概览不同价格水平的订单分布,并帮助识别潜在的支撑和阻力水平:
foreach (var bid in orderBook.Bids)
{
Console.WriteLine($"买价: {bid.Price}, 数量: {bid.Volume}");
}
foreach (var ask in orderBook.Asks)
{
Console.WriteLine($"卖价: {ask.Price}, 数量: {ask.Volume}");
}
在订单簿中搜索成交量
用于在订单簿中搜索重要成交量的算法有助于识别大订单积聚的水平。这可以表明主要参与者的兴趣,并在做出交易决策时作为额外的信号。
算法:
double significantVolumeThreshold = 10000; // 阈值示例
Console.WriteLine("订单簿中的大额数量:");
foreach (var bid in orderBook.Bids)
{
if (bid.Volume >= significantVolumeThreshold)
{
Console.WriteLine($"买入: 价格 {bid.Price}, 数量 {bid.Volume}");
}
}
foreach (var ask in orderBook.Asks)
{
if (ask.Volume >= significantVolumeThreshold)
{
Console.WriteLine($"卖出: 价格 {ask.Price}, 数量 {ask.Volume}");
}
}
该算法有助于突出具有显著交易量的水平,这些水平可能在市场价格变动中发挥关键作用。