Assembla home | Assembla project page
 

Changeset 162

Show
Ignore:
Timestamp:
05/10/08 13:14:58 (2 months ago)
Author:
snovik
Message:

Fix: Ready to run first finite differences american option calculation

Files:

Legend:

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

    r158 r162  
    135135            //bermudanOption.setPricingEngine(boost::shared_ptr<PricingEngine>( 
    136136            //             new FDBermudanEngine(bsmProcess,timeSteps,timeSteps-1))); 
    137             //americanOption.setPricingEngine(new FDAmericanEngine(bsmProcess,timeSteps,timeSteps-1)); 
     137            americanOption.setPricingEngine(new FDAmericanEngine(bsmProcess,timeSteps,timeSteps-1)); 
    138138 
    139139            Console.Write("{0,-" + widths[0] + "}", method); 
  • trunk/QLNet/QLNet/Pricingengines/vanilla/FDAmericanEngine.cs

    r160 r162  
    3232    public class FDAmericanEngine : FDEngineAdapter<FDAmericanCondition<FDStepConditionEngine>, OneAssetOption.Engine,  
    3333                                                    OneAssetOption.Arguments, OneAssetOption.Results> { 
     34        public FDAmericanEngine(GeneralizedBlackScholesProcess process, int timeSteps, int gridPoints) 
     35            : this(process, timeSteps, gridPoints, false) { } 
    3436        public FDAmericanEngine(GeneralizedBlackScholesProcess process, int timeSteps, int gridPoints, bool timeDependent)  
    3537            : base(process, timeSteps, gridPoints, timeDependent) { } 
  • trunk/QLNet/QLNet/Pricingengines/vanilla/FDMultiPeriodEngine.cs

    r161 r162  
    2929        protected FiniteDifferenceModel<CrankNicolson<TridiagonalOperator>> model_; 
    3030 
    31         public FDMultiPeriodEngine() { }    // required for generics 
     31        // required for generics 
     32        public FDMultiPeriodEngine() { } 
    3233 
    3334        //protected FDMultiPeriodEngine(GeneralizedBlackScholesProcess process, 
  • trunk/QLNet/QLNet/Pricingengines/vanilla/FDStepConditionEngine.cs

    r161 r162  
    3131        // required for generics 
    3232        public FDStepConditionEngine() { } 
     33        // required for template inheritance 
     34        public override FDVanillaEngine factory(GeneralizedBlackScholesProcess process, 
     35                                                int timeSteps, int gridPoints, bool timeDependent) { 
     36            return new FDStepConditionEngine(process, timeSteps, gridPoints, timeDependent); 
     37        } 
    3338 
    3439        //public FDStepConditionEngine(GeneralizedBlackScholesProcess process, int timeSteps, int gridPoints, 
  • trunk/QLNet/QLNet/Pricingengines/vanilla/FDVanillaEngine.cs

    r161 r162  
    4949        // required for generics and template iheritance 
    5050        public FDVanillaEngine() { } 
     51        // this should be overridden in each deriving class using template iheritance in order to return a proper class to wrap 
    5152        public virtual FDVanillaEngine factory(GeneralizedBlackScholesProcess process, 
    5253                                               int timeSteps, int gridPoints, bool timeDependent) { 
     
    152153 
    153154 
    154     public class FDEngineAdapter<Base, Engine, ArgumentsType, ResultsType> : FDVanillaEngine 
     155    public class FDEngineAdapter<Base, Engine, ArgumentsType, ResultsType> 
     156        : FDVanillaEngine, IGenericEngine<ArgumentsType, ResultsType> 
    155157        where Base : FDVanillaEngine, new() 
    156158        where Engine : IGenericEngine<ArgumentsType, ResultsType> 
     
    167169        } 
    168170 
    169         protected void calculate() { 
     171        public void calculate() { 
    170172            optionBase.setupArguments(arguments_); 
    171173            optionBase.calculate(results_); 
  • trunk/QLNet/QLNet/Pricingengines/vanilla/fddividendengine.cs

    r160 r162  
    2525    //! Abstract base class for dividend engines 
    2626    /*! \todo The dividend class really needs to be made more 
    27               sophisticated to distinguish between fixed dividends and 
    28               fractional dividends 
     27              sophisticated to distinguish between fixed dividends and fractional dividends 
    2928    */ 
    3029    public abstract class FDDividendEngineBase : FDMultiPeriodEngine {