API Reference / GreeksCalculator
Class: GreeksCalculator
Defined in: src/analytics/GreeksCalculator.ts:79
Real-time Greeks Calculator for options.
This module calculates Delta, Gamma, Theta, Vega, and Rho in real-time by combining WebSocket tick data with Black-Scholes calculations.
For options buyers, this is critical for:
- Monitoring theta decay tick-by-tick
- Tracking delta exposure for directional bias
- Setting informed stop-losses based on Greeks
- Calculating theoretical fair value vs market price
Example
const calculator = new GreeksCalculator({
defaultRiskFreeRate: 0.065, // 6.5%
defaultImpliedVolatility: 0.18, // 18%
});
// Calculate Greeks for a NIFTY call option
const result = calculator.calculate({
spotPrice: 24500,
strike: 24500,
expiryDate: "2026-01-30",
riskFreeRate: 0.065,
impliedVolatility: 0.20,
optionType: "call",
});
console.log(result.greeks);
// Output: { delta: 0.52, gamma: 0.003, theta: -2.5, vega: 0.15, rho: 0.08 }Constructors
Constructor
new GreeksCalculator(
config?):GreeksCalculator
Defined in: src/analytics/GreeksCalculator.ts:84
Parameters
config?
Returns
GreeksCalculator
Methods
calculate()
calculate(
input):object
Defined in: src/analytics/GreeksCalculator.ts:95
Calculate Greeks for an option given current market conditions.
Parameters
input
Returns
object
Object containing Greeks and optionally theoretical price
greeks
greeks:
Greeks
theoreticalPrice?
optionaltheoreticalPrice?:number
timeToExpiry
timeToExpiry:
number
processTick()
processTick(
tick,optionDetails,underlyingSpot):TickWithGreeks
Defined in: src/analytics/GreeksCalculator.ts:153
Process a WebSocket tick and attach Greeks to it.
This is designed to be called in your WebSocket message handler to enrich every tick with real-time Greeks calculations.
Parameters
tick
MarketTickerEvent | MarketQuoteEvent | MarketFullEvent
The raw WebSocket market feed event
optionDetails
Details about the option contract
strike
number
expiryDate
string | Date
optionType
impliedVolatility?
number
underlyingSpot
number
Current spot price of the underlying index
Returns
The tick enriched with Greeks data
Example
ws.on('market-feed', (tick) => {
const enrichedTick = calculator.processTick(tick, {
strike: 24500,
expiryDate: "2026-01-30",
optionType: "call",
impliedVolatility: 0.20,
}, 24500); // Nifty spot
console.log(`Delta: ${enrichedTick.greeks?.delta}, Theta: ${enrichedTick.greeks?.theta}`);
});calculatePortfolioGreeks()
calculatePortfolioGreeks(
positions,currentSpots):object
Defined in: src/analytics/GreeksCalculator.ts:222
Calculate net portfolio Greeks from multiple positions.
Essential for AI agents to understand overall portfolio risk:
- Net Delta: Directional exposure
- Net Theta: Time decay bleeding
- Net Vega: Volatility exposure
Parameters
positions
object[]
Array of option positions with quantities
currentSpots
Record<string, number>
Map of security IDs to current underlying spot prices
Returns
object
Aggregated portfolio Greeks
netDelta
netDelta:
number
netGamma
netGamma:
number
netTheta
netTheta:
number
netVega
netVega:
number
netRho
netRho:
number
positionBreakdown
positionBreakdown:
object[]
Example
const portfolioGreeks = calculator.calculatePortfolioGreeks([
{
securityId: "44000",
quantity: 50, // Long 1 lot
strike: 24500,
expiryDate: "2026-01-30",
optionType: "call",
impliedVolatility: 0.20,
},
{
securityId: "44050",
quantity: -50, // Short 1 lot
strike: 24600,
expiryDate: "2026-01-30",
optionType: "call",
impliedVolatility: 0.18,
},
], {
"1333": 24500, // Nifty spot
});
console.log(`Net Delta: ${portfolioGreeks.netDelta}`);
console.log(`Net Theta: ${portfolioGreeks.netTheta} (daily decay)`);setRiskFreeRate()
setRiskFreeRate(
rate):void
Defined in: src/analytics/GreeksCalculator.ts:300
Update default risk-free rate.
Parameters
rate
number
Returns
void
setImpliedVolatility()
setImpliedVolatility(
iv):void
Defined in: src/analytics/GreeksCalculator.ts:307
Update default implied volatility.
Parameters
iv
number
Returns
void