Стратегия работающая с несколькими инструментами и портфелями

Стратегия работающая с несколькими инструментами и портфелями
Atom
18.06.2011
President


Добрый день.

Стратегия работает с несколькими инструментами и портфелями. Как иделологически это правильнее реализовывать на Stock#?

Вижу два варианта: 1. В MyStrategy добавляется нужное количество полей для содержания всех security и portfolio Вся логика в MyStrategy.OnProcess() При этом поля Strategy.Security и Strategy.Portfolio не используются.

2. В MyStrategy добавляются child-стратегии - по одной на каждый инструмент. Вся логика по-прежнему в MyStrategy.OnProcess(), при этом если нужно что-то купить-продать - имплементация этого делается в ChildStrategy.СвойМетод(). А ChildStrategy.OnProcess() насколько я понимаю тут не используется. Алгоритм самой стратегии тут усложняется (лишние сущности без которых можно обойтись) но преимуществом тут наверное может быть использование PnLManager и других классов до изучения которых я еще не добрался.

Я пока пользуюсь первым вариантом - но наличие неиспользуемых полей Strategy.Security и Strategy.Portfolio смущает.


Теги:


Спасибо:


valenock

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


Не очень понятно, что именно у вас за стратегия - предположу, что это арбитраж или нечто подобное. Я бы сделал просто несколько стратегий, каждая со своим Security / Portfolio и, возможно, на своём ITrader. По каждой стратегии отдельно велись бы сделки/PnL/отчёты, а сам итоговый подсчёт делался бы исходя из вашей логики работы.
Например, раз в минуты перебор работающих стратегий + суммирование PnL / позиций по ним, или отправка СМС если просадка стала критичной. Либо через childStrategies, как собираетесь вы - отличный вариант.

Спасибо:

President

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


valenock: Не очень понятно, что именно у вас за стратегия - предположу, что это арбитраж или нечто подобное. Я бы сделал просто несколько стратегий, каждая со своим Security / Portfolio и, возможно, на своём ITrader. По каждой стратегии отдельно велись бы сделки/PnL/отчёты, а сам итоговый подсчёт делался бы исходя из вашей логики работы. Например, раз в минуты перебор работающих стратегий + суммирование PnL / позиций по ним, или отправка СМС если просадка стала критичной. Либо через childStrategies, как собираетесь вы - отличный вариант.

спасибо за ответ. вот тут http://stocksharp.com/posts/m/9091/ выяснилось что у стратегии обязательно должен быть Security и Portfolio и в принципе можно разбить стратегии по бумагам - НО вся логика все равно будет в какой-то центральной управляющей стратегии - алгоритм-то принимает решение сразу по нескольким бумагам. получается что child strategy в этом случае нужно чисто для удобства подсчета PnL/отчетов/сделок. но тогда вопрос - какую security и какой portfolio проставлять у центральной управляющей стратегии?

Спасибо:

valenock

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


Ну выставлять можно любую - это в данном случае не очень важно - ведь материнская стратегия торговли не ведёт вообще по вашей логике, а просто для учёта эквити.

Я бы просто вообще от неё отказался, так как слабо представляю себе учёт эквити и позы по разным активам. Например, если у вас арбитраж и одна нога открыта, а вторая пока нет, то на эквити может появиться нехарактерный шип. Аналогично по контролю позиции - 7 лукойлов не сложить с тремя сургутами как не старайся. Если добавить сюда арбитраж с фучами, то голова кругом идёт - всё это придётся так или иначе учитывать в своём собственном коде.

т.е. чем именно будет заниматься материнская стратегия мне не очень понятно. Если вы это понимаете - то вариант с childStrategies - отличный выбор

Спасибо:


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

loading
clippy