HW_NPV_Swap_Simple() function |

**HW_NPV_Swap_Simple() function**

**HW_NPV_Swap_Simple(argument list…)**

This function returns the mark-to-market (net present value, or NPV) of a level principal swap from the perspective of the fixed-rate payer. If needed, short first stub periods are generated. It assumes that the floating side frequency is equal to the fixed side frequency. The function does not value seasoned swaps, as accruals are forced to start from the greater of the Valuation_Date or Swap_Start_Date (to maintain internal consistency with some European Hull-White swaption routines). The function uses the following arguments:

Argument |
Description |
Restrictions |

Valuation_Date |
valuation date (e.g. today) | valid Excel date number |

Accrual_Start_Date |
date at which payments accrue | internally set to maximum of Valuation_Date and Swap_Start_Date |

Swap_Start_Date |
start date of swap | valid Excel date number |

Term_in_Months |
term of the underlying swap in months, as of the Swap_Start_Date | > 0 (integer) |

Fixed_Swap_Rate |
fixed side rate on the swap in decimal form (e.g. six percent entered as 0.06) | > 0 |

Fixed_Freq |
number of swap payments per year | 1, 2, 4, or 12 |

Year_Basis |
year basis used in determining payments | 360 or 365 |

Holidays |
array of holiday dates | valid Excel date numbers strictly ascending order |

Date_Convention |
business date convention | 0 = no adjustment 1 = Following business day 2 = Modified following 3 = Previous |

Notional_Principal |
notional principal underlying the swap | positive number for fixed rate payer, negative number for floating rate payer |

Zero_Dates |
array of zero coupon curve dates | strictly ascending orderThe first date of this array must be Valuation_Date |

Zero_Rates |
array of continuously compounded riskless rates in decimal form (e.g. six percent entered as 0.06) corresponding to Zero_Dates | > 0 |

OAS |
parallel shift of the zero curve in decimal form | |

Bucket_Start |
beginning of bucket for zero curve shifts | set to 0 if curve shift is not desired |

Bucket_End |
end of bucket for zero curve shift | >= Bucket_Start |

Bucket_Shift |
parallel shift of the zero curve between Bucket_Start and Bucket_End in decimal form | set to 0 if curve shock is not desired |

© 1995-98 Leap of Faith Research Inc.