← Zurück

Опционный калькулятор

Вопрос по опционному калькулятору: Какой алгоритм заложен при расчете греков по формуле Блэка-Шоулза? Спрашиваю не просто так: греки , что транслирует квик и те , что считает калькулятор существенно различаются. Где истинные значения, кому верить ? =)

P.s. Обратился к опционному калькулятору, т.к. существует некоторые трудности при изъятии греков из таблицы с опционами квика.

War dieses Thema hilfreich?

Thema teilen

Kommentare (7)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Alexander
Alexander

Формула Стока-Шарпа

Dottz
Dottz Autor

А как это подтвердить?

Mikhail Sukhov
Mikhail Sukhov

Dottz: Спрашиваю не просто так: греки , что транслирует квик и те , что считает калькулятор существенно различаются. Где истинные значения, кому верить ? =)

Чтобы не ставить Квик, приведите параметры, что выводит Квик и что программа. Давайте поймем, насколько существует отличие и кто виноват.

Dottz
Dottz Autor

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

Screen

Mikhail Sukhov
Mikhail Sukhov
var trader = Helper.CreateTestTrader();
trader.MarketTime = new DateTime(2011, 08, 24, 19, 0, 0);

var option = new Security
{
	Id = "RI175000BI1@RTS",
	OptionType = OptionTypes.Call,
	Strike = 175000,
	ExpiryDate = new DateTime(2011, 09, 15, 18, 45, 0),
	UnderlyingSecurityId = "RIU1@RTS",
	Trader = trader,
	Type = SecurityTypes.Option,
};

var future = new Security
{
	Id = "RIU1@RTS",
	LastTrade = new Trade
	{
		Price = 156900,
	},
	Trader = trader,
	Type = SecurityTypes.Future,
};

trader.RaiseNewSecurities(new [] { option, future });

const decimal volatility = 45.105m / 100;

Console.WriteLine("Дельта " + MathHelper.Round(option.Delta(volatility), 2));
Console.WriteLine("Гамма " + MathHelper.Round(option.Gamma(volatility), 5));
Console.WriteLine("Тета " + MathHelper.Round(option.Theta(volatility), 2));
Console.WriteLine("Вега " + MathHelper.Round(option.Vega(volatility), 2));
Console.WriteLine("Ро " + MathHelper.Round(option.Rho(volatility), 2));

Выводит:

Дельта 0,18 Гамма 0,00001 Тета -102,17 Вега 99,62 Ро 0

Ро действительно косячит. Надо будет исправить.

С гаммой в Квике точно не понятно, в чем там выводится. Насчет других параметром, зашел на option.ru:

Что-то совпадает с S# данными, что то с Квик. Главное понять, что берется в качестве цены базового актива (у нас последняя сделка) и не добавляются ли какие-то коэффициенты. Самой лучшей проверкой будет сделать расчет в Экселе.

Dottz
Dottz Autor

В квике считается по полю "Расчетная цена", которое с периодичностью в несколько секунд обновляется по цене посл. сделки вроде как. Проверял в экселе, все вроде почти одинаково, но все равно разница какая-то есть - не пойму почему. Вроде формула одна, одни входные данные, а результаты разные.

Mikhail Sukhov
Mikhail Sukhov

Dottz: В квике считается по полю "Расчетная цена", которое с периодичностью в несколько секунд обновляется по цене посл. сделки вроде как. Проверял в экселе, все вроде почти одинаково, но все равно разница какая-то есть - не пойму почему. Вроде формула одна, одни входные данные, а результаты разные.

А Эксель для тех данных, что я привел в коде выше, какие значения греков выдает?