Skip to content

Realtime Greeks Streaming

Greeks streaming provides continuous option sensitivity updates for subscribed contracts.

Use this when your strategy depends on:

  • delta and gamma exposure tracking
  • theta decay monitoring
  • vega and IV-aware adjustments

What You Receive

Typical fields include:

  • strike
  • LTP
  • IV
  • delta, gamma, theta, vega
  • OI and traded volume

WebSocket Greeks Example

from nubra_python_sdk.ticker import websocketdata
from nubra_python_sdk.start_sdk import InitNubraSdk, NubraEnv

nubra = InitNubraSdk(NubraEnv.UAT, env_creds=True)

def pick(obj, *names):
    for name in names:
        value = getattr(obj, name, None)
        if value is not None:
            return value
    return None

def clean(d):
    return {k: v for k, v in d.items() if v is not None}

def on_greeks_data(msg):
    print(
        "[Greeks]",
        clean(
            {
                "ref_id": pick(msg, "ref_id", "inst_id"),
                "strike": pick(msg, "strike_price", "sp"),
                "ltp": pick(msg, "last_traded_price", "ltp"),
                "iv": pick(msg, "iv"),
                "delta": pick(msg, "delta"),
                "gamma": pick(msg, "gamma"),
                "theta": pick(msg, "theta"),
                "vega": pick(msg, "vega"),
                "oi": pick(msg, "open_interest", "oi"),
                "volume": pick(msg, "volume"),
            }
        ),
    )

socket = websocketdata.NubraDataSocket(
    client=nubra,
    on_greeks_data=on_greeks_data,
)

socket.connect()
socket.subscribe(["1058227", "1058228"], data_type="greeks", exchange="NSE")
socket.keep_running()

Practical Notes

  • use option ref_id values for Greeks subscriptions
  • resolve ref_id from instruments for each expiry/strike before subscribing
  • if tracking many legs, batch updates into queues and process downstream
NEO Assistant