17 using MathNet.Numerics.Distributions;
41 : base(name, option, riskFreeRateModel, dividendYieldModel, mirrorOption, optionModel, ivModel)
56 : this($
"Delta({option},{mirrorOption},{optionModel})", option, riskFreeRateModel, dividendYieldModel, mirrorOption, optionModel, ivModel)
70 public Delta(
string name,
Symbol option, PyObject riskFreeRateModel, PyObject dividendYieldModel,
Symbol mirrorOption =
null,
72 : base(name, option, riskFreeRateModel, dividendYieldModel, mirrorOption, optionModel, ivModel)
85 public Delta(
Symbol option, PyObject riskFreeRateModel, PyObject dividendYieldModel,
Symbol mirrorOption =
null,
87 : this($
"Delta({option},{mirrorOption},{optionModel})", option, riskFreeRateModel, dividendYieldModel, mirrorOption, optionModel, ivModel)
103 : base(name, option, riskFreeRateModel, dividendYield, mirrorOption, optionModel, ivModel)
118 : this($
"Delta({option},{mirrorOption},{optionModel})", option, riskFreeRateModel, dividendYield, mirrorOption, optionModel, ivModel)
132 public Delta(
string name,
Symbol option, PyObject riskFreeRateModel, decimal dividendYield = 0.0m,
Symbol mirrorOption =
null,
134 : base(name, option, riskFreeRateModel, dividendYield, mirrorOption, optionModel, ivModel)
147 public Delta(
Symbol option, PyObject riskFreeRateModel, decimal dividendYield = 0.0m,
Symbol mirrorOption =
null,
149 : this($
"Delta({option},{mirrorOption},{optionModel})", option, riskFreeRateModel, dividendYield, mirrorOption, optionModel, ivModel)
163 public Delta(
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 Delta(
Symbol option, decimal riskFreeRate = 0.05m, decimal dividendYield = 0.0m,
Symbol mirrorOption =
null,
180 : this($
"Delta({option},{mirrorOption},{optionModel})", option, riskFreeRate, dividendYield, mirrorOption, optionModel, ivModel)
185 protected override decimal CalculateGreek(decimal timeTillExpiry)
202 var fU = OptionGreekIndicatorsHelper.CRRTheoreticalPrice(
204 var fD = OptionGreekIndicatorsHelper.CRRTheoreticalPrice(
207 return (fU - fD) / (sU - sD);
211 upFactor = math(Math.Exp,
ImpliedVolatility * math(Math.Sqrt, timeTillExpiry / OptionGreekIndicatorsHelper.Steps)) * discount;
217 var downFactor = math(Math.Exp, -
ImpliedVolatility * math(Math.Sqrt, timeTillExpiry / OptionGreekIndicatorsHelper.Steps)) * discount;
221 downFactor = 0.99999m;
227 fU = OptionGreekIndicatorsHelper.ForwardTreeTheoreticalPrice(
229 fD = OptionGreekIndicatorsHelper.ForwardTreeTheoreticalPrice(
232 return (fU - fD) / (sU - sD);
236 var norm =
new Normal();
239 decimal wholeShareDelta;
242 wholeShareDelta = math(norm.CumulativeDistribution, d1);
246 wholeShareDelta = -math(norm.CumulativeDistribution, -d1);
249 return wholeShareDelta * math(Math.Exp, -
DividendYield * timeTillExpiry);