public ServiceViewModelHandler(IEntityRepository <ILKGEntity> entityRepository, IServiceRepository serviceRepository, IFormRepository formRepository, IFormFieldRepository formFieldRepository, IOptionRepository optionRepository, IServiceFactory serviceFactory, IFormFactory formFactory, IFormFieldFactory formFieldFactory, IOptionFactory optionFactory, IFormFieldTypeRepository formFieldTypeRepository, IFormFieldValidationRuleFactory formFieldValidationRuleFactory, IValidationRuleRepository validationRuleRepository) { this.entityRepository = entityRepository; this.serviceRepository = serviceRepository; this.formRepository = formRepository; this.formFieldRepository = formFieldRepository; this.optionRepository = optionRepository; this.serviceFactory = serviceFactory; this.formFactory = formFactory; this.formFieldFactory = formFieldFactory; this.optionFactory = optionFactory; this.formFieldTypeRepository = formFieldTypeRepository; this.formFieldValidationRuleFactory = formFieldValidationRuleFactory; this.validationRuleRepository = validationRuleRepository; }
public void calculate() { IOptionFactory fac = getFactory(); Option myOption = fac.create(); Console.Write("Give the underlying price: "); double S = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Price: {0}", myOption.Price(S)); }
public void calculate() { // 1. Choose how the data in the option will be created IOptionFactory fac = getFactory(); // 2. Create the option Option myOption = fac.create(); // 4. Display the result Console.WriteLine("Price: {0}", myOption.Price()); }
public void calculate() { // 1. Choose how the data in the option will be created IOptionFactory fac = getFactory(); // 2. Create the option, factory of options Option myOption = fac.create(); // 3. Get the price Console.Write("Give the underlying price: "); double S = Convert.ToDouble(Console.ReadLine()); // 4. Display the result Console.WriteLine("Price: {0}", myOption.Price(S)); }
public CommonOptionFactory Add <TOption>(IOptionFactory factory) where TOption : class, IOption { factories[typeof(TOption)] = factory; return(this); }
/* public static double EarlyImpl(double P, double S) * { * * double K = 10.0; * * if (P > K - S) * { * return P; * } * return K - S; * }*/ // This could be made into a member function of Option public static void Main() { // Phase I: Create and initialise the option IOptionFactory fac = getFactory(); int N = 200; Console.Write("Number of time steps: "); N = Convert.ToInt32(Console.ReadLine()); double S; Console.Write("Underlying price: "); S = Convert.ToDouble(Console.ReadLine()); Option opt = fac.create(); double k = opt.T / N; // Create basic lattice double discounting = Math.Exp(-opt.r * k); // Phase II: Create the binomial method and forward induction BinomialLatticeStrategy binParams = getStrategy(opt.sig, opt.r, k, S, opt.K, N); // Factory BinomialMethod bn = new BinomialMethod(discounting, binParams, N); bn.modifyLattice(S); // Phase III: Backward Induction and compute option price Vector <double> RHS = new Vector <double>(bn.BasePyramidVector()); if (binParams.bType == BinomialType.Additive) { RHS[RHS.MinIndex] = S * Math.Exp(N * binParams.downValue()); for (int j = RHS.MinIndex + 1; j <= RHS.MaxIndex; j++) { RHS[j] = RHS[j - 1] * Math.Exp(binParams.upValue() - binParams.downValue()); } } Vector <double> Pay = opt.PayoffVector(RHS); double pr = bn.getPrice(Pay); Console.WriteLine("European {0}", pr); // Binomial method with early exercise BinomialMethod bnEarly = new BinomialMethod(discounting, binParams, N, opt.EarlyImpl); bnEarly.modifyLattice(S); Vector <double> RHS2 = new Vector <double>(bnEarly.BasePyramidVector()); Vector <double> Pay2 = opt.PayoffVector(RHS2); double pr2 = bnEarly.getPrice(Pay2); Console.WriteLine("American {0}", pr2); // Display in Excel; first create array of asset mesh points int startIndex = 0; Vector <double> xarr = new Vector <double>(N + 1, startIndex); xarr[xarr.MinIndex] = 0.0; for (int j = xarr.MinIndex + 1; j <= xarr.MaxIndex; j++) { xarr[j] = xarr[j - 1] + k; } // Display lattice in Excel ExcelMechanisms exl = new ExcelMechanisms(); try { // public void printLatticeInExcel(Lattice<double> lattice, Vector<double> xarr, string SheetName) string sheetName = "Lattice"; exl.printLatticeInExcel(bnEarly.getLattice(), xarr, sheetName); } catch (Exception e) { Console.WriteLine(e); } }
public MaintenancePlanService(IMaintenancePlanFactory maintenancePlanFactory, IOptionFactory optionFactory) { _maintenancePlanFactory = maintenancePlanFactory; }
public OptionService(IGarageFactory garageFactory, IOptionFactory optionFactory) { _garageFactory = garageFactory; _optionFactory = optionFactory; }
public MaintenanceTypeService(IMaintenanceTypeFactory maintenanceTypeFactory, IOptionFactory optionFactory) { _maintenanceTypeFactory = maintenanceTypeFactory; _optionFactory = optionFactory; }