Forum >
Wealth-Lab.Net + WLRTAlgoTrading
> Работа с портфелем инструментов
Работа с портфелем инструментов
Здравствуйте! Столкнулся со следующей проблемой: работаю с набором инструментов DataSetSymbols, в котором выбираю различные инструменты для входа в позицию на данном баре. При этом курсор установлен на каком-либо определенном (но любом) инструменте из DataSetSymbols. Суть в том, что когда я его(курсор) переставляю (выделяю другой инструмент), у меня меняется итоговая доходность стратегии, чего происходить явно не должно (исходя из того, что мы обрабатываем все инструменты DataSetSymbols). С DataSetSymbols работаю следующим образом: for(int bar = 20; bar < Bars.Count; bar++) { foreach(string symbol in DataSetSymbols) { SetContext(symbol, true); .................... ............ какие-то расчеты для данного инструмента...... ............... } RestoreContext(); } В чем может быть проблема? Спасибо.
|
RE:Работа с портфелем инструментов
При синхронизации SetContext(symbol, true) выбирается тайм фрейм базовой серии, в том случае если тайм фреймы у различных серий не совпадают, то приводится они будут к разным рядам для разных базовых серий и давать различные результаты.
|
RE:Работа с портфелем инструментов
Нет, все серии одного тайм-фрейма. У меня в наборе 6 серий: фьючерсы на Газпром, Сбер, Лукойл, Роснефть, ВТБ и индекс РТС. Всего наборов два вида: с дневным тайм-фреймом и часовым. Если смотреть "дневки", то при выделении любого инструмента (т. е. при определении базовой серии) кроме индекса РТС - доходность одинаковая. Если взять РТС как базовый - доходность меняется. При этом, также меняется и количество сделок. В случае с часовиками, доходность меняется при любой базовой серии. Еще, если можно, подскажите как задать комиссию и проскальзывание для каждого инструмента в отдельности? Ведь если я устанавливаю на проскальзывание для РТС 60 пунктов, то, скажем, для Сбера это явно многовато.
|
RE:Работа с портфелем инструментов
Максим, попробуйте сравнить итоговые сделки по разным "позициям курсора". Скорее всего, сами всё увидите - может быть управление капиталом, либо [CODE]foreach(string symbol in DataSetSymbols)[/CODE]даёт вам разный порядок инструментов в зависимости от текущего инструмента, ну или логическая ошибка где-то в основном цикле.
|
RE:Работа с портфелем инструментов
Проверьте одинаковая ли последовательность бумаг в цикле (foreach) при разных базовых сериях. Используете ли вы в коде базовую серию (Bars) явно? Насчет дневок, действительно вроде никаких проблем с синхронизацией быть не должно. Посмотрите еще количество баров при разных базовых сериях. Одинаково ли оно?
|
RE:Работа с портфелем инструментов
valenock, WL Support, Спасибо за помощь! Да, проблема оказалась в том, что различные серии имели разную длину истории. Сейчас все работает отлично. Кстати, а то, что foreach может перебирать инструменты не в одинаковой последовательности в зависимости от выбранной базовой серии, влияет только на распределение капитала, или здесь еще что-то имелось ввиду? Спасибо.
|
RE:Работа с портфелем инструментов
Имелось ввиду, что при разной последовательности бумаг последовательность сделок тоже будет разной и, например, при нехватке капитала будут пропущены разные сделки. Отсюда и разные результаты работы
|
RE:Работа с портфелем инструментов