Exemplo n.º 1
0
        public ActionResult Index([Bind(Include = "OptionType,StockPrice,StrikePrice,TimeToMaturity,StandardDeviationOfUnderlyingStock,Risk")] Models.OptionsPricing optionsPricingModel)
        {
            IOptionsPricingCalculator optionsPricingCalculator = new OptionsPricingCalculator();

            optionsPricingModel.Result = optionsPricingCalculator.OptionsPricing(optionsPricingModel);
            return(View(optionsPricingModel));
        }
Exemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="optionType">Option Type</param>
        /// <param name="S">Stock Price</param>
        /// <param name="K">Strike Price</param>
        /// <param name="T">Time To Maturity in Years</param>
        /// <param name="v">Standard Deviation Of Underlying Stock</param>
        /// <param name="r">Risk</param>
        /// <returns>Result as Double</returns>
        public double OptionsPricing(Models.OptionsPricing optionsPricingModel)
        {
            var    optionType    = optionsPricingModel.OptionType;
            var    S             = optionsPricingModel.StockPrice;
            var    K             = optionsPricingModel.StrikePrice;
            var    T             = optionsPricingModel.TimeToMaturity;
            var    v             = optionsPricingModel.StandardDeviationOfUnderlyingStock;
            var    r             = optionsPricingModel.Risk;
            double d1            = 0.0;
            double d2            = 0.0;
            double dBlackScholes = 0.0;

            d1 = (Math.Log(S / K) + (r + v * v / 2.0) * T) / (v * Math.Sqrt(T));
            d2 = d1 - v * Math.Sqrt(T);
            if (optionType == OptionsType.Call)
            {
                dBlackScholes = S * CND(d1) - K * Math.Exp(-r * T) * CND(d2);
            }
            else if (optionType == OptionsType.Put)
            {
                dBlackScholes = K * Math.Exp(-r * T) * CND(-d2) - S * CND(-d1);
            }
            return(Math.Round(dBlackScholes, 4));
        }