Changeset 166
- Timestamp:
- 05/13/08 22:09:11 (6 months ago)
- Files:
-
- trunk/QLNet/EquityOption/EquityOption.cs (modified) (1 diff)
- trunk/QLNet/QLNet/Pricingengines/vanilla/FDMultiPeriodEngine.cs (modified) (5 diffs)
- trunk/QLNet/QLNet/Pricingengines/vanilla/fdbermudanengine.cs (added)
- trunk/QLNet/QLNet/Pricingengines/vanilla/fdconditions.cs (modified) (1 diff)
- trunk/QLNet/QLNet/QLNet.csproj (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/QLNet/EquityOption/EquityOption.cs
r165 r166 133 133 method = "Finite differences"; 134 134 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)); 136 136 americanOption.setPricingEngine(new FDAmericanEngine(bsmProcess,timeSteps,timeSteps-1)); 137 137 trunk/QLNet/QLNet/Pricingengines/vanilla/FDMultiPeriodEngine.cs
r164 r166 24 24 namespace QLNet { 25 25 public class FDMultiPeriodEngine : FDConditionEngineTemplate { 26 protected List<Event> events_ ;26 protected List<Event> events_ = new List<Event>(); 27 27 protected List<double> stoppingTimes_; 28 28 protected int timeStepPerPeriod_; … … 37 37 : base(process, gridPoints, timeSteps, timeDependent) { 38 38 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()));49 39 } 50 40 … … 63 53 } 64 54 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 65 65 public override void setupArguments(IPricingEngineArguments a) { 66 66 base.setupArguments(a); … … 70 70 71 71 int n = args.exercise.dates().Count; 72 stoppingTimes_ = new List<double>(n);72 stoppingTimes_ = new InitializedList<double>(n); 73 73 for (int i = 0; i < n; ++i) 74 74 stoppingTimes_[i] = process_.time(args.exercise.date(i)); … … 129 129 initializeStepCondition(); 130 130 131 prices_ = intrinsicValues_;131 prices_ = (SampledCurve)intrinsicValues_.Clone(); 132 132 if (lastDateIsResTime) 133 133 executeIntermediateStep(dateNumber - 1); trunk/QLNet/QLNet/Pricingengines/vanilla/fdconditions.cs
r165 r166 28 28 protected IStepCondition<Vector> stepCondition_; 29 29 protected SampledCurve prices_; 30 protected v oid initializeStepCondition() {30 protected virtual void initializeStepCondition() { 31 31 if (stepConditionImpl_ == null) 32 32 throw new NotSupportedException(); trunk/QLNet/QLNet/QLNet.csproj
r165 r166 232 232 <Compile Include="Pricingengines\vanilla\discretizedvanillaoption.cs" /> 233 233 <Compile Include="Pricingengines\vanilla\FDAmericanEngine.cs" /> 234 <Compile Include="Pricingengines\vanilla\fdbermudanengine.cs" /> 234 235 <Compile Include="Pricingengines\vanilla\fdconditions.cs" /> 235 236 <Compile Include="Pricingengines\vanilla\fddividendengine.cs" />