← Zurück

Задать начальную позицию стратегии?

Добрый день! Допустим у меня есть 10 контрактов. Начинается новый день, хочу торговать 3 разные стратегии по данному инструменту. В 2 стратегиях использовать лот 3 и в одной лот 4. Соответсвенно мне нужно инициировать начальное значение позиции у 2х стратегий 3 контракта и у одной 4. Свойство PositionManager.Position - read only. Метод init работает через сделки, а сделок не было так-как начало дня. Как по другому можно инициировать начальную позицию стратегии?

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

Garry
Garry Autor

Перешел на 3.0.19 с 2.6. Что-то с позициями не пойму совсем. Eсть у меня 3 акции сбербанка(позиции по бумагам, текущий остаток 3). Раньше легко получал эту позицию кодом Security cursec = Trader.Securities.First(p => p.Code == ins1.seccode); Position posi = this.Trader.Positions.FirstOrDefault(p => p.Security.Code == cursec.Code);

Теперь этот код не работает, в Trader.Positions нет ни одной позиции, ДДЕ вывод идет, таблица настроена правильно. При этом событие Trader.PositionsChanged при изменении позиции вызывается нормально, в нем информация о позиции корректная. Думал нововведение какое, отыскал метод Trader.GetPosition(). Попробовал вот так:

Security cursec = Trader.Securities.First(p => p.Code == ins.seccode); Position posi = new Position(); foreach (Portfolio por in this.Trader.Portfolios) { Position pos1 = this.Trader.GetPosition(por, cursec); if (pos1 != null) }

Также не выдает ни одной позиции. Это баг или нет? Как теперь можно получить позицию по инструменту?

Garry
Garry Autor

С получением позиции разобрался, прочитал в соседней ветке, Trader.ProcessDataError выдавал ошибку. Позиции не создавались т.к. не была добавлена в таблицу инструментов одина из бумаг, присутствующая в таблице позици по бумагам. Первый вопрос так и остался, возможно ли как нибудь инициировать начальное значение позиции стратегии? В принципе вопрос решаемый можно, использовать дополнительные переменные для постоянной корректировки позиции на начальную величину, что сейчас и делаю, но просто не очень удобно.

Mikhail Sukhov
Mikhail Sukhov

Garry: С получением позиции разобрался, прочитал в соседней ветке, Trader.ProcessDataError выдавал ошибку. Позиции не создавались т.к. не была добавлена в таблицу инструментов одина из бумаг, присутствующая в таблице позици по бумагам. Первый вопрос так и остался, возможно ли как нибудь инициировать начальное значение позиции стратегии? В принципе вопрос решаемый можно, использовать дополнительные переменные для постоянной корректировки позиции на начальную величину, что сейчас и делаю, но просто не очень удобно.

Нужно сделать наследника от StrategyPositionManager и через свойство Position передать первоначальное значение.