Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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());
        }
Exemplo n.º 4
0
        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));
        }
Exemplo n.º 5
0
 public CommonOptionFactory Add <TOption>(IOptionFactory factory) where TOption : class, IOption
 {
     factories[typeof(TOption)] = factory;
     return(this);
 }
Exemplo n.º 6
0
    /*  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);
        }
    }
Exemplo n.º 7
0
 public MaintenancePlanService(IMaintenancePlanFactory maintenancePlanFactory,
                               IOptionFactory optionFactory)
 {
     _maintenancePlanFactory = maintenancePlanFactory;
 }
Exemplo n.º 8
0
 public OptionService(IGarageFactory garageFactory,
                      IOptionFactory optionFactory)
 {
     _garageFactory = garageFactory;
     _optionFactory = optionFactory;
 }
Exemplo n.º 9
0
 public MaintenanceTypeService(IMaintenanceTypeFactory maintenanceTypeFactory,
                               IOptionFactory optionFactory)
 {
     _maintenanceTypeFactory = maintenanceTypeFactory;
     _optionFactory          = optionFactory;
 }