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


Добрый день.

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

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

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

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

Теги:


Спасибо:




3 Ответов
valenock

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


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

President

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


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


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

valenock

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


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

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

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


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

loading
clippy