WebCab Options and Futures Demo v2.5 (J2SE Edition)

## webcab.lib.finance.options
Class EuropeanEvaluation

    java.lang.Object
      |
      +--webcab.lib.finance.options.EuropeanEvaluation

All Implemented Interfaces:
  Serializable

public class EuropeanEvaluation
extends Object
implements Serializable

Within this class we consider the evaluation of the present value of European options on equities, equity indexes, currencies and futures contracts in accordance with the classical Black-Scholes model.

See Also:
  Serialized Form

Constructor Summary
`EuropeanEvaluation()` Creates a new instance.

Method Summary
`double` `call(double price, double strike, double riskFreeRate, double volatility, Date evaluationDate, Date maturityDate, BusinessCalendar businessCalendar)` Calculates the present value of a European call option.
`double` `call(double price, double strike, double riskFreeRate, double volatility, double timeToMaturity)` Calculates the present value of a European call option.
`double` `callOnCurrency(double foreignRate, double exchangeRate, double strike, double riskFreeRate, double volatility, Date evaluationDate, Date maturityDate, BusinessCalendar businessCalendar)` Evaluates the value of a European call option on a currency.
`double` `callOnCurrency(double foreignRate, double exchangeRate, double strike, double riskFreeRate, double volatility, double timeToMaturity)` Evaluates the value of a European call option on a currency.
`double` `callOnFutures(double futuresPrice, double strike, double riskFreeRate, double volatility, Date evaluationDate, Date maturityDate, BusinessCalendar businessCalendar)` Evaluates the present value of a European call option on a (stock) futures contract.
`double` `callOnFutures(double futuresPrice, double strike, double riskFreeRate, double volatility, double timeToMaturity)` Evaluates the present value of a European call option on a (stock) futures contract.
`double` `callOnIndex(double yield, double indexValue, double strike, double riskFreeRate, double volatility, Date evaluationDate, Date maturityDate, BusinessCalendar businessCalendar)` Evaluates the value of a European call option on an index.
`double` `callOnIndex(double yield, double indexValue, double strike, double riskFreeRate, double volatility, double timeToMaturity)` Evaluates the value of a European call option on an index.
`double` `callWithDividends(double stockPrice, double strike, double riskFreeRate, double volatility, Date evaluationDate, Date maturityDate, double[] dividend, double[] dividendPaymentDates, BusinessCalendar businessCalendar)` Calculates the present value of a European call option on an equity investment which pays dividends during the options life.
`double` `callWithDividends(double stockPrice, double strike, double riskFreeRate, double volatility, double timeToMaturity, double[] dividend, double[] dividendPaymentDates)` Calculates the present value of a European call option on an equity investment which pays dividends during the options life.
`double` `callWithYield(double yield, double stockPrice, double strike, double riskFreeRate, double volatility, Date evaluationDate, Date maturityDate, BusinessCalendar businessCalendar)` Calculates the value of a European call option where the underlying asset pays a continuous dividend.
`double` `callWithYield(double yield, double stockPrice, double strike, double riskFreeRate, double volatility, double timeToMaturity)` Calculates the value of a European call option where the underlying asset pays a continuous dividend.
`double` `payOffCall(double maturityPrice, double strike)` This method calculates the payoff at maturity from a European call option.
`double` `payOffPut(double maturityPrice, double strike)` This method calculates the payoff at maturity from a European put option.
`double` `put(double stockPrice, double strike, double riskFreeRate, double volatility, Date evaluationDate, Date maturityDate, BusinessCalendar businessCalendar)` Calculates the present value of a European put option on an investment asset which does not pay any dividends, coupons or interest.
`double` `put(double stockPrice, double strike, double riskFreeRate, double volatility, double timeToMaturity)` Calculates the present value of a European put option on an investment asset which does not pay any dividends, coupons or interest.
`double` `putOnCurrency(double foreignRate, double exchangeRate, double strike, double riskFreeRate, double volatility, Date evaluationDate, Date maturityDate, BusinessCalendar businessCalendar)` Evaluates the value of a European put options on a currency.
`double` `putOnCurrency(double foreignRate, double exchangeRate, double strike, double riskFreeRate, double volatility, double timeToMaturity)` Evaluates the value of a European put options on a currency.
`double` `putOnFutures(double futuresPrice, double strike, double riskFreeRate, double volatility, Date evaluationDate, Date maturityDate, BusinessCalendar businessCalendar)` Evaluates the present value of a European put option on a (stock) futures contract.
`double` `putOnFutures(double futuresPrice, double strike, double riskFreeRate, double volatility, double timeToMaturity)` Evaluates the present value of a European put option on a (stock) futures contract.
`double` `putOnIndex(double yield, double indexValue, double strike, double riskFreeRate, double volatility, Date evaluationDate, Date maturityDate, BusinessCalendar businessCalendar)` Evaluates the value of a European put option on an index.
`double` `putOnIndex(double yield, double indexValue, double strike, double riskFreeRate, double volatility, double timeToMaturity)` Evaluates the value of a European put option on an index.
`double` `putWithDividends(double stockPrice, double strike, double riskFreeRate, double volatility, Date evaluationDate, Date maturityDate, double[] dividends, double[] dividendPaymentDates, BusinessCalendar businessCalendar)` Calculates the present value of a European put option on an equity investment which pays dividends during the options life.
`double` `putWithDividends(double stockPrice, double strike, double riskFreeRate, double volatility, double timeToMaturity, double[] dividends, double[] dividendPaymentDates)` Calculates the present value of a European put option on an equity investment which pays dividends during the options life.
`double` `putWithYield(double yield, double stockPrice, double strike, double riskFreeRate, double volatility, Date evaluationDate, Date maturityDate, BusinessCalendar businessCalendar)` Evaluates the present value of a European put option where the underlying asset pays a continuous dividend.
`double` `putWithYield(double yield, double stockPrice, double strike, double riskFreeRate, double volatility, double timeToMaturity)` Evaluates the present value of a European put option where the underlying asset pays a continuous dividend.
`double` `totalValue(double delta, double theta, double gamma, double assetPrice, double riskFreeRate, double volatility)` Here we derive an estimate of the total value of a portfolio of derivatives whch depend on some underlying asset.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### EuropeanEvaluation

    public EuropeanEvaluation()

  Creates a new instance.

