← Zurück

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

Добрый день.

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

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

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

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

War dieses Thema hilfreich?

Thema teilen

Kommentare (3)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

valenock
valenock

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

President
President Autor

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

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

valenock
valenock

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

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

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