Pricing Rainbow Options

Responding to growing client interest, this post highlights the use of Imagine’s Monte Carlo Generator to price multi-asset best-of/worst-of options (aka Rainbow Options).

The pricing solution presented here leverages the flexibility of the Imagine Financial Platform (IFP). More specifically, the IFP Model Interface and the IFP Monte Carlo Simulation Generator, as described below.

  • The IFP Model Interface enables users to register their own pricing models using an app written with our JavaScript API. The interface provides access to security-level information and pricing environment inputs and when directed, passes outputs back to Fair and Greeks columns in the Imagine Trading System (ITS). Users have full control over the model calculations performed within the app. Note that any custom model registered via this interface behaves like one of Imagine’s native models.
  • The IFP Monte Carlo Simulation Generator is a JavaScript API method that gives users access to a simulation generator they can use for Monte Carlo pricing. Users have the ability to define random factors, set the pricing inputs for each factor, set the number of simulations and periods, determine the volatility lookup type, and much more. Imagine users can refer to our JavaScript API Programmers Reference for more about this method.

Users can incorporate a vast range of payoff structures into the pricing function defined by the model interface. For rainbow options, the following payoffs are considered:


For each simulation, we calculate the present value of the instrument based on the payoff function. Th e Generator then averages these values to obtain the current Fair price of the instrument.

A correlation function explicitly defined in the IFP Monte Carlo Generator takes into account any correlations between underlying assets.

Sample RBWO Security Window and Output
Take a Look: Sample rainbowPricer app

Setting up the IFP Model Interface

Create a Custom Reference Table

Setting up the IFP Model Interface starts with creating a Custom Reference Table, where you’ll store the name of the model, function, and script to be utilized by the holding or security. You can name the CRT whatever you want.

The CRT should have the following columns:




Enter the security type code to which the model(s) is relevant (e.g. RBWO for Rainbow Options).


Specify the name of the model; must be unique within the CRT.


Specify a model id number; must be unique within the CRT.


Specify the name of the library app where the model is located. The app can be saved into My Libraries, Shared Libraries, or Imagine Libraries; note that the system first checks My Libraries, then Shared Apps, then Imagine Libraries.

Only specify the library app name; omit the “.js” extension.


Specify the name of the function in the app.

If you want to provide more than one model for the security type, simply add four additional columns of the same names listed above appended with “2” instead of “1” (e.g., ModelName2, ModelId2, Script2, Function2). You may do this for an unlimited number of models.

Choose the Default IFP Models CRT

Next, specify the Custom Reference Table where your models are defined in your system preferences:

  1. Select the menu sequence Tools => Preferences => Portfolio => Recalculation.
  2. In the IFP Model Reference Table field, enter the name of your recently created CRT.
    TIP: Look up available CRTs via the magnifying glass icon on the right-hand side of the field.
  3. Right-click and select OK from the menu.
  4. Click the OK button.

Note: For the system to recognize your updated preferences, you must restart the Imagine Trading System.

Designate Models in Your Holdings

Next, link your model to a holding via its environment. To specify a user-created model for an option or placeholder holding:

  1. Double-click the holding row in the portfolio.
  2. Click the holding’s Environment button.
  3. In the Listed Option tab, change the American Model and European Model to Type.
  4. In the adjacent field, select the name of the model you created and saved.
  5. Right-click and select Save to exit the Environment window.
  6. Right-click and select Save to exit the holding window.
  7. From your portfolio, select the menu sequence Portfolio => Recalc => Fair and Implieds.

The fair and Greeks specified in your model script are recalculated according to the model calculation.

Once the model is referenced by a holding, any calculations on that holding will take this model into account, including Value at Risk, Projections, and custom column calculations.

About the Author
Bill Daher has been with Imagine for nine years and is currently a team leader in Consulting for Imagine’s APAC region. Bill has been heavily involved in the architecture of quantitative solutions in Imagine. He holds a Masters of Actuarial Studies from Macquarie University in Sydney, Australia.

Contact Bill by email or phone: +1 646 827 4427

Imagine’s Pre- and Post-trade Compliance Solution

Imagine empowers users to make informed, risk-compliant decisions in the ever-changing regulatory environment with its robust Pre- and Post-trade Compliance Solution.

With Imagine’s development of a dedicated limit monitoring dashboard, users can monitor limit utilization levels of pre-defined rules across multiple portfolios from a single dashboard view. This provides useful insight into the positions which are breaching, or almost breaching, limit rules defined by the user.
The dashboard also allows clients to upload test trades to an existing set of positions to see if this would create any limit breaches.

Drawing on Imagine’s expertise we have developed a Pre-Trade Compliance module fully integrated with an Execution Management System (EMS) used by many of our users.

The pre-trade compliance workflow is:

  • Imagine’s Consulting Team helps clients create and implement rules to be used in compliance checks
  • EMS sends Imagine a pre-trade order message to Imagine’s powerful REST platform
  • An Imagine App performs the necessary compliance calculations and checks limit breaches against the client-specified rules
  • Imagine returns a REST message to the EMS which displays the outcome for the pre-trade orders. If a trade will cause a breach, the returned status is Rejected, otherwise, its status is OK
  • Trades designated as OK go out to market for execution; rejected trades go into a pending authorization queue along with the reason for rejection

The Pre- and Post-trade Compliance Solution is enabling clients to generate orders in an EMS, while still managing their compliance calculations, using Imagine’s rich universe of data and analytics. The end result being: more informed and compliant investment decision-making by Imagine users when meeting both investor and internal requirements.

Contact us to find out more about our cutting edge Pre- and Post-trade Compliance Solution.

About the Author
Bill Daher has been with Imagine for six years and is currently a team leader in Consulting for Imagine’s APAC region. Bill has been heavily involved in the architecture of quantitative solutions in Imagine. He holds a Masters of Actuarial Studies from Macquarie University in Sydney, Australia.

Bill can be contacted by email or phone: + 61 2 9350 8832