Method Detail

### payOffCall

    public double payOffCall(double maturityPrice,
                             double strike)
                      throws EuropeanEvaluationDemoException

  This method calculates the payoff at maturity from a European call option.

  Parameters:
    `maturityPrice` - the price of the underlying asset at the mature on the option contract
    `strike` - the strike price of the call option
    `EuropeanEvaluationDemoException`

### payOffPut

    public double payOffPut(double maturityPrice,
                            double strike)
                     throws EuropeanEvaluationDemoException

  This method calculates the payoff at maturity from a European put option.

  Parameters:
    `maturityPrice` - the price of the underlying asset price at the maturity of the option contract
    `strike` - the strike price of the put option
    `EuropeanEvaluationDemoException`

### call

    public double call(double price,
                       double strike,
                       double riskFreeRate,
                       double volatility,
                       Date evaluationDate,
                       Date maturityDate,
                       BusinessCalendar businessCalendar)
                throws EuropeanEvaluationDemoException

  Calculates the present value of a European call option.

  Parameters:
    `price` - the present price of the underlying asset on which the call option can be exercised
    `strike` - the strike price of the call option
    `riskFreeRate` - the continuously compounded risk free interest rate expressed in decimal format (i.e. 1 percent = 0.01)
    `volatility` - the volatility of the price of the underlying asset
    `evaluationDate` - the evaluation date of the option
    `maturityDate` - the date when the option contract matures
    `businessCalendar` - The instance of a `BusinessCalendar` interface implementation. Specify `null` to select the London business calendar.
    `EuropeanEvaluationDemoException`

### call

    public double call(double price,
                       double strike,
                       double riskFreeRate,
                       double volatility,
                       double timeToMaturity)
                throws EuropeanEvaluationDemoException

  Calculates the present value of a European call option.

  Parameters:
    `price` - the present price of the underlying asset on which the call option can be exercised
    `strike` - the strike price of the call option
    `riskFreeRate` - the continuously compounded risk free interest rate expressed in decimal format (i.e. 1 percent = 0.01)
    `volatility` - the volatility of the price of the underlying asset
    `timeToMaturity` - the time (in years) until the option matures
    `EuropeanEvaluationDemoException`

