3.1 фиче реквест: Multi Security Strategy
Пишу сюда пожелания к будущим версиям S#.
Следующее пожелание вызвано попыткой написать что-то типа PairTrading
MultiSecurityStrategy
============================
Редизайн Strategy для поддержки нескольких Security в одной Strategy.
Сейчас у Strategy фиксирована одна Security, один Portfolio. Методы BuyAt()/SellAt() привязаны к этой Security.
PositionManager трекает ровно одну Security.
Это не означает что стратегию работающую по нескольким инструментам нельзя сделать. Достаточно генерировать Order и руками выставлять в нем Security, Portfolio. Но позиции тоже придется мониторить руками.
Что хочется. Класс PositionManager, трекающий отображение (Security,Portfolio)->Position
Как я понимаю в самом BaseTrader так и сделано. Хочу, чтобы в PositionManager тоже было свойство Positions, элементы которого Position = (Portfolio,Security,CurrentValue)
C учетом того что стратегия одну Security скорее всего будет на одном Portfolio торговать, методы Strategy.BuyAt(), SellAt() в идеале должны принимать аргумент Security, находить для него Portfolio где эта Security торгуется (первый попавшийся Portfolio, если надо - потом его можно переопределить).
Понятно, что для этого надо по Security подходящий Portfolio искать (типа для LKM1@RTS это -RF- счет в SmartCOM, для LKOH@EQBR это -MS- счет, для РТС-Стандарта возможно третий счет)