Очередь заявок

Для работы с очередью заявок в интерфейсе ISecurity есть следующие методы:

  • GetBuyQueue(int barNum) - Получить очередь заявок для покупок.

  • GetSellQueue(int barNum) - Получить очередь заявок для продаж.

  • UpdateQueueData() - Обновить закешированный стакан (не влияет на FinInfo.Ask / FinInfo.Bid).

Методы GetBuyQueue и GetSellQueue выдают список объектов IQueueData. На данный момент эти методы всегда возвращают текущую очередь, т.е. не зависят от передаваемого параметра barNum.

Интерфейс IQueueData

IsBuyPart

LastUpdate

Время последнего обновления

Price

Цена

Quantity

Количество

HasOwnOrderContains

Есть ли наши ордеры

Security

Доступ к инструменту

Пример, выведем данные очередей в лог:

using System;
using System.Text;
using System.Linq;
using TSLab.Script;
using TSLab.Script.Handlers;

namespace MyLib
{
    public class GetQueues : IExternalScript
    {
        public void Execute(IContext ctx, ISecurity sec)
        {
            var level = 5;

            // Получить очереди заявок
            var queueBuy = sec.GetBuyQueue(0).ToArray();
            var queueSell = sec.GetSellQueue(0).ToArray();

            var sb = new StringBuilder();
            var n = level;

            // Выводим в лог информацию по очереди продаж (5 уровней)
            foreach (var item in queueSell.Take(level).Reverse())
            {
                sb.AppendFormat("Sell {0}: {1} - {2}\r\n", n--, item.Price, item.Quantity);
            }

            n = 1;
            // Выводим в лог информацию по очереди покупок (5 уровней)
            foreach (var item in queueBuy.Take(level))
            {
                sb.AppendFormat("Buy {0}: {1} - {2}\r\n", n++, item.Price, item.Quantity);
            }

            ctx.Log(sb.ToString());
        }
    }
}

Информация из TSLab совпадает с данными из терминала.

Last updated