### A free/open-source library for quantitative finance

Public Member Functions
CompositeInstrument Class Reference
Financial instruments

Composite instrument More...

`#include <ql/instruments/compositeinstrument.hpp>`

Inheritance diagram for CompositeInstrument:
[legend]

List of all members.

## Public Member Functions

void | add (const boost::shared_ptr< Instrument > &instrument, Real multiplier=1.0)
| adds an instrument to the composite
void | subtract (const boost::shared_ptr< Instrument > &instrument, Real multiplier=1.0)
| shorts an instrument from the composite

## Instrument interface

bool | isExpired () const
| returns whether the instrument might have value greater than zero.
void | performCalculations () const

## Detailed Description

Composite instrument

This instrument is an aggregate of other instruments. Its NPV is the sum of the NPVs of its components, each possibly multiplied by a given factor.

Example: static replication of a down-and-out barrier option

Warning:
  Methods that drive the calculation directly (such as recalculate(), freeze() and others) might not work correctly.

Examples:
  Replication.cpp.

## Member Function Documentation

void performCalculations | ( |  | ) | const`[protected, virtual]`

In case a pricing engine is not used, this method must be overridden to perform the actual calculations and set any needed results. In case a pricing engine is used, the default implementation can be used.

Reimplemented from Instrument.