Hi @Hardik ,
We are observing that PrevClose packets (Response Code 6) are only received for IDX_I (Index) instruments and NOT for NSE_EQ (Equity) or NSE_FNO (Derivatives) instruments when subscribed in Full mode (RequestCode 21).
Our Setup:
-
WebSocket endpoint:
wss://api-feed.dhan.co?version=2&token=<JWT>&clientId=1106656882&authType=2 -
5 WebSocket connections, 5,000 instruments each (25,000 total)
-
Subscription mode: Full (RequestCode 21)
-
Subscription time: Before market open (09:14 IST)
What we observe:
-
PrevClose (code 6) received for 28 index instruments (IDX_I segment, security IDs: 13, 14, 18, 21, 25, 27, 28, 33, 34, 40, etc.) -
PrevClose NOT received for any NSE_EQ instruments (~2,475 equities subscribed) -
PrevClose NOT received for any NSE_FNO instruments (~14,399 index derivatives + ~10,362 stock derivatives subscribed)
Expected behavior (per API docs):
“PrevClose packet arrives on EVERY subscription, any mode”
We expected PrevClose for all 25,000 subscribed instruments, but only received ~28 (all indices).
Impact:
Previous close price is critical for computing:
-
Change % (movers/gainers/losers)
-
Option Greeks baseline
-
P&L calculations
Without PrevClose for equities and derivatives, we must make ~25,000 REST API calls via /v2/marketfeed/ohlc as a fallback, which heavily consumes our Data API quota (100,000/day).
Questions:
-
Is this the intended behavior — PrevClose only for indices in Full mode?
-
If yes, which subscription mode (Ticker/Quote/Full) sends PrevClose for all instruments?
-
Is there a way to receive PrevClose for all subscribed instruments in a single subscription mode?
Packet capture reference:
Received PrevClose: header=[06, 1C00, 00, 0D000000] body=[prev_close_f32, prev_oi_u32]
code=6, len=16, segment=0(IDX_I), secId=13
All received PrevClose packets have segment byte = 0 (IDX_I). Zero packets with segment = 1 (NSE_EQ) or 2 (NSE_FNO).