示例#1
0
 public Integrand(Payoff payoff, double s0, double drift, double variance)
 {
     payoff_   = payoff;
     s0_       = s0;
     drift_    = drift;
     variance_ = variance;
 }
示例#2
0
 public Integrand(Payoff payoff, double s0, double drift, double variance)
 {
     payoff_ = payoff;
     s0_ = s0;
     drift_ = drift;
     variance_ = variance;
 }
示例#3
0
        public AmericanPathPricer(Payoff payoff, int polynomOrder, LsmBasisSystem.PolynomType polynomType)
        {
            scalingValue_ = 1;
            payoff_       = payoff;
            v_            = LsmBasisSystem.pathBasisSystem(polynomOrder, polynomType);

            if (!(polynomType == LsmBasisSystem.PolynomType.Monomial ||
                  polynomType == LsmBasisSystem.PolynomType.Laguerre ||
                  polynomType == LsmBasisSystem.PolynomType.Hermite ||
                  polynomType == LsmBasisSystem.PolynomType.Hyperbolic ||
                  polynomType == LsmBasisSystem.PolynomType.Chebyshev2th))
            {
                throw new ApplicationException("insufficient polynom type");
            }

            // the payoff gives an additional value
            v_.Add(this.payoff);

            StrikedTypePayoff strikePayoff = payoff_ as StrikedTypePayoff;

            if (strikePayoff != null)
            {
                scalingValue_ /= strikePayoff.strike();
            }
        }
示例#4
0
        public virtual void setupArguments(IPricingEngineArguments a)
        {
            OneAssetOption.Arguments args = a as OneAssetOption.Arguments;
            Utils.QL_REQUIRE(args != null, () => "incorrect argument type");

            exerciseDate_ = args.exercise.lastDate();
            payoff_       = args.payoff;
        }
示例#5
0
 public FdmLogInnerValue(Payoff payoff,
                         FdmMesher mesher,
                         int direction)
 {
     payoff_         = payoff;
     mesher_         = mesher;
     direction_      = direction;
     avgInnerValues_ = new List <double>();
 }
示例#6
0
        public virtual void setupArguments(IPricingEngineArguments a)
        {
            OneAssetOption.Arguments args = a as OneAssetOption.Arguments;
            if (args == null)
            {
                throw new ApplicationException("incorrect argument type");
            }

            exerciseDate_ = args.exercise.lastDate();
            payoff_       = args.payoff;
        }
示例#7
0
        public virtual void setupArguments(IPricingEngineArguments a)
        {
            OneAssetOption.Arguments args = a as OneAssetOption.Arguments;
            if (args == null)
            {
                throw new ApplicationException("incorrect argument type");
            }

            exerciseDate_      = args.exercise.lastDate();
            payoff_            = args.payoff;
            requiredGridValue_ = ((StrikedTypePayoff)payoff_).strike();
        }
		//protected Forward(DayCounter dayCounter, Calendar calendar, BusinessDayConvention businessDayConvention,
		//                  int settlementDays, Payoff payoff, Date valueDate, Date maturityDate,
		//                  Handle<YieldTermStructure> discountCurve = Handle<YieldTermStructure>()) {
		protected Forward(DayCounter dayCounter, Calendar calendar, BusinessDayConvention businessDayConvention,
						  int settlementDays, Payoff payoff, Date valueDate, Date maturityDate,
						  Handle<YieldTermStructure> discountCurve) {
			dayCounter_ = dayCounter;
			calendar_ = calendar;
			businessDayConvention_ = businessDayConvention;
			settlementDays_ = settlementDays;
			payoff_ = payoff;
			valueDate_ = valueDate;
			maturityDate_ = maturityDate;
			discountCurve_ = discountCurve;

			maturityDate_ = calendar_.adjust(maturityDate_, businessDayConvention_);

			Settings.registerWith(update);
			discountCurve_.registerWith(update);
		}
        //protected Forward(DayCounter dayCounter, Calendar calendar, BusinessDayConvention businessDayConvention,
        //                  int settlementDays, Payoff payoff, Date valueDate, Date maturityDate,
        //                  Handle<YieldTermStructure> discountCurve = Handle<YieldTermStructure>()) {
        protected Forward(DayCounter dayCounter, Calendar calendar, BusinessDayConvention businessDayConvention,
                          int settlementDays, Payoff payoff, Date valueDate, Date maturityDate,
                          Handle <YieldTermStructure> discountCurve)
        {
            dayCounter_            = dayCounter;
            calendar_              = calendar;
            businessDayConvention_ = businessDayConvention;
            settlementDays_        = settlementDays;
            payoff_        = payoff;
            valueDate_     = valueDate;
            maturityDate_  = maturityDate;
            discountCurve_ = discountCurve;

            maturityDate_ = calendar_.adjust(maturityDate_, businessDayConvention_);

            Settings.registerWith(update);
            discountCurve_.registerWith(update);
        }
示例#10
0
 public void visit(Payoff p) {
     throw new NotSupportedException("unsupported payoff type: " + p.name());
 }
示例#11
0
 public Option(Payoff payoff, Exercise exercise)
 {
     payoff_   = payoff;
     exercise_ = exercise;
 }
示例#12
0
 public PayoffWrapper(Option.Type type, double strike)
 {
     payoff_ = new PlainVanillaPayoff(type, strike);
 }
示例#13
0
 public void visit(Payoff p)
 {
     Utils.QL_FAIL("unsupported payoff type: " + p.name());
 }
示例#14
0
 public void visit(Payoff p)
 {
     throw new NotSupportedException("unsupported payoff type: " + p.name());
 }
示例#15
0
 public AverageBasketPayoff(Payoff p, Vector a) : base(p)
 {
     weights_ = a;
 }
示例#16
0
 public MinBasketPayoff(Payoff p) : base(p)
 {
 }
示例#17
0
 public SpreadBasketPayoff(Payoff p)
     : base(p)
 {
 }
示例#18
0
文件: Payoffs.cs 项目: igitur/qlnet
 public StrikedTypePayoff(Payoff p)
     : base((p as StrikedTypePayoff).type_)
 {
     strike_ = (p as StrikedTypePayoff).strike_;
 }
示例#19
0
 public HestonHullWhitePathPricer(double exerciseTime, Payoff payoff, HybridHestonHullWhiteProcess process)
 {
     exerciseTime_ = exerciseTime;
     payoff_       = payoff;
     process_      = process;
 }
示例#20
0
 protected BasketPayoff(Payoff p)
 {
     basePayoff_ = p;
 }
示例#21
0
 public BasketPayoff(Payoff p)
 {
     basePayoff_ = p;
 }
示例#22
0
 public MaxBasketPayoff(Payoff p) : base(p)
 {
 }
示例#23
0
文件: Option.cs 项目: Yenyenx/qlnet
 public Option(Payoff payoff, Exercise exercise)
 {
     payoff_ = payoff;
     exercise_ = exercise;
 }
示例#24
0
 public AverageBasketPayoff(Payoff p, int n) : base(p)
 {
     weights_ = new Vector(n, 1.0 / n);
 }
示例#25
0
 protected CurveDependentStepCondition(Payoff p)
 {
     curveItem_ = new PayoffWrapper(p);
 }
示例#26
0
 public MultiAssetOption(Payoff payoff, Exercise exercise) : base(payoff, exercise)
 {
 }
示例#27
0
 public PayoffWrapper(Payoff p)
 {
     payoff_ = p;
 }