### put

    public double put(double stockPrice,
                      double strike,
                      double riskFreeRate,
                      double volatility,
                      Date evaluationDate,
                      Date maturityDate,
                      BusinessCalendar businessCalendar)
               throws EuropeanEvaluationDemoException

  Calculates the present value of a European put option on an investment asset which does not pay any dividends, coupons or interest.

  Parameters:
    `stockPrice` - the present price of the stock price
    `strike` - the strike price of the put option
    `riskFreeRate` - the continuously compounded risk free interest rate expressed in decimal format (i.e. 1 percent = 0.01)
    `volatility` - the volatility of the underlying asset price
    `evaluationDate` - the evaluation date of the option
    `maturityDate` - the date when the option contract matures
    `businessCalendar` - The instance of a `BusinessCalendar` interface implementation. Specify `null` to select the London business calendar.
    `EuropeanEvaluationDemoException`

### put

    public double put(double stockPrice,
                      double strike,
                      double riskFreeRate,
                      double volatility,
                      double timeToMaturity)
               throws EuropeanEvaluationDemoException

  Calculates the present value of a European put option on an investment asset which does not pay any dividends, coupons or interest.

  Parameters:
    `stockPrice` - the present price of the stock price
    `strike` - the strike price of the put option
    `riskFreeRate` - the continuously compounded risk free interest rate expressed in decimal format (i.e. 1 percent = 0.01)
    `volatility` - the volatility of the underlying asset price
    `timeToMaturity` - the time (in years) until the option contract matures
    `EuropeanEvaluationDemoException`

### callWithDividends

    public double callWithDividends(double stockPrice,
                                    double strike,
                                    double riskFreeRate,
                                    double volatility,
                                    Date evaluationDate,
                                    Date maturityDate,
                                    double[] dividend,
                                    double[] dividendPaymentDates,
                                    BusinessCalendar businessCalendar)
                             throws EuropeanEvaluationDemoException

  Calculates the present value of a European call option on an equity investment which pays dividends during the options life. This method extends the Black - Scholes model by treating the dividends as a risk free component of the total return.

  Parameters:
    `stockPrice` - the present market price of the stock
    `strike` - the strike of the call option
    `riskFreeRate` - the continuously compounded risk free interest rate expressed in decimal format (i.e. 1 percent = 0.01)
    `volatility` - the volatility of the stock
    `dividendPaymentDates` - an array of months to when each of the corresponding dividend payments will be paid
    `evaluationDate` - the evaluation date of the option
    `maturityDate` - the date when the option contract matures
    `businessCalendar` - The instance of a `BusinessCalendar` interface implementation. Specify `null` to select the London business calendar.
    `EuropeanEvaluationDemoException`

### callWithDividends

    public double callWithDividends(double stockPrice,
                                    double strike,
                                    double riskFreeRate,
                                    double volatility,
                                    double timeToMaturity,
                                    double[] dividend,
                                    double[] dividendPaymentDates)
                             throws EuropeanEvaluationDemoException

  Calculates the present value of a European call option on an equity investment which pays dividends during the options life. This method extends the Black - Scholes model by treating the dividends as a risk free component of the total return.

  Parameters:
    `stockPrice` - the present market price of the stock
    `strike` - the strike of the call option
    `riskFreeRate` - the continuously compounded risk free interest rate expressed in decimal format (i.e. 1 percent = 0.01)
    `volatility` - the volatility of the stock
    `timeToMaturity` - the time to the maturity of the option (in years)
    `dividendPaymentDates` - an array of months to when each of the corresponding dividend payments will be paid
    `EuropeanEvaluationDemoException`

