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


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

Теги:


Спасибо:




3 Ответов
Garry

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


Перешел на 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)
{
posi = pos1;
}
}

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

Garry

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


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

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 11.04.2011
Ответить


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


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


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

loading
clippy