Skip to content

Derive COMM segment for MCX futures search and default exact-match off - #159

Merged
elninad merged 1 commit into
masterfrom
fix/search-mcx
Aug 5, 2026
Merged

Derive COMM segment for MCX futures search and default exact-match off#159
elninad merged 1 commit into
masterfrom
fix/search-mcx

Conversation

@PradeepJaiswar

Copy link
Copy Markdown
Contributor

Problem

On the Search Futures page of the Streamlit interactive examples, searching for MCX commodities
(e.g. CRUDE) returned "No futures found", even though the equivalent API call works:

curl --location
'https://api.upstox.com/v2/instruments/search?query=CRUDE&exchanges=MCX&segments=FUT'
--header 'Accept: application/json'
--header 'Authorization: Bearer <YOUR_ACCESS_TOKEN>'

Root cause

get_futures_sorted() defaulted to segment="FO". The Search Futures and Futures OI Buildup pages
both offer MCX in the exchange dropdown but never passed a segment, so MCX searches ran against FO
and returned nothing. MCX commodities live under the COMM segment.

Changes

  • interactive_examples/utils.py — get_futures_sorted() now derives the segment from the exchange
    when not passed explicitly: MCX → COMM, otherwise FO. Explicit segment values (e.g. CURR, COMM)
    are still honored, so existing callers are unaffected. This fixes both affected pages (Search
    Futures and Futures OI Buildup) at the source rather than per call site.
  • interactive_examples/streamlit_app.py — "Exact underlying match" checkbox on the Search Futures
    page now defaults to False, so partial queries like CRUDE return CRUDEOIL contracts instead of
    being filtered out.

Testing

  • Validated segment derivation logic (MCX → COMM, NSE/BSE → FO) and syntax.
  • Manual verification: CRUDE on MCX now returns CRUDEOIL futures contracts.

@elninad
elninad merged commit 71541f2 into master Aug 5, 2026
4 checks passed
@elninad
elninad deleted the fix/search-mcx branch August 5, 2026 13:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants