Опционы BaseAsset.GetStrikeStep() всегда возвращает 0
Atom Ответить
06.09.2012


Привет, форумчане.

Проблема такая:
GetStrikeStep() на любом БА (базовый актив) всегда 0. При этом портфель и БА зарегистрированы. Данные по ним приходят. Все параметры БА (BestBid, BestAsk) достаются без проблем. GetCentralStrike() тоже отрабатывает корректно.
Код

var strikeStep = BaseAsset.GetStrikeStep(); // strikeStep - 0


Это бага в либе или при каких условиях еще я могу получить 0 этим методом?


Теги:


Спасибо:




6 Ответов
Mikhail Sukhov

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


А само поле Strike?
Спасибо:

pehas

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


Mikhail Sukhov Перейти
А само поле Strike?


В BaseAsset проверить сейчас не могу, нет лицензии на этой машине (рабочая). Вечером проверю, отпишусь.
Но все Strike самих опционов полученных через BaseAsset.GetCall и GetPut - есть.
Автор топика
Спасибо:

pehas

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


Mikhail Sukhov Перейти
А само поле Strike?


Поле strike у BaseAsset - 0. Но это и не опцион. Так что вроде логично. У опционов это поле соответствует страйку
Автор топика
Спасибо:

Alexander

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


Код
		public static decimal GetStrikeStep(this Security underlyingAsset)
		{
			var options = underlyingAsset.GetDerivatives().Filter(OptionTypes.Call).OrderBy(s => s.Strike);
			return options.ElementAt(1).Strike - options.ElementAt(0).Strike;
		}


Вот исходный код данного метода.
Попробуйте у себя подебажить его, посмотреть что возвращает GetDerivatives().
Мне ошибку найти не удалось.

Просьба отписаться по результатам.
Спасибо:

pehas

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


Подебажил

Жук выползает потому, что в определении метода GetStrikeStep не учитывается ExpireDate
И получается, что если в деревативах базового актива есть опционы разных серий, то сравниваются соответственно первые колы разных серий с одинаковыми страйками, т.к. они у вас в функции сортируются по страйку

вот скрин того, что у вас находится в результате в коллекции options
[img=http://imm.io/EkMG]Коллекция options[/img]
Автор топика
Спасибо: Mikhail Sukhov Alexander

Mikhail Sukhov

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


pehas Перейти
Подебажил

Жук выползает потому, что в определении метода GetStrikeStep не учитывается ExpireDate


Поправим.
Спасибо:


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

loading
clippy