### putWithDividends

    public double putWithDividends(double stockPrice,
                                   double strike,
                                   double riskFreeRate,
                                   double volatility,
                                   Date evaluationDate,
                                   Date maturityDate,
                                   double[] dividends,
                                   double[] dividendPaymentDates,
                                   BusinessCalendar businessCalendar)
                            throws EuropeanEvaluationDemoException

  Calculates the present value of a European put option on an equity investment which pays dividends during the options life. This method extends the Black - Scholes model by treating the dividends as a risk free component of the total return.

  Parameters:
    `stockPrice` - the present stock price
    `strike` - the strike of the call option
    `riskFreeRate` - the continuously compounded risk free interest rate expressed in decimal format (i.e. 1 percent = 0.01)
    `volatility` - the volatility of the stock price
    `dividends` - an array of dividend payments during the option period
    `dividendPaymentDates` - an array of months to when each of the corresponding dividend payments will be paid
    `evaluationDate` - the evaluation date of the option
    `maturityDate` - the date when the option contract matures
    `businessCalendar` - The instance of a `BusinessCalendar` interface implementation. Specify `null` to select the London business calendar.
    `EuropeanEvaluationDemoException`

### putWithDividends

    public double putWithDividends(double stockPrice,
                                   double strike,
                                   double riskFreeRate,
                                   double volatility,
                                   double timeToMaturity,
                                   double[] dividends,
                                   double[] dividendPaymentDates)
                            throws EuropeanEvaluationDemoException

  Calculates the present value of a European put option on an equity investment which pays dividends during the options life. This method extends the Black - Scholes model by treating the dividends as a risk free component of the total return.

  Parameters:
    `stockPrice` - the present stock price
    `strike` - the strike of the call option
    `riskFreeRate` - the continuously compounded risk free interest rate expressed in decimal format (i.e. 1 percent = 0.01)
    `volatility` - the volatility of the stock price
    `timeToMaturity` - the time (in years) to the maturity of the option
    `dividends` - an array of dividend payments during the option period
    `dividendPaymentDates` - an array of months to when each of the corresponding dividend payments will be paid
    `EuropeanEvaluationDemoException`

### callWithYield

    public double callWithYield(double yield,
                                double stockPrice,
                                double strike,
                                double riskFreeRate,
                                double volatility,
                                Date evaluationDate,
                                Date maturityDate,
                                BusinessCalendar businessCalendar)
                         throws EuropeanEvaluationDemoException

  Calculates the value of a European call option where the underlying asset pays a continuous dividend.

  Parameters:
    `yield` - this is the continuous dividend yield paid by the underlying asset
    `stockPrice` - the stock priceo
    `strike` - the strike price of the call option
    `riskFreeRate` - the continuously compounded risk free interest rate expressed in decimal format (i.e. 1 percent = 0.01)
    `volatility` - the volatility of the stock or asset price
    `evaluationDate` - the evaluation date of the option
    `maturityDate` - the date when the option contract matures
    `businessCalendar` - The instance of a `BusinessCalendar` interface implementation. Specify `null` to select the London business calendar.
    `EuropeanEvaluationDemoException`

### callWithYield

    public double callWithYield(double yield,
                                double stockPrice,
                                double strike,
                                double riskFreeRate,
                                double volatility,
                                double timeToMaturity)
                         throws EuropeanEvaluationDemoException

  Calculates the value of a European call option where the underlying asset pays a continuous dividend.

  Parameters:
    `yield` - this is the continuous dividend yield paid by the underlying asset
    `stockPrice` - the stock priceo
    `strike` - the strike price of the call option
    `riskFreeRate` - the continuously compounded risk free interest rate expressed in decimal format (i.e. 1 percent = 0.01)
    `volatility` - the volatility of the stock or asset price
    `timeToMaturity` - the time (in years) to the maturity of the option
    `EuropeanEvaluationDemoException`

### putWithYield

    public double putWithYield(double yield,
                               double stockPrice,
                               double strike,
                               double riskFreeRate,
                               double volatility,
                               Date evaluationDate,
                               Date maturityDate,
                               BusinessCalendar businessCalendar)
                        throws EuropeanEvaluationDemoException

  Evaluates the present value of a European put option where the underlying asset pays a continuous dividend.

  Parameters:
    `yield` - the continuous dividend yield paid by the underlying asset
    `stockPrice` - the stock price
    `strike` - the strike price of the put option
    `riskFreeRate` - the continuously compounded risk free interest rate expressed in decimal format (i.e. 1 percent = 0.01)
    `volatility` - the volatility of the stock or asset price
    `evaluationDate` - the evaluation date of the option
    `maturityDate` - the date when the option contract matures
    `businessCalendar` - The instance of a `BusinessCalendar` interface implementation. Specify `null` to select the London business calendar.
    `EuropeanEvaluationDemoException`

