Идентификатор инструмента
В S# инструменты из разных источников имеют унифицированные идентификаторы Security.Id. Это сделано для того, чтобы код торгового робота не зависел от типа подключения (Plaza II, Quik, Tinkoff и т.д.). Для идентификатора инструмента используется следующий синтаксис - [код инструмента]@[код площадки]. Например, для акций Лукойла идентификатором будет **LKOH@EQBR**. Для инструментов срочного рынка MOEX площадкой будет "FORTS". Так, например, для июньского фьючерса на индекс РТС идентификатором будет **RIM5@FORTS**.
Tip
Программа Hydra для скачивания маркет-данных нумерует папки с историей, основываясь на таком же механизме.
Переопределение алгоритма генерации идентификаторов
Для того, чтобы начать генерировать идентификаторы инструментов по своему алгоритму, необходимо создать наследника класса 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; } }
Далее, созданный генератор нужно передать в шлюз:
var _connector.SecurityIdGenerator = new CustomSecurityIdGenerator();