BlackScholes
Модель расчета значений греков по формуле Блэка-Шоулза.
Реализует: IBlackScholes
Конструкторы
protected BlackScholes(IMarketDataProvider dataProvider, DateTime? expirationTime)
blackScholes = BlackScholes(dataProvider, expirationTime)
Базовый конструктор для унаследованных моделей.
- dataProvider
- Поставщик рыночных данных.
- expirationTime
- Явный момент истечения опциона. Если значение равно нулю, используется полночь ExpiryDate, если она доступна.
public BlackScholes(Security option, Security underlyingAsset, IMarketDataProvider dataProvider, DateTime? expirationTime)
blackScholes = BlackScholes(option, underlyingAsset, dataProvider, expirationTime)
Инициализирует новый экземпляр BlackScholes для определенного опциона с его базовым активом.
- option
- Опционный контракт.
- underlyingAsset
- Базовый актив.
- dataProvider
- Поставщик рыночных данных.
- expirationTime
- Явный момент истечения опциона. Если значение равно нулю, используется полночь ExpiryDate, если она доступна.
protected BlackScholes(Security underlyingAsset, IMarketDataProvider dataProvider, DateTime? expirationTime)
blackScholes = BlackScholes(underlyingAsset, dataProvider, expirationTime)
Инициализирует новый экземпляр BlackScholes только для базового актива (модели без опционов).
- underlyingAsset
- Базовый актив.
- dataProvider
- Поставщик рыночных данных.
- expirationTime
- Явный момент истечения опциона. Если значение равно нулю, используется полночь ExpiryDate, если она доступна.
Свойства
public virtual IMarketDataProvider DataProvider { get; }
value = blackScholes.DataProvider
Поставщик рыночных данных.
public decimal DefaultDeviation { get; }
value = blackScholes.DefaultDeviation
Стандартное отклонение по умолчанию.
public virtual decimal Dividend { get; set; }
value = blackScholes.Dividend
blackScholes.Dividend = value
Размер дивидендов по акциям.
public DateTime? ExpirationTime { get; set; }
value = blackScholes.ExpirationTime
blackScholes.ExpirationTime = value
Если недействительно, то при наличии полуночи ExpiryDate используется.
public decimal RiskFree { get; set; }
value = blackScholes.RiskFree
blackScholes.RiskFree = value
Безрисковая процентная ставка.
public virtual int RoundDecimals { get; set; }
value = blackScholes.RoundDecimals
blackScholes.RoundDecimals = value
Число десятичных мест при вычисляемых значениях. По умолчанию -1, что означает отсутствие округления значений.
public virtual Security UnderlyingAsset { get; set; }
value = blackScholes.UnderlyingAsset
blackScholes.UnderlyingAsset = value
Базовый актив.
Методы
protected virtual double D1(decimal deviation, decimal assetPrice, double timeToExp)
result = blackScholes.D1(deviation, assetPrice, timeToExp)
Вычислить параметр d1 оценки вероятности исполнения опциона.
- deviation
- Стандартное отклонение.
- assetPrice
- Цена базового актива.
- timeToExp
- Период опциона до истечения срока его действия.
Возвращает: Параметр d1.
public virtual decimal? Delta(DateTime currentTime, decimal? deviation, decimal? assetPrice)
result = blackScholes.Delta(currentTime, deviation, assetPrice)
Для расчета дельты опциона.
- currentTime
- Текущее время.
- deviation
- Стандартное отклонение.
- assetPrice
- Цена базового актива.
Возвращает: Опцион Дельта. Если значение равно , то расчет значения в настоящий момент невозможен.
public virtual decimal? Gamma(DateTime currentTime, decimal? deviation, decimal? assetPrice)
result = blackScholes.Gamma(currentTime, deviation, assetPrice)
Рассчитать вариант гаммы.
- currentTime
- Текущее время.
- deviation
- Стандартное отклонение.
- assetPrice
- Цена базового актива.
Возвращает: Вариант гамма. Если значение равно , то расчет значения в настоящий момент невозможен.
public decimal? GetAssetPrice(decimal? assetPrice)
result = blackScholes.GetAssetPrice(assetPrice)
Чтобы получить цену базового актива.
- assetPrice
- Цена базового актива, если она указана.
Возвращает: Цена базового актива. Если значение равно , то расчет значения в настоящий момент невозможен.
public virtual double? GetExpirationTimeLine(DateTime currentTime)
result = blackScholes.GetExpirationTimeLine(currentTime)
Расчет времени до истечения срока действия.
- currentTime
- Текущее время.
Возвращает: Время, оставшееся до истечения срока действия. Если значение равно , то расчет значения в настоящий момент невозможен.
public virtual decimal? ImpliedVolatility(DateTime currentTime, decimal premium)
result = blackScholes.ImpliedVolatility(currentTime, premium)
Для расчета подразумеваемой волатильности.
- currentTime
- Текущее время.
- premium
- Опционная премия.
Возвращает: Подразумеваемая волатильность. Если значение равно , то расчет значения в настоящий момент невозможен.
public virtual decimal? Premium(DateTime currentTime, decimal? deviation, decimal? assetPrice)
result = blackScholes.Premium(currentTime, deviation, assetPrice)
Рассчитать опционную премию.
- currentTime
- Текущее время.
- deviation
- Стандартное отклонение.
- assetPrice
- Цена базового актива.
Возвращает: Опционная премия. Если значение равно , то расчет значения в настоящий момент невозможен.
public virtual decimal? Rho(DateTime currentTime, decimal? deviation, decimal? assetPrice)
result = blackScholes.Rho(currentTime, deviation, assetPrice)
Для расчета варианта ро.
- currentTime
- Текущее время.
- deviation
- Стандартное отклонение.
- assetPrice
- Цена базового актива.
Возвращает: Вариант ро. Если значение равно , то расчет значения в настоящий момент невозможен.
public virtual decimal? Theta(DateTime currentTime, decimal? deviation, decimal? assetPrice)
result = blackScholes.Theta(currentTime, deviation, assetPrice)
Для расчета опциона тета.
- currentTime
- Текущее время.
- deviation
- Стандартное отклонение.
- assetPrice
- Цена базового актива.
Возвращает: Вариант тета. Если значение равно , то расчет значения в настоящий момент невозможен.
protected decimal? TryRound(decimal? value)
result = blackScholes.TryRound(value)
Округлить до RoundDecimals.
- value
- Начальное значение.
Возвращает: Округленное значение.
public virtual decimal? Vega(DateTime currentTime, decimal? deviation, decimal? assetPrice)
result = blackScholes.Vega(currentTime, deviation, assetPrice)
Для расчета варианта Вега.
- currentTime
- Текущее время.
- deviation
- Стандартное отклонение.
- assetPrice
- Цена базового актива.
Возвращает: Вариант Вега. Если значение равно , то расчет значения в настоящий момент невозможен.