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