Main Page | Namespace List | Class Hierarchy | Class List | File List | Class Members | File Members

VanillaSwap.cpp

Go to the documentation of this file.
00001 #include ".\VanillaSwap.h"
00002 
00003 VanillaSwap::VanillaSwap(CashFlow cashflowReceived1, CashFlow cashflowPaid2, char* name1, char* name2, yieldCurve* curve)
00004 :       _leg1(cashflowReceived1),
00005         _leg2(cashflowPaid2),
00006         _curve(curve)
00007 {
00008         _name1=new char[MAX_LETTERS];
00009         _name2=new char[MAX_LETTERS];
00010         for (ShortNatural i=0;i<MAX_LETTERS;i++) {
00011                 _name1[i]=name1[i];
00012                 _name2[i]=name2[i];
00013         }
00014 }
00015 
00016 VanillaSwap::~VanillaSwap(void)
00017 {
00018 }
00019 
00020 Real VanillaSwap::getFairValue1() {
00021         return _leg1.getFairValue(_curve);
00022 }
00023 
00024 Real VanillaSwap::getFairValue2() {
00025         return _leg2.getFairValue(_curve);
00026 }
00027 
00028 Real VanillaSwap::returnPrice() {
00029         Real result=0.;
00030         result=getFairValue1()-getFairValue2();
00031         return result;
00032 }
00033 
00034 Real VanillaSwap::getRho() {
00035         Real result=returnPrice();
00036         _curve->shiftZCBRateCurve();
00037         result=returnPrice()-result;
00038         _curve->shiftZCBRateCurve(-defaultshiftfactorForShortRate);
00039         return result;
00040 }
00041 
00042 Real VanillaSwap::getTheta() {
00043         Real result=returnPrice();
00044         yieldCurve curve=*_curve;
00045         _curve->forwardZCBCurve(1./365);
00046         result=returnPrice()-result;
00047         _curve=&curve;
00048         return result;
00049 }

Note: Generated nightly - reload for latest version
Generated on Thu Dec 22 23:12:37 2005 for terreneuve by doxygen 1.3.6