Table of Contents

Идентификатор инструмента

В S# инструменты из разных источников имеют унифицированные идентификаторы Security.Id. Это сделано для того, чтобы код торгового робота не зависел от типа подключения (Plaza II, Quik, Tinkoff и т.д.). Для идентификатора инструмента используется следующий синтаксис - [код инструмента]@[код площадки]. Например, для акций Лукойла идентификатором будет **LKOH@EQBR**. Для инструментов срочного рынка MOEX площадкой будет "FORTS". Так, например, для июньского фьючерса на индекс РТС идентификатором будет **RIM5@FORTS**.

Tip

Программа Hydra для скачивания маркет-данных нумерует папки с историей, основываясь на таком же механизме.

Переопределение алгоритма генерации идентификаторов

  1. Для того, чтобы начать генерировать идентификаторы инструментов по своему алгоритму, необходимо создать наследника класса SecurityIdGenerator, и переопределить метод SecurityIdGenerator.GenerateId(System.String secCode, System.String boardCode ):

    class CustomSecurityIdGenerator : SecurityIdGenerator
    {
     public override string GenerateId(string secCode, ExchangeBoard board)
     {
     	// генерация идентификатора вида CODE--BOARD
     	return secCode + "--" + board.Code;
     }
    }
    
  2. Далее, созданный генератор нужно передать в шлюз:

    var _connector.SecurityIdGenerator = new CustomSecurityIdGenerator();