Ejemplo n.º 1
0
{ // Returns a prototype object
    public override TwoFactorOption CreateOption()
    {
        TwoFactorOption result = new TwoFactorOption();

        // Results take from Topper 2005
        result.r    = 0.1;
        result.sig1 = 0.1;
        result.sig2 = 0.3;
        result.rho  = 0.5;

        result.D1 = 0.0;
        result.D2 = 0.0;

        result.K     = 40.0;
        result.T     = 0.5;
        result.SMax1 = result.K * 2.0;
        result.SMax2 = result.K * 2.0;

        result.type = -1;               // Put, temp

        result.w1 = 1.0;                // Topper
        result.w2 = 1.0;

        // Now assign the payoff function
        result.pay = new BasketStrategy(result.K, result.type, result.w1, result.w2);

        return(result);
    }
Ejemplo n.º 2
0
    public override TwoFactorOption CreateOption()
    {
        double dr;              // Interest rate
        double dsig1, dsig2;    // Volatility
        double div1, div2;      // Dividends
        double drho;
        double dK;              // Strike price
        double dT;              // Expiry date
        double dSMax1, dSMax2;  // Far field boundary

        double dw1, dw2;        // Weights of each asset
        int    dtype;           // C +1, P -1

L1:
        Console.Write("Type Call +1, Put -1: ");
        dtype = Convert.ToInt32(Console.ReadLine());

        Console.Write("Interest rate: ");
        dr = Convert.ToDouble(Console.ReadLine());

        Console.Write("Strike: ");
        dK = Convert.ToDouble(Console.ReadLine());

        Console.Write("Volatility 1: ");
        dsig1 = Convert.ToDouble(Console.ReadLine());

        Console.Write("Volatility 2: ");
        dsig2 = Convert.ToDouble(Console.ReadLine());

        Console.Write("Dividend 1: ");
        div1 = Convert.ToDouble(Console.ReadLine());

        Console.Write("Dividend 2: ");
        div2 = Convert.ToDouble(Console.ReadLine());

        Console.Write("Correlation: ");
        drho = Convert.ToDouble(Console.ReadLine());

        Console.Write("First Far Field: ");
        dSMax1 = Convert.ToDouble(Console.ReadLine());

        Console.Write("Second Far Field: ");
        dSMax2 = Convert.ToDouble(Console.ReadLine());

        Console.Write("weight 1: ");
        dw1 = Convert.ToDouble(Console.ReadLine());

        Console.Write("Weight 2: ");
        dw2 = Convert.ToDouble(Console.ReadLine());


        Console.Write("Expiry: ");
        dT = Convert.ToDouble(Console.ReadLine());

        Console.Write("Is this correct, carry on?");
        char c = Convert.ToChar(Console.ReadLine());


        if (c != 'y' && c != 'Y')
        {
            goto L1;
        }

        TwoFactorOption result = new TwoFactorOption();

        result.r    = dr;
        result.sig1 = dsig1;
        result.sig2 = dsig2;
        result.rho  = drho;

        result.D1 = div1;
        result.D2 = div2;

        result.K     = dK;
        result.T     = dT;
        result.SMax1 = dSMax1;
        result.SMax2 = dSMax2;

        result.type = dtype;

        result.w1 = dw1;
        result.w2 = dw2;

        // Now assign the payoff function
        result.pay = new BasketStrategy(dK, dtype, dw1, dw2);


        return(result);
    }