17 using MathNet.Numerics.Distributions;
41 : base(name, option, riskFreeRateModel, dividendYieldModel, mirrorOption, optionModel, ivModel)
56 : this($
"Rho({option},{mirrorOption},{optionModel})", option, riskFreeRateModel, dividendYieldModel, mirrorOption, optionModel, ivModel)
70 public Rho(
string name,
Symbol option, PyObject riskFreeRateModel, PyObject dividendYieldModel,
Symbol mirrorOption =
null,
72 : base(name, option, riskFreeRateModel, dividendYieldModel, mirrorOption, optionModel, ivModel)
85 public Rho(
Symbol option, PyObject riskFreeRateModel, PyObject dividendYieldModel,
Symbol mirrorOption =
null,
87 : this($
"Rho({option},{mirrorOption},{optionModel})", option, riskFreeRateModel, dividendYieldModel, mirrorOption, optionModel, ivModel)
103 : base(name, option, riskFreeRateModel, dividendYield, mirrorOption, optionModel, ivModel)
118 : this($
"Rho({option},{mirrorOption},{optionModel})", option, riskFreeRateModel, dividendYield, mirrorOption, optionModel, ivModel)
132 public Rho(
string name,
Symbol option, PyObject riskFreeRateModel, decimal dividendYield = 0.0m,
Symbol mirrorOption =
null,
134 : base(name, option, riskFreeRateModel, dividendYield, mirrorOption, optionModel, ivModel)
147 public Rho(
Symbol option, PyObject riskFreeRateModel, decimal dividendYield = 0.0m,
Symbol mirrorOption =
null,
149 : this($
"Rho({option},{mirrorOption},{optionModel})", option, riskFreeRateModel, dividendYield, mirrorOption, optionModel, ivModel)
163 public Rho(
string name,
Symbol option, decimal riskFreeRate = 0.05m, decimal dividendYield = 0.0m,
Symbol mirrorOption =
null,
165 : base(name, option, riskFreeRate, dividendYield, mirrorOption, optionModel, ivModel)
178 public Rho(
Symbol option, decimal riskFreeRate = 0.05m, decimal dividendYield = 0.0m,
Symbol mirrorOption =
null,
180 : this($
"Rho({option},{mirrorOption},{optionModel})", option, riskFreeRate, dividendYield, mirrorOption, optionModel, ivModel)
185 protected override decimal CalculateGreek(decimal timeTillExpiry)
194 var deltaRho = 0.0001m;
209 return (newPrice - price) / deltaRho / 100;
213 var norm =
new Normal();
215 var d2 = OptionGreekIndicatorsHelper.CalculateD2(d1,
ImpliedVolatility, timeTillExpiry);
216 var discount = math(Math.Exp, -
RiskFreeRate * timeTillExpiry);
220 return Strike * timeTillExpiry * discount * math(norm.CumulativeDistribution, d2) / 100m;
222 return -
Strike * timeTillExpiry * discount * math(norm.CumulativeDistribution, -d2) / 100m;