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

3.1 фиче реквест: Multi Security Strategy
Atom
3/22/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- счет, для РТС-Стандарта возможно третий счет)

Tags:


Thanks:


< 1 2 
Mikhail Sukhov

Avatar
Date: 3/25/2011
Reply


pyhta4og Go to

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

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


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

pyhta4og Go to

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

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

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


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

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy