BarrierOptions           package:fOptions           R Documentation

_V_a_l_u_a_t_i_o_n _o_f _B_a_r_r_i_e_r _O_p_t_i_o_n_s

_D_e_s_c_r_i_p_t_i_o_n:

     A collection and description of functions to valuate   barrier
     options. Barrier options are path-dependent options,  with payoffs
     that depend on the price of the underlying  asset at expiration
     and whether or not the asset price  crosses a barrier during the
     life of the option. There  are two categories or types of Barrier
     options: "knock-in"  and "knock-out". "Knock-in" or "in" options
     are paid  for up front, but you do not receive the option until 
     the asset price crosses the barrier. "Knock-out" or "out"  options
     come into existence on the issue date but becomes  worthless if
     the asset price hits the barrier before the  expiration date. If
     the option is a knock-in (knock-out),  a predetermined cash rebate
     may be paid at expiration if  the option has not been knocked in
     (knocked-out) during  its lifetime. The barrier monitoring
     frequency specifies  how often the price is checked for a breach
     of the barrier.  All of the analytical models have a flag to
     change the  monitoring frequency where the default frequency is 
     continuous.   

     The functions are:

       'StandardBarrierOption'       Standard Barrier Option,
       'DoubleBarrierOption'         Double Barrier Option,
       'PTSingleAssetBarrierOption'  Partial Time Single Asset Barrier Option,
       'TwoAssetBarrierOption'       Two Asset Barrier Option,
       'PTTwoAssetBarrierOption'     Partial Time Two Asset Barrier Option,
       'LookBarrierOption'           Lookback Barrier Option,
       'DiscreteBarrierOption'       Discrete Barrier Option
       'SoftBarrierOption'           Soft Barrier Option.

_U_s_a_g_e:

     StandardBarrierOption(TypeFlag, S, X, H, K, Time, r, b, sigma)
     DoubleBarrierOption(TypeFlag, S, X, L, U, Time, r, b, sigma, delta1, delta2)
     PTSingleAssetBarrierOption(TypeFlag, S, X, H, time1, Time2, r, b, sigma)
     TwoAssetBarrierOption(TypeFlag, S1, S2, X, H, Time, r, b1, 
         b2, sigma1, sigma2, rho)
     PTTwoAssetBarrierOption(TypeFlag, S1, S2, X, H, time1, Time2, r, b1, b2, 
         sigma1, sigma2, rho)
     LookBarrierOption(TypeFlag, S, X, H, time1, Time2, r, b, sigma)
     DiscreteBarrierOption(S, H, sigma, dt)
     SoftBarrierOption(TypeFlag, S, X, L, U, Time, r, b, sigma)

_A_r_g_u_m_e_n_t_s:

       b: the annualized cost-of-carry rate, a numeric value;  e.g. 0.1
          means 10% pa. 

  b1, b2: [PTTwoAssetBarrier*] - 
           the annualized cost-of-carry rate for the first and second
          asset, a numeric value. 

delta1, delta2: [DoubleBarrier*] - 
           numeric values which determine the curvature of the lower 
          'L' and upper 'U' bounds. The case of 
           'delta1=delta2=0' corresponds to two flat boundaries, 
           'delta1<0<delta2' correponds to a lower boundary
          exponentially growing as time elapses, while the upper
          boundary will be  exponentially decaying, 
           'delta1>0>delta2' correponds to a convex downward lower 
          boundary and a convex upward upper boundary. 

      dt: [DiscreteBarrier*] - 
           time between monitoring instants, a numeric value. 

       H: [StandardBarrier*] - 
           the barrier value, a numeric value. 

       K: [StandardBarrier*] - 
           for an "In"-Barrier a prespecified cash rebate which is paid
           out at option expiration if the option has not been knocked 
          in during its lifetime,
           for an "Out"-Barrier a prespecified cash rebate which is
          paid  out at option expiration if the option has not been
          knocked  out before its lifetime, a numerical value. 

    L, U: [DoubleBarrier*] - 
           the lower and upper boundary to be touched, numerical
          values. 

       r: the annualized rate of interest, a numeric value;  e.g. 0.25
          means 25% pa. 

     rho: [TwoAssetBarrier*] - 
           the correlation of the volatility between the first and
          second asset, a numeric value. 

       S: the asset price, a numeric value. 

  S1, S2: [PTTwoAssetBarrier*] - 
           the price of the first and second asset, a numeric value. 

   sigma: the annualized volatility of the underlying security,  a
          numeric value; e.g. 0.3 means 30% volatility pa. 

sigma1, sigma2: [PTTwoAssetBarrier*] - 
           the annualized volatility of the first and second underlying
           security, numeric values. 

    Time: the time to maturity measured in years, a numeric value; 
          e.g. 0.5 means 6 months. 

time1, Time2: [PTSingleAssetBarrier*][PTTwoAssetBarrier*] - 
           so called type "A" options (see the 'TypeFlag' argument)
          will have the location of the monitoring period starting at 
          the options starting date and ending at an arbitrary time 
          'time1' before expiration time 'Time2'. 
          Partial-time-end-barrier options will have the location of 
          the monitoring period starting at an arbitrary time 'time1' 
          before expiration time 'Time2', and ending at expiration 
          time.
           [LookBarrier*] - 
           the lookbarrier option's barrier monitoring period starts at
           the options starting date and ends at an arbitrary time 
          'time1' before expiration time 'Time2'. 

TypeFlag: usually a character string either '"c"' for a call option  or
          a '"p"' for a put option.

          ' ' [StandardBarrier*] - 
           here
            '"cdi"' denotes a down-and-in call,
            '"cui"' denotes an up-and-in call,
           '"cdo"' denotes a down-and-out call, and
           '"cuo"' denotes an up-and-out call.
            Similarily, the type flags for the corresponding puts are
          '"pdi"', '"pui"', '"pdo"', and '"puo"'.

           [DoubleBarrier*] - 
           here
            '"co"' denotes an up-and-out-down-and-out call,
           '"ci"' denotes an up-and-in-down-and-in call,
           '"po"' denotes an up-and-out-down-and-out put, and
           '"pi"' denotes an up-and-in-down-and-in call.

           [PTSingleAssetBarrier*] - 
           here
           '"cdoA"' denotes a down-and-out call of type "A",
           '"cuoA"' denotes an up-and-out call of type "A",
           '"pdoA"' denotes a down-and-out put of type "A",
           '"puoA"' denotes an up-and-out put of type "A",
           '"coB1"' denotes an out-call of type "B1",
           '"poB1"' denotes an out-call of type "B1",
           '"cdoB2"' denotes a down-and-out call of type "B2",
           '"cuoB2"' denotes an up-and-out call of type "B2".
             Note, a partial-time-start-barrier option is called a type
          "A" option, a partial-time-end-out-call is a called a type
          "B" option. There are two types of "B" options: "B1" is
          defined such that only a barrier hit or crossed causes the
          option to be knocked out, and a "B2" is defined such that a
          down-and-out-call is knocked out as soon as the underlying
          price is below the  barrier.

           [TwoAssetBarrier*][PTTwoAssetBarrier*] - 
           here
           '"cuo"' denotes an up-and-out call,
           '"cui"' denotes an up-and-in call,
           '"cdo"' denotes a down-and-out call,
           '"cdi"' denotes a down-and-in call,
           '"puo"' denotes an up-and-out put,
           '"pui"' denotes an up-and-in put,
           '"pdo"' denotes a down-and-out put,
           '"pdi"' denotes a down-and-in put.

           [LookBarrier*][SoftBarrier*] - 
           here
           '"cuo"' denotes an up-and-out call,
           '"cui"' denotes an up-and-in call,
           '"pdo"' denotes a down-and-out put,
           '"pdi"' denotes a down-and-in put. 

       X: the exercise price, a numeric value. 

