Assembla home | Assembla project page
 

Changeset 166

Show
Ignore:
Timestamp:
05/13/08 22:09:11 (6 months ago)
Author:
snovik
Message:

New: Bermuda Option finished

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/QLNet/EquityOption/EquityOption.cs

    r165 r166  
    133133            method = "Finite differences"; 
    134134            europeanOption.setPricingEngine(new FDEuropeanEngine(bsmProcess,timeSteps,timeSteps-1)); 
    135             //bermudanOption.setPricingEngine(new FDBermudanEngine(bsmProcess,timeSteps,timeSteps-1))); 
     135            bermudanOption.setPricingEngine(new FDBermudanEngine(bsmProcess,timeSteps,timeSteps-1)); 
    136136            americanOption.setPricingEngine(new FDAmericanEngine(bsmProcess,timeSteps,timeSteps-1)); 
    137137 
  • trunk/QLNet/QLNet/Pricingengines/vanilla/FDMultiPeriodEngine.cs

    r164 r166  
    2424namespace QLNet { 
    2525    public class FDMultiPeriodEngine : FDConditionEngineTemplate { 
    26         protected List<Event> events_
     26        protected List<Event> events_ = new List<Event>()
    2727        protected List<double> stoppingTimes_; 
    2828        protected int timeStepPerPeriod_; 
     
    3737            : base(process, gridPoints, timeSteps, timeDependent) { 
    3838            timeStepPerPeriod_ = timeSteps; 
    39         } 
    40  
    41         protected virtual void setupArguments(IPricingEngineArguments args, List<Event> schedule) { 
    42             base.setupArguments(args); 
    43             events_ = schedule; 
    44             stoppingTimes_.Clear(); 
    45             int n = schedule.Count; 
    46             stoppingTimes_ = new List<double>(n); 
    47             for (int i=0; i<n; ++i) 
    48                 stoppingTimes_.Add(process_.time(events_[i].date())); 
    4939        } 
    5040 
     
    6353        } 
    6454 
     55        protected virtual void setupArguments(IPricingEngineArguments args, List<Event> schedule) { 
     56            base.setupArguments(args); 
     57            events_ = schedule; 
     58            stoppingTimes_.Clear(); 
     59            int n = schedule.Count; 
     60            stoppingTimes_ = new List<double>(n); 
     61            for (int i = 0; i < n; ++i) 
     62                stoppingTimes_.Add(process_.time(events_[i].date())); 
     63        } 
     64 
    6565        public override void setupArguments(IPricingEngineArguments a) { 
    6666            base.setupArguments(a); 
     
    7070 
    7171            int n = args.exercise.dates().Count; 
    72             stoppingTimes_ = new List<double>(n); 
     72            stoppingTimes_ = new InitializedList<double>(n); 
    7373            for (int i = 0; i < n; ++i) 
    7474                stoppingTimes_[i] = process_.time(args.exercise.date(i)); 
     
    129129            initializeStepCondition(); 
    130130 
    131             prices_ = intrinsicValues_
     131            prices_ = (SampledCurve)intrinsicValues_.Clone()
    132132            if (lastDateIsResTime) 
    133133                executeIntermediateStep(dateNumber - 1); 
  • trunk/QLNet/QLNet/Pricingengines/vanilla/fdconditions.cs

    r165 r166  
    2828        protected IStepCondition<Vector> stepCondition_; 
    2929        protected SampledCurve prices_; 
    30         protected void initializeStepCondition() { 
     30        protected virtual void initializeStepCondition() { 
    3131            if (stepConditionImpl_ == null) 
    3232                throw new NotSupportedException(); 
  • trunk/QLNet/QLNet/QLNet.csproj

    r165 r166  
    232232    <Compile Include="Pricingengines\vanilla\discretizedvanillaoption.cs" /> 
    233233    <Compile Include="Pricingengines\vanilla\FDAmericanEngine.cs" /> 
     234    <Compile Include="Pricingengines\vanilla\fdbermudanengine.cs" /> 
    234235    <Compile Include="Pricingengines\vanilla\fdconditions.cs" /> 
    235236    <Compile Include="Pricingengines\vanilla\fddividendengine.cs" />