IBM InfoSphere Streams Version 4.1.1

SPL File Greeks.spl

The Greeks are quantities that represent the sensitivities of change to underlying conditions such as volatility, stock price, (both current price and strike price), time (or days until maturity of the option) and interest rate. The value of an option is dependent upon changes to these conditions.

The Greeks allow option traders to calculate changes in the value of option contracts by looking at the factors that affect the value of an option. A full definition and explanation of the Greeks is beyond the scope of this document. For more information, consult search engine and browser resources.

The following Greeks are part of the financial toolkit; their source code can be found in the following file: $STREAMS_INSTALL/toolkits/com.ibm.streams.financial/com.ibm.streams.financial/utility/Greeks/Greeks.spl

Greeks for Put and Call values:

float64 calcCallValue1()  // (Two slightly different algorithms for
float64 calcCallValue2()  // calculating the call value)
float64 calcCallDelta() 
float64 calcCallTheta() 
float64 calcCallRho() 
float64 calcCallCharm() 
float64 calcCallDualDelta()

float64 calcPutValue1()   // (Two slightly different algorithms for
float64 calcPutValue2()   // calculating the put value) 
float64 calcPutDelta() 
float64 calcPutTheta() 
float64 calcPutRho() 
float64 calcPutCharm() 
float64 calcPutDualDelta()

Greeks for general values:

float64 calcGamma() 
float64 calcVega() 
float64 calcVanna() 
float64 calcSpeed()
float64 calcZomma()
float64 calcColor()
float64 calcDvegaDtime()
float64 calcVomma()
float64 calcDualGamma()

In addition, a convenience function exists that returns all the Greek values as an SPL list<float64> type:

list<float64> calcGreeks() 

Each Greek is calculated under the Black-Scholes Model.

All attributes to the functions and the return type are represented through the SPL type float64. Each function has the same signature of arguments and return type.

Each function has six arguments: volatility; stockPrice; strikePrice; daysToMaturity; riskFreeRate; annualDividendYield.

Examples
This example demonstrates how to compute the Greek Delta and Theta value for an option "call".

Content

Functions

Functions

float64 calcCallValue1(float64 volatility, float64 stockPrice, float64 strikePrice, float64 daysToMaturity, float64 riskFreeRate, float64 annualDividendYield)

Parameters

  • volatility
  • stockPrice
  • strikePrice
  • daysToMaturity
  • riskFreeRate
  • annualDividendYield

Returns

  • float64

float64 calcCallValue2(float64 volatility, float64 stockPrice, float64 strikePrice, float64 daysToMaturity, float64 riskFreeRate, float64 annualDividendYield)

Parameters

  • volatility
  • stockPrice
  • strikePrice
  • daysToMaturity
  • riskFreeRate
  • annualDividendYield

Returns

  • float64

float64 calcCallDelta(float64 volatility, float64 stockPrice, float64 strikePrice, float64 daysToMaturity, float64 riskFreeRate, float64 annualDividendYield)

Parameters

  • volatility
  • stockPrice
  • strikePrice
  • daysToMaturity
  • riskFreeRate
  • annualDividendYield

Returns

  • float64

float64 calcCallTheta(float64 volatility, float64 stockPrice, float64 strikePrice, float64 daysToMaturity, float64 riskFreeRate, float64 annualDividendYield)

Parameters

  • volatility
  • stockPrice
  • strikePrice
  • daysToMaturity
  • riskFreeRate
  • annualDividendYield

Returns

  • float64

float64 calcCallRho(float64 volatility, float64 stockPrice, float64 strikePrice, float64 daysToMaturity, float64 riskFreeRate, float64 annualDividendYield)

Parameters

  • volatility
  • stockPrice
  • strikePrice
  • daysToMaturity
  • riskFreeRate
  • annualDividendYield

Returns

  • float64

float64 calcCallCharm(float64 volatility, float64 stockPrice, float64 strikePrice, float64 daysToMaturity, float64 riskFreeRate, float64 annualDividendYield)

Parameters

  • volatility
  • stockPrice
  • strikePrice
  • daysToMaturity
  • riskFreeRate
  • annualDividendYield

Returns

  • float64

float64 calcCallDualDelta(float64 volatility, float64 stockPrice, float64 strikePrice, float64 daysToMaturity, float64 riskFreeRate, float64 annualDividendYield)

Parameters

  • volatility
  • stockPrice
  • strikePrice
  • daysToMaturity
  • riskFreeRate
  • annualDividendYield

Returns

  • float64

float64 calcPutValue1(float64 volatility, float64 stockPrice, float64 strikePrice, float64 daysToMaturity, float64 riskFreeRate, float64 annualDividendYield)

Parameters

  • volatility
  • stockPrice
  • strikePrice
  • daysToMaturity
  • riskFreeRate
  • annualDividendYield

Returns

  • float64

float64 calcPutValue2(float64 volatility, float64 stockPrice, float64 strikePrice, float64 daysToMaturity, float64 riskFreeRate, float64 annualDividendYield)

Parameters

  • volatility
  • stockPrice
  • strikePrice
  • daysToMaturity
  • riskFreeRate
  • annualDividendYield