_D_e_t_a_i_l_s:

     *Single [Standard] Barrier Options:* 

      There are four types of single barrier options. The type flag 
     '"cdi"' denotes a down-and-in call, '"cui"' denotes an up-and-in
     call, '"cdo"' denotes a down-and-out call, and '"cuo"' denotes an
     up-and-out call.  Similarily, the type flags for the corresponding
     puts are 'cdi', 'cui', 'cdo', and 'cuo'. A down-and-in option
     comes into existence  and knocked-in only if the asset price falls
     to the barrier level. An  up-and- in option comes into existence
     and knocked-in only if the asset  price rises to the barrier
     level. A down-and-out option comes into  existence and knocked-out
     only if the asset price falls to the barrier  level. An up-and-in
     option comes into existence and knocked-out only if  the asset
     price rises to the barrier level. European single barrier  options
     can be priced analytically using a model introduced by Reiner  and
     Rubinstein (1991). A trinomial lattice is used for the numerical 
     calculation of an American or European style single barrier
     options. 
      [Haug's Book, Chapter 2.10.1] 

     *Double Barrier Options:* 

      A double barrier option is either knocked in or knocked out if
     the  asset price touches the lower or upper barrier during its
     lifetime.  The type flag '"co"' denotes an up-and-out-down-and-out
     call, '"ci"' denotes an up-and-in-down-and-in call, '"po"' denotes
     an up-and-out-down-and-out put, and '"pi"' denotes an
     up-and-in-down-and-in call. Once a barrier is crossed, the option
     comes into existence if it is  a knock-in barrier or becomes
     worthless if it is a knocked out barrier.  Double barrier options
     can be priced analytically using a model  introduced by Ikeda and
     Kunitomo (1992). 
      [Haug's Book, Chapter 2.10.2] 

     *Partial-Time Barrier Options:* 

      For single asset partial-time barrier options, the monitoring
     period  for a barrier crossing is confined to only a fraction of
     the option's  lifetime. There are two types of partial-time
     barrier options:  partial-time-start and partial-time-end.
     Partial-time-start barrier  options have the monitoring period
     start at time zero and end at an  arbitrary date before
     expiration. Partial-time-end barrier options  have the monitoring
     period start at an arbitrary date before expiration  and end at
     expiration. Partial-time-end barrier options are then broken  down
     again into two categories: B1 and B2. Type B1 is defined such that
      only a barrier hit or crossed causes the option to be knocked
     out.  There is no difference between up and down options. Type B2
     options  are defined such that a down-and-out call is knocked out
     as soon as  the underlying price is below the barrier. Similarly,
     an up-and-out  call is knocked out as soon as the underlying price
     is above the barrier. Partial-time barrier options can be priced
     analytically using a model  introduced by Heynen and Kat (1994). 
      [Haug's Book, Chapter 2.10.3] 

     *Two-Asset Barrier Options:* 

      The underlying asset, Asset 1, determines how much the option is
     in  or out-of-the-money. The other asset, Asset 2, is the trigger
     asset  that is linked to barrier hits. Two-asset barrier options
     can be  priced analytically using a model introduced by Heynen and
     Kat (1994). 
      [Haug's Book, Chapter 2.10.4] 

     *Lookback Barrier Options:* 

      A look-barrier option is the combination of a forward starting
     fixed  strike Lookback option and a partial time barrier option.
     The option's  barrier monitoring period starts at time zero and
     ends at an arbitrary  date before expiration. If the barrier is
     not triggered during this  period, the fixed strike Lookback
     option will be kick off at the end  of the barrier tenor. Lookback
     barrier options can be priced analytically  using a model
     introduced by Bermin (1996). 
      [Haug's Book, Chapter 2.10.6] 

     *Partial-Time-Two-Asset Options:* 

      Partial-time two-asset barrier options are similar to standard
     two-asset  barrier options, except that the barrier hits are
     monitored only for a  fraction of the option's lifetime. The
     option is knocked in or knocked  out is Asset 2 hits the barrier
     during the monitoring period. The payoff  depends on Asset 1 and
     the strike price. Partial-time two-asset barrier  options can be
     priced analytically using a model introduced by Bermin  (1996). 
      [Haug's Book, Chapter 2.10.5] 

     *Soft Barrier Options:* 

      A soft-barrier option is similar to a standard barrier option,
     except  that the barrier is no longer a single level. Rather, it
     is a soft  range between a lower level and an upper level.
     Soft-barrier options  are knocked in or knocked out
     proportionally. Introduced by Hart and  Ross (1994), the valuation
     formula can be used to price soft-down-and-in  call and
     soft-up-and-in put options. The value of the related "out"  option
     can be determined by subtracting the "in" option value from the 
     value of a standard plain option. Soft-barrier options can be
     priced  analytically using a model introduced by Hart and Ross
     (1994). 
      [Haug's Book, Chapter 2.10.8]

_V_a_l_u_e:

     The option price, a numeric value.

_N_o_t_e:

     The functions implement the algorithms to valuate plain vanilla 
     options as described in Chapter 2.10 of Haug's Book (1997).

_A_u_t_h_o_r(_s):

     Diethelm Wuertz for this R-Port.

_R_e_f_e_r_e_n_c_e_s:

     Haug E.G. (1997);  _The complete Guide to Option Pricing
     Formulas_,  Chapter 2.10, McGraw-Hill, New York.

_E_x_a_m_p_l_e_s:

     ## Examples from Chapter 2.10 in E.G. Haug's Option Guide (1997)

     ## Standard Barrier Option [2.10.1]:
        xmpOptions("\nStart: Down-and-Out Barrier Option > ")
        # down-and-out Barrier Call
        StandardBarrierOption(TypeFlag = "cdo", S = 100, X = 90, 
          H = 95, K = 3, Time = 0.5, r = 0.08, b = 0.04, sigma = 0.25)
        
     ## Double Barrier Option [2.10.2]:
        xmpOptions("\nNext: Double Barrier Option > ")
        DoubleBarrierOption(TypeFlag = "co", S = 100, X = 100, L = 50, 
          U = 150, Time = 0.25, r = 0.10, b = 0.10, sigma = 0.15, 
          delta1 = -0.1, delta2 = 0.1)
        
     ## Partial Time Single-Asset Barrier Option [2.10.3]:
        xmpOptions("\nNext: PT Single-Asset Barrier Option > ")
        PTSingleAssetBarrierOption(TypeFlag = "coB1", S = 95, X = 110, 
          H = 100, time1 = 0.5, Time2 = 1, r = 0.20, b = 0.20, 
          sigma = 0.25)
        
     ## Two Asset Barrier Option [2.10.4]:
        xmpOptions("\nNext: Two Asset Barrier Option > ")
        TwoAssetBarrierOption(TypeFlag = "puo", S1 = 100, S2 = 100, 
          X = 110, H = 105, Time = 0.5, r = 0.08, b1 = 0.08, b2 = 0.08, 
          sigma1 = 0.2, sigma2 = 0.2, rho = -0.5)
        
     ## PT Two Asset Barrier Option [2.10.5]:
        xmpOptions("\nNext: PT Two Asset Barrier Option > ")
        PTTwoAssetBarrierOption(TypeFlag = "pdo", S1 = 100, S2 = 100, 
          X = 100, H = 85, time1 = 0.5, Time2 = 1, r = 0.1, b1 = 0.1, 
          b2 = 0.1, sigma1 = 0.25, sigma2 = 0.30, rho = -0.5)
        
     ## Look Barrier Option [2.10.6]:
        xmpOptions("\nNext: Look Barrier Option > ")
        LookBarrierOption(TypeFlag = "cuo", S = 100, X = 100, H = 130, 
          time1 = 0.25, Time2 = 1, r = 0.1, b = 0.1, sigma = 0.15)
        LookBarrierOption(TypeFlag = "cuo", S = 100, X = 100, H = 110, 
          time1 = 1, Time2 = 1, r = 0.1, b = 0.1, sigma = 0.30)
        
     ## Discrete Barrier Option [2.10.7]:  
        xmpOptions("\nNext: Discrete Barrier Option > ")
        DiscreteBarrierOption(S = 100, H = 105, sigma = 0.25, dt = 0.1)
        
     ## Soft Barrier Option [2.10.8]:
        xmpOptions("\nNext: Soft Barrier Option > ")
        SoftBarrierOption(TypeFlag = "cdo", S = 100, X = 100, L = 70, 
          U = 95, Time = 0.5, r = 0.1, b = 0.05, sigma = 0.20)
       

