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_idvalues for Greeks subscriptions - resolve
ref_idfrom instruments for each expiry/strike before subscribing - if tracking many legs, batch updates into queues and process downstream