Example #1
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="startDate">开始日</param>
 /// <param name="maturityDate">到期日</param>
 /// <param name="exercise">行权方式</param>
 /// <param name="optionType">看涨看跌</param>
 /// <param name="rainbowType">彩虹期权类型</param>
 /// <param name="strikes">行权价</param>
 /// <param name="cashAmount">现金金额</param>
 /// <param name="underlyingInstrumentType">标的资产类型</param>
 /// <param name="calendar">交易日历</param>
 /// <param name="dayCount">日期规则</param>
 /// <param name="payoffCcy">收益计算币种</param>
 /// <param name="settlementCcy">结算币种</param>
 /// <param name="exerciseDates">行权日</param>
 /// <param name="observationDates">观察日</param>
 /// <param name="fixings">观察价格序列</param>
 /// <param name="notional">名义本金</param>
 /// <param name="settlementGap">结算日规则</param>
 /// <param name="optionPremiumPaymentDate">权利金支付日</param>
 /// <param name="optionPremium">权利金</param>
 /// <param name="hasNightMarket">标的资产是否有夜盘交易</param>
 /// <param name="commodityFuturesPreciseTimeMode">是否启用精确时间模式</param>
 public RainbowOption(Date startDate,
                      Date maturityDate,
                      OptionExercise exercise,
                      OptionType optionType,
                      RainbowType rainbowType,
                      double[] strikes,
                      double cashAmount,
                      InstrumentType underlyingInstrumentType,
                      ICalendar calendar,
                      IDayCount dayCount,
                      CurrencyCode payoffCcy,
                      CurrencyCode settlementCcy,
                      Date[] exerciseDates,
                      Date[] observationDates,
                      string [] underlyingTickers,
                      double notional                      = 1,
                      DayGap settlementGap                 = null,
                      Date optionPremiumPaymentDate        = null,
                      double optionPremium                 = 0,
                      bool hasNightMarket                  = false,
                      bool commodityFuturesPreciseTimeMode = false)
     : base(startDate: startDate, maturityDate: maturityDate, exercise: exercise, optionType: optionType, strike: strikes,
            underlyingInstrumentType: underlyingInstrumentType, calendar: calendar, dayCount: dayCount,
            settlementCcy: settlementCcy, payoffCcy: payoffCcy, exerciseDates: exerciseDates, observationDates: observationDates,
            notional: notional, settlementGap: settlementGap, optionPremiumPaymentDate: optionPremiumPaymentDate, optionPremium: optionPremium, underlyingTickers: underlyingTickers,
            hasNightMarket: hasNightMarket, commodityFuturesPreciseTimeMode: commodityFuturesPreciseTimeMode)
 {
     RainbowType = rainbowType;
     CashAmount  = cashAmount;
     Strikes     = strikes;
 }
Example #2
0
 public RainbowOptionCalculator(
     OptionType optionType, RainbowType rainbowType,
     double strike1, double strike2, double cashAmount, double spotPrice1, double spotPrice2, double rho, double sigma1, double sigma2,
     double exerciseInYears, double riskFreeRate, double dividendRate1, double dividendRate2,
     double notional)
 {
     _optionType  = optionType;
     _rainbowType = rainbowType;
     _X1          = strike1;
     _X2          = strike2;
     _K           = cashAmount;
     _S1          = spotPrice1;
     _S2          = spotPrice2;
     _sigma1      = sigma1;
     _sigma2      = sigma2;
     _r           = riskFreeRate;
     _b1          = riskFreeRate - dividendRate1;
     _b2          = riskFreeRate - dividendRate2;
     _notional    = notional;
     _T           = exerciseInYears;
     _rho         = rho;
 }