3.1 фиче реквест: Multi Security Strategy
Atom
22.03.2011


Пишу сюда пожелания к будущим версиям 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- счет, для РТС-Стандарта возможно третий счет)

Теги:


Спасибо:


< 1 2 
Mikhail Sukhov

Фотография
Дата: 25.03.2011
Ответить


pyhta4og Перейти

Мы с рефлектором тоже смотрели. Глаза сломали. В новом StrategyPositionManager в режиме расчета позиции по сделкам похоже баг - позиция только увеличивается.

Еще, я могу ошибаться, но если ордер на 3 контракта поматчат в три попытки по 1 контракту то тоже неправильно посчитает.


http://stocksharp.com/fo...tion-v-PositionManager/

pyhta4og Перейти

Насчет дочерних буду думать. В принципе идейно правильно, на одну ногу Quoting-продажу напустить, на другую маркет-закупку. И из родительской запускать то одну то другую.

Я не пробовал пока запускать несколько стратегий параллельно.

У них события NewOrder/OrderChanged вызываются только для тех заявок, что инициализированы именно этой стратегией?


Этой и дочерними. Тоесть, родительная стратегия в себе содержит все дочерние заявки + свои (если таковые есть). Тоже справедливо и для событий - событие дочерней стратегии инициирует событие родительской.
Спасибо:
< 1 2 

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy