Для изменения размера нажмите или перетащите
Основные алгоритмы

Наравне с Котирование в S# добавлен класс TraderHelper, в который входят различные методы простых торговых алгоритмов:

  1. Очистить стакан от собственных заявок через метод GetFilteredQuotes(IEnumerableQuote, IEnumerableOrder, IEnumerableOrder) (чтобы выставлять заявки относительно других участников рынка, и предотвратить борьбу своих роботов друг с другом):

    C#
    // любой инструмент
    var someSecurity = trader.Securities.First();
    
    var someOrders = new List<Order>();
    // заполняем коллекцию собственными заявками
    
    // вычисляем истинно-лучшую цену на покупку
    Console.WriteLine(trader.GetMarketDepth(someSecurity).GetFilteredQuotes(OrderDirections.Buy, someOrders, null).Max(q => q.Price));
  2. Рассчитать рыночную цену по инструменту через метод GetMarketPrice:

    C#
    // любой инструмент
    var someSecurity = trader.Securities.First();
    Console.WriteLine(someSecurity.GetMarketPrice(OrderDirections.Buy));
  3. Обрезать цену через метод ShrinkPrice(Security, Decimal, ShrinkRules), чтобы она стала кратной шагу цены, и торговая система приняла заявку:

    C#
    // любой инструмент
    var someSecurity = trader.Securities.First();
    Console.WriteLine(someSecurity.ShrinkPrice(13453.65342));
  4. Получить позицию по совершенным сделкам через метод GetPosition. В примере идет расчет по торговой стратегии - объекту класса Strategy:

    C#
    Strategy someStrategy = ...;
    Console.WriteLine(someStrategy.Trades.GetPosition());
  5. Проверить, является ли текущее время торгуемым (не закончилась ли сессия, не начался ли клиринг) через метод IsTradeTime:

    C#
    // любой инструмент
    var someSecurity = trader.Securities.First();
    
    Console.WriteLine(someSecurity.Exchange.IsTradeTime(currentTime));
  6. Остальные методы класса TraderHelper описываются в разделах Снятие заявок и Замена заявок.

См. также