Skip to main content

nseeod

ExpiryDay Mismatch

Good it is time add more knowledge in NSEEod

from September 1, 2025 NSE Changed it's Expiry Both weekly and monthly contracted from Thursday to Tuesday

(ie Before September 1, 2025 Last Thursday Was Monthly Expiry there after last Tuesday of month become Monthly Expiry)

in Most cases based pn Monthly Expiries Continues futures Calculated.)

if ExpiryDay is holiday then mostly previous Trading day become ExpiryDay

Some Exception cases When NSE Announces Holiday of a Expiry Day (even though many Contracts Traded based on that Expiry day)

NSE might change expiry to prior day

For Example

2023-06-28 and 2023-06-29 is right Example

on such Cases 2023-06-29 *** MUST Be Holiday*** if these types Expiry found do following things

1.) First check On 2023-06-29 NIFTY SPOT Traded or not(Masid 1 and most actively trade contract)

if not traded Then add 2023-06-29 in holidays list (postgres Table) then proceed to Step 2 if Not Then raise Bug

Step 2 Then merge masid 's contract's Having Expiry Date with 2023-06-29 to 2023-06-28 (ALL FNO Contracts) this affects records in scr_nsefo_eod and parquet basket

Step 3 Once Step2 done then Records with Edate 2023-06-29 would become orphan we can safely remove these records

Pls add this knowledge in both NSEEOD and NSEIEOD folders

Now write a function That Deducts these types of Expiries in scr_master

then fix that

after that we can run build_cfut() to get accurate data

Banknifty Expiry correction

In 2014 All contracts marked as 2014-02-26 so We can convert from 2014-02-27 to 2014-02-26 (both scr_nsefo_eod and parquet basket)

So confirmed Holidays we can remove safely contracts masid(after converting)

Contracts of MIDCPNIFTY and NIFTYNXT50 not actively traded so we can ignore mismatch of this dates

for Bank nifty Pls Implement as per below Table(I have check with NSE web site )

Keep Remove 2024-03-27 2024-03-28 2024-04-24 2024-04-25 2025-01-30 2025-01-29 2025-02-27 2025-02-26 2025-03-27 2025-03-26