### putWithYield

    public double putWithYield(double yield,
                               double stockPrice,
                               double strike,
                               double riskFreeRate,
                               double volatility,
                               double timeToMaturity)
                        throws EuropeanEvaluationDemoException

  Evaluates the present value of a European put option where the underlying asset pays a continuous dividend.

  Parameters:
    `yield` - the continuous dividend yield paid by the underlying asset
    `stockPrice` - the stock price
    `strike` - the strike price of the put option
    `riskFreeRate` - the continuously compounded risk free interest rate expressed in decimal format (i.e. 1 percent = 0.01)
    `volatility` - the volatility of the stock or asset price
    `timeToMaturity` - the time (in years) until the option matures
    `EuropeanEvaluationDemoException`

### callOnIndex

    public double callOnIndex(double yield,
                              double indexValue,
                              double strike,
                              double riskFreeRate,
                              double volatility,
                              Date evaluationDate,
                              Date maturityDate,
                              BusinessCalendar businessCalendar)
                       throws EuropeanEvaluationDemoException

  Evaluates the value of a European call option on an index.

  Parameters:
    `yield` - the average yield of the contingents of the index
    `indexValue` - the value of the index
    `strike` - index value at which the option is exercised
    `riskFreeRate` - the continuously compounded risk free interest rate expressed in decimal format (i.e. 1 percent = 0.01)
    `volatility` - the volatility of the index
    `evaluationDate` - the evaluation date of the option
    `maturityDate` - the date when the option contract matures
    `businessCalendar` - The instance of a `BusinessCalendar` interface implementation. Specify `null` to select the London business calendar.
    `EuropeanEvaluationDemoException`

### callOnIndex

    public double callOnIndex(double yield,
                              double indexValue,
                              double strike,
                              double riskFreeRate,
                              double volatility,
                              double timeToMaturity)
                       throws EuropeanEvaluationDemoException

  Evaluates the value of a European call option on an index.

  Parameters:
    `yield` - the average yield of the contingents of the index
    `indexValue` - the value of the index
    `strike` - index value at which the option is exercised
    `riskFreeRate` - the continuously compounded risk free interest rate expressed in decimal format (i.e. 1 percent = 0.01)
    `volatility` - the volatility of the index
    `timeToMaturity` - the time (in years) until the option matures
    `EuropeanEvaluationDemoException`

### putOnIndex

    public double putOnIndex(double yield,
                             double indexValue,
                             double strike,
                             double riskFreeRate,
                             double volatility,
                             Date evaluationDate,
                             Date maturityDate,
                             BusinessCalendar businessCalendar)
                      throws EuropeanEvaluationDemoException

  Evaluates the value of a European put option on an index.

  Parameters:
    `yield` - the average yield of the contingents of the index
    `indexValue` - the value of the index
    `strike` - index value at which the option is exercised
    `riskFreeRate` - the continuously compounded risk free interest rate expressed in decimal format (i.e. 1 percent = 0.01)
    `volatility` - the volatility of the index
    `evaluationDate` - the evaluation date of the option
    `maturityDate` - the date when the option contract matures
    `businessCalendar` - The instance of a `BusinessCalendar` interface implementation. Specify `null` to select the London business calendar.
    `EuropeanEvaluationDemoException`

### putOnIndex

    public double putOnIndex(double yield,
                             double indexValue,
                             double strike,
                             double riskFreeRate,
                             double volatility,
                             double timeToMaturity)
                      throws EuropeanEvaluationDemoException

  Evaluates the value of a European put option on an index.

  Parameters:
    `yield` - the average yield of the contingents of the index
    `indexValue` - the value of the index
    `strike` - index value at which the option is exercised
    `riskFreeRate` - the continuously compounded risk free interest rate expressed in decimal format (i.e. 1 percent = 0.01)
    `volatility` - the volatility of the index
    `timeToMaturity` - the time (in years) until the option contract matures
    `EuropeanEvaluationDemoException`

