расчет грек под Plaza
Atom Ответить
07.03.2012


под квик все понятно как, к примеру до того как я добавил обработку дополнительных колонок в квике,
мне выдавало ошибку при расчете грек, "истекла дата экспирации"

Код
this.Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.Strike);
             this.Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.Volatility);
             this.Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.UnderlyingSecurity);
             this.Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.TheorPrice);
             this.Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.OptionType);
             this.Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.ExpiryDate);


начали обрабатываться дополнительные колонки и процесс расчета греков заработал

А как это сделать в плазе? пробовал провести расчет с вкл. сервисом волатильности, но не помогло.
Сервис точно работает так как теоретическая цена и волатильность считается для опциона.

И вот мой вопросBlink как посчитать греки для Plaza2

Код
var Greeks_Put_minus2Strike = new BlackScholes(_SECURITY_Put_minus2Strike);

             Gamma_Put_minus2Strike = Greeks_Put_minus2Strike.Gamma(volatility_Put_minus2Strike);
             Theta_Put_minus2Strike = Greeks_Put_minus2Strike.Theta(volatility_Put_minus2Strike);
             Vega_Put_minus2Strike = Greeks_Put_minus2Strike.Vega(volatility_Put_minus2Strike);
             Delta_Put_minus2Strike = Greeks_Put_minus2Strike.Delta(volatility_Put_minus2Strike);


ну вот на этот код и ругается, в квике как я сказал все работает отлично!
Уважаемые разработчики! Помогите разобраться! Как вы в Plaze считаете греки? Спасибо!!!

Теги:


Спасибо:




15 Ответов
Mikhail Sukhov

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


huricane Перейти
ну вот на этот код и ругается


Сильно ругается?
Спасибо:

hurricane

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


D:\error.png
вот ошибка которую выдает
"время экспирации прошло"
точно такое же сообщение выдавал, в квике, до того как я добавил обработку дополнительных колонок
error.png 55 KB (0)
Автор топика
Спасибо:

Alexander

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


ctr+c, ctr+v работает на этих окнах.
надо так скопировать
Спасибо:

hurricane

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


Спасибо, Александр, а по самой ошибки есть предположения?
У вас на Плазе греки считаются?
Автор топика
Спасибо:

Alexander

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


huricane Перейти
Спасибо, Александр, а по самой ошибки есть предположения?
У вас на Плазе греки считаются?


я их не считаю
если сделаете копирование текста ошибки - предположения будут.

пока перепечатывать этот стэк трейс с картинки не представляется возможным.
Спасибо:

hurricane

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


к сожалению сегодня уже торги кончились, получается только в пятницу смогу стек трейс скопировать.
А может подскажет кто-нибудь из тех кто считает греки для Плазы, чтоб не терять время. Спасибо!
Автор топика
Спасибо:

Alexander

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


huricane Перейти
к сожалению сегодня уже торги кончились, получается только в пятницу смогу стек трейс скопировать.
А может подскажет кто-нибудь из тех кто считает греки для Плазы, чтоб не терять время. Спасибо!



Ошибка возникает тут:

Код
			var retVal = (Option.GetExpirationTime() - Option.Trader.MarketTime).TotalDays;

			if (retVal <= 0)
				throw new InvalidOperationException("Время экспирации прошло.");


смотрите ExpiryDate у инструмента и Trader.MarketTime
Спасибо:

hurricane

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


Александр большое спасибо!!!ThumpUp
Автор топика
Спасибо:

hurricane

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


Александр!
как я уже писал выше, по ошибке "Время экспирации прошло" она у меня возникала и в Quik ровно до того момента как я не добавил обработку дополнительных колонок
Код
this.Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.Strike);
             this.Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.Volatility);
             this.Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.UnderlyingSecurity);
             this.Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.TheorPrice);
             this.Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.OptionType);
             this.Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.ExpiryDate);


после добавления этих колонок начал происходить расчет грек!

Поэтому начал логически мыслить :D откуда берутся эти данные при работе через Плаза, точнее некоторые данные я знал откуда берутся, точно знал, что
теоретическая цена и волатильность берется с сервиса волатильности, начал смотреть исходники Plaza.Metadata, может и экспирация берется от туда
но в PlazaVolatilityColumns, этого не было, была волатильность и теоретическая цена.

Начал смотреть в PlazaOptionsParamsColumns по логике дата экспирация ExpiryDate для опциона должна была быть там - но и там ее не было.

Единственную ExpDate нашел в PlazaFuturesParamsColumns, но это для фьючерсов.

И вот вопрос Александр, откуда берется Дата экспирации для опциона через Plaza. Быть в этом проблема моей ошибки? :D

Читая этот вопрос посмотрите на мой статус "новичок" :D

Буду признателен за ответ, СПАСИБО!

Regards
hericane

UPD: в PlazaSessionContentsOptionColumns есть ExpirationEndDate Дата окончания экспирации инструмента. может отсюда берется?
Автор топика
Спасибо:

Alexander

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


Код
security.ExpiryDate = record.GetDateTime(metadata.ExpirationStartDate);

в PlazaTrader

вы б лучше не рассуждали, а посмотрели на security.ExpiryDate, как я и написал выше.
Спасибо:

hurricane

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


ок!
Автор топика
Спасибо:

hurricane

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


Александр, вы были правы ExpiryDate выводит не адекватную дату экспирации 6.7.2011
для инструмента RI160000BC2
есть идеи?
Автор топика
Спасибо:

Alexander

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


huricane Перейти
Александр, вы были правы ExpiryDate выводит не адекватную дату экспирации 6.7.2011
для инструмента RI160000BC2
есть идеи?


Поставьте breakpoint в коде шлюза да посмотрите как он там и чем инициализируется.
какие данные приходят из шлюза - правильные ли приходят, правильно ли их парсим.
Спасибо:

Alexander

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


Залил фикс.
Спасибо:

hurricane

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


Александр СПАСИБО! все работает! греки считаются! RollEyes
Автор топика
Спасибо:


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

loading
clippy