Returns

  • float64

float64 calcPutDelta(float64 volatility, float64 stockPrice, float64 strikePrice, float64 daysToMaturity, float64 riskFreeRate, float64 annualDividendYield)

Parameters

  • volatility
  • stockPrice
  • strikePrice
  • daysToMaturity
  • riskFreeRate
  • annualDividendYield

Returns

  • float64

float64 calcPutTheta(float64 volatility, float64 stockPrice, float64 strikePrice, float64 daysToMaturity, float64 riskFreeRate, float64 annualDividendYield)

Parameters

  • volatility
  • stockPrice
  • strikePrice
  • daysToMaturity
  • riskFreeRate
  • annualDividendYield

Returns

  • float64

float64 calcPutRho(float64 volatility, float64 stockPrice, float64 strikePrice, float64 daysToMaturity, float64 riskFreeRate, float64 annualDividendYield)

Parameters

  • volatility
  • stockPrice
  • strikePrice
  • daysToMaturity
  • riskFreeRate
  • annualDividendYield

Returns

  • float64

float64 calcPutCharm(float64 volatility, float64 stockPrice, float64 strikePrice, float64 daysToMaturity, float64 riskFreeRate, float64 annualDividendYield)

Parameters

  • volatility
  • stockPrice
  • strikePrice
  • daysToMaturity
  • riskFreeRate
  • annualDividendYield

Returns

  • float64

float64 calcPutDualDelta(float64 volatility, float64 stockPrice, float64 strikePrice, float64 daysToMaturity, float64 riskFreeRate, float64 annualDividendYield)

Parameters

  • volatility
  • stockPrice
  • strikePrice
  • daysToMaturity
  • riskFreeRate
  • annualDividendYield

Returns

  • float64

float64 calcGamma(float64 volatility, float64 stockPrice, float64 strikePrice, float64 daysToMaturity, float64 riskFreeRate, float64 annualDividendYield)

Parameters

  • volatility
  • stockPrice
  • strikePrice
  • daysToMaturity
  • riskFreeRate
  • annualDividendYield

Returns

  • float64

float64 calcVega(float64 volatility, float64 stockPrice, float64 strikePrice, float64 daysToMaturity, float64 riskFreeRate, float64 annualDividendYield)

Parameters

  • volatility
  • stockPrice
  • strikePrice
  • daysToMaturity
  • riskFreeRate
  • annualDividendYield

Returns

  • float64

float64 calcVanna(float64 volatility, float64 stockPrice, float64 strikePrice, float64 daysToMaturity, float64 riskFreeRate, float64 annualDividendYield)

Parameters

  • volatility
  • stockPrice
  • strikePrice
  • daysToMaturity
  • riskFreeRate
  • annualDividendYield

Returns

  • float64

float64 calcSpeed(float64 volatility, float64 stockPrice, float64 strikePrice, float64 daysToMaturity, float64 riskFreeRate, float64 annualDividendYield)

Parameters

  • volatility
  • stockPrice
  • strikePrice
  • daysToMaturity
  • riskFreeRate
  • annualDividendYield

Returns

  • float64

float64 calcZomma(float64 volatility, float64 stockPrice, float64 strikePrice, float64 daysToMaturity, float64 riskFreeRate, float64 annualDividendYield)

Parameters

  • volatility
  • stockPrice
  • strikePrice
  • daysToMaturity
  • riskFreeRate
  • annualDividendYield

Returns

  • float64

float64 calcColor(float64 volatility, float64 stockPrice, float64 strikePrice, float64 daysToMaturity, float64 riskFreeRate, float64 annualDividendYield)

Parameters

  • volatility
  • stockPrice
  • strikePrice
  • daysToMaturity
  • riskFreeRate
  • annualDividendYield

Returns

  • float64

float64 calcDvegaDtime(float64 volatility, float64 stockPrice, float64 strikePrice, float64 daysToMaturity, float64 riskFreeRate, float64 annualDividendYield)

Parameters

  • volatility
  • stockPrice
  • strikePrice
  • daysToMaturity
  • riskFreeRate
  • annualDividendYield

Returns

  • float64

float64 calcVomma(float64 volatility, float64 stockPrice, float64 strikePrice, float64 daysToMaturity, float64 riskFreeRate, float64 annualDividendYield)

Parameters

  • volatility
  • stockPrice
  • strikePrice
  • daysToMaturity
  • riskFreeRate
  • annualDividendYield

Returns

  • float64

float64 calcDualGamma(float64 volatility, float64 stockPrice, float64 strikePrice, float64 daysToMaturity, float64 riskFreeRate, float64 annualDividendYield)

Parameters

  • volatility
  • stockPrice
  • strikePrice
  • daysToMaturity
  • riskFreeRate
  • annualDividendYield

Returns

  • float64

list<float64> calcGreeks(float64 volatility, float64 stockPrice, float64 strikePrice, float64 daysToMaturity, float64 riskFreeRate, float64 annualDividendYield)

Parameters

  • volatility
  • stockPrice
  • strikePrice
  • daysToMaturity
  • riskFreeRate
  • annualDividendYield

Returns

  • list<float64>