### callOnCurrency

    public double callOnCurrency(double foreignRate,
                                 double exchangeRate,
                                 double strike,
                                 double riskFreeRate,
                                 double volatility,
                                 Date evaluationDate,
                                 Date maturityDate,
                                 BusinessCalendar businessCalendar)
                          throws EuropeanEvaluationDemoException

  Evaluates the value of a European call option on a currency.

  Parameters:
    `foreignRate` - the continuously compounded risk free interest rate in the foreign currency
    `exchangeRate` - the present exchange rate
    `strike` - the exchange rate at which the option can be exercised
    `riskFreeRate` - continuously compounded risk free interest rate in the base currency expressed in decimal format (i.e. 1 percent = 0.01)
    `volatility` - the volatility of the exchange rate
    `evaluationDate` - the evaluation date of the option
    `maturityDate` - the date when the option contract matures
    `businessCalendar` - The instance of a `BusinessCalendar` interface implementation. Specify `null` to select the London business calendar.
    `EuropeanEvaluationDemoException`

### callOnCurrency

    public double callOnCurrency(double foreignRate,
                                 double exchangeRate,
                                 double strike,
                                 double riskFreeRate,
                                 double volatility,
                                 double timeToMaturity)
                          throws EuropeanEvaluationDemoException

  Evaluates the value of a European call option on a currency.

  Parameters:
    `foreignRate` - the continuously compounded risk free interest rate in the foreign currency
    `exchangeRate` - the present exchange rate
    `strike` - the exchange rate at which the option can be exercised
    `riskFreeRate` - continuously compounded risk free interest rate in the base currency expressed in decimal format (i.e. 1 percent = 0.01)
    `volatility` - the volatility of the exchange rate
    `timeToMaturity` - time to the maturity of the option (in years)
    `EuropeanEvaluationDemoException`

### putOnCurrency

    public double putOnCurrency(double foreignRate,
                                double exchangeRate,
                                double strike,
                                double riskFreeRate,
                                double volatility,
                                Date evaluationDate,
                                Date maturityDate,
                                BusinessCalendar businessCalendar)
                         throws EuropeanEvaluationDemoException

  Evaluates the value of a European put options on a currency.

  Parameters:
    `foreignRate` - the continuously compounded risk free interest rate in the foreign currency
    `exchangeRate` - the present exchange rate
    `strike` - the exchange rate at which the option can be exercised
    `riskFreeRate` - the risk free interest rate in the base currency expressed in decimal format (i.e. 1 percent = 0.01)
    `volatility` - the volatility of the exchange rate
    `evaluationDate` - the evaluation date of the option
    `maturityDate` - the date when the option contract matures
    `businessCalendar` - The instance of a `BusinessCalendar` interface implementation. Specify `null` to select the London business calendar.
    `EuropeanEvaluationDemoException`

### putOnCurrency

    public double putOnCurrency(double foreignRate,
                                double exchangeRate,
                                double strike,
                                double riskFreeRate,
                                double volatility,
                                double timeToMaturity)
                         throws EuropeanEvaluationDemoException

  Evaluates the value of a European put options on a currency.

  Parameters:
    `foreignRate` - the continuously compounded risk free interest rate in the foreign currency
    `exchangeRate` - the present exchange rate
    `strike` - the exchange rate at which the option can be exercised
    `riskFreeRate` - the risk free interest rate in the base currency expressed in decimal format (i.e. 1 percent = 0.01)
    `volatility` - the volatility of the exchange rate
    `timeToMaturity` - the time (in years) until the option contract matures
    `EuropeanEvaluationDemoException`

### callOnFutures

    public double callOnFutures(double futuresPrice,
                                double strike,
                                double riskFreeRate,
                                double volatility,
                                Date evaluationDate,
                                Date maturityDate,
                                BusinessCalendar businessCalendar)
                         throws EuropeanEvaluationDemoException

  Evaluates the present value of a European call option on a (stock) futures contract.

  Parameters:
    `futuresPrice` - the present price the underlying futures price
    `strike` - the strike of the options contract. The strike is the price at which the underlying futures contract can be purchased at when the call option is exercised.
    `riskFreeRate` - continuously compounded risk free interest rate expressed in decimal format (i.e. 1 percent = 0.01)
    `volatility` - the volatility of the underlying futures contract
    `evaluationDate` - the evaluation date of the option
    `maturityDate` - the date when the option contract matures
    `businessCalendar` - The instance of a `BusinessCalendar` interface implementation. Specify `null` to select the London business calendar.
    `EuropeanEvaluationDemoException`

### callOnFutures

    public double callOnFutures(double futuresPrice,
                                double strike,
                                double riskFreeRate,
                                double volatility,
                                double timeToMaturity)
                         throws EuropeanEvaluationDemoException

  Evaluates the present value of a European call option on a (stock) futures contract.

  Parameters:
    `futuresPrice` - the present price the underlying futures price
    `strike` - the strike of the options contract. The strike is the price at which the underlying futures contract can be purchased at when the call option is exercised.
    `riskFreeRate` - continuously compounded risk free interest rate expressed in decimal format (i.e. 1 percent = 0.01)
    `volatility` - the volatility of the underlying futures contract
    `timeToMaturity` - the time (in years) until the option contract expires
    `EuropeanEvaluationDemoException`

### putOnFutures

    public double putOnFutures(double futuresPrice,
                               double strike,
                               double riskFreeRate,
                               double volatility,
                               Date evaluationDate,
                               Date maturityDate,
                               BusinessCalendar businessCalendar)
                        throws EuropeanEvaluationDemoException

  Evaluates the present value of a European put option on a (stock) futures contract.

  Parameters:
    `futuresPrice` - the present price of the underlying futures contract
    `strike` - the strike of the option contract. The strike is the price at which the underlying futures contracts can be sold at when the put option is exercised.
    `riskFreeRate` - the risk free interest rate expressed in decimal format (i.e. 1 percent = 0.01)
    `volatility` - the volatility of the underlying futures contract
    `evaluationDate` - the evaluation date of the option
    `maturityDate` - the date when the option contract matures
    `businessCalendar` - The instance of a `BusinessCalendar` interface implementation. Specify `null` to select the London business calendar.
    `EuropeanEvaluationDemoException`

### putOnFutures

    public double putOnFutures(double futuresPrice,
                               double strike,
                               double riskFreeRate,
                               double volatility,
                               double timeToMaturity)
                        throws EuropeanEvaluationDemoException

  Evaluates the present value of a European put option on a (stock) futures contract.

  Parameters:
    `futuresPrice` - the present price of the underlying futures contract
    `strike` - the strike of the option contract. The strike is the price at which the underlying futures contracts can be sold at when the put option is exercised.
    `riskFreeRate` - the risk free interest rate expressed in decimal format (i.e. 1 percent = 0.01)
    `volatility` - the volatility of the underlying futures contract
    `timeToMaturity` - the time (in years) until the option contract matures
    `EuropeanEvaluationDemoException`

### totalValue

    public double totalValue(double delta,
                             double theta,
                             double gamma,
                             double assetPrice,
                             double riskFreeRate,
                             double volatility)
                      throws EuropeanEvaluationDemoException

  Here we derive an estimate of the total value of a portfolio of derivatives whch depend on some underlying asset.

  Example: This method could be applied to a portfolio consisting of derivative contracts on Gold (i.e. AU). In this case, if we know the delta, theta and gamma of the gold portfolio, the market price and volatility of gold and the risk free interest rate of the reference currency. Then we are able to estimate (to the second order) the value of the entire portfolio with respect to the reference currency.

  Parameters:
    `delta` - the delta of the portfolio
    `theta` - the theta of the portfolio
    `gamma` - the gamma of the portfolio
    `assetPrice` - the underlying asset price
    `volatility` - the volatility of the underlying asset price
    `riskFreeRate` - the continuously compounded risk free interest rate in the reference currency expressed in decimal format (i.e. 1 percent = 0.01)
    `EuropeanEvaluationDemoException`

WebCab Options and Futures Demo v2.5 (J2SE Edition)