You are on page 1of 8

from datetime import datetime

from securities.models.enums import ExchangeType


from securities.models.security_lookup import SecurityLookupKey
from securities.supported_securities import SecurityName

WEEKLY_EXPIRY_DATES: dict[SecurityLookupKey, list[datetime]] = {


SecurityLookupKey(name=SecurityName.NIFTY, exchange_type=ExchangeType.NSE):
[
datetime(2023, 1, 5),
datetime(2023, 1, 12),
datetime(2023, 1, 19),
datetime(2023, 1, 25),
datetime(2023, 2, 2),
datetime(2023, 2, 9),
datetime(2023, 2, 16),
datetime(2023, 2, 23),
datetime(2023, 3, 2),
datetime(2023, 3, 9),
datetime(2023, 3, 16),
datetime(2023, 3, 23),
datetime(2023, 3, 29),
datetime(2023, 4, 6),
datetime(2023, 4, 13),
datetime(2023, 4, 20),
datetime(2023, 4, 27),
datetime(2023, 5, 4),
datetime(2023, 5, 11),
datetime(2023, 5, 18),
datetime(2023, 5, 25),
datetime(2023, 6, 1),
datetime(2023, 6, 8),
datetime(2023, 6, 15),
datetime(2023, 6, 22),
datetime(2023, 6, 28),
datetime(2023, 6, 29),
datetime(2023, 7, 6),
datetime(2023, 7, 13),
datetime(2023, 7, 20),
datetime(2023, 7, 27),
datetime(2023, 8, 3),
datetime(2023, 8, 10),
datetime(2023, 8, 17),
datetime(2023, 8, 24),
datetime(2023, 8, 31),
datetime(2023, 9, 7),
datetime(2023, 9, 14),
datetime(2023, 9, 21),
datetime(2023, 9, 28),
datetime(2023, 10, 5),
datetime(2023, 10, 12),
datetime(2023, 10, 19),
datetime(2023, 10, 26),
datetime(2023, 11, 2),
datetime(2023, 11, 9),
datetime(2023, 11, 16),
datetime(2023, 11, 23),
datetime(2023, 11, 30),
datetime(2023, 12, 7),
datetime(2023, 12, 14),
datetime(2023, 12, 21),
datetime(2023, 12, 28),
datetime(2024, 1, 4),
datetime(2024, 1, 11),
datetime(2024, 1, 18),
datetime(2024, 1, 25),
datetime(2024, 2, 1),
datetime(2024, 2, 8),
datetime(2024, 2, 15),
datetime(2024, 2, 22),
datetime(2024, 2, 29),
datetime(2024, 3, 7),
datetime(2024, 3, 14),
datetime(2024, 3, 21),
datetime(2024, 3, 28),
datetime(2024, 4, 4),
datetime(2024, 4, 10),
datetime(2024, 4, 18),
datetime(2024, 4, 25),
datetime(2024, 5, 2),
datetime(2024, 5, 9),
datetime(2024, 5, 16),
datetime(2024, 5, 23),
datetime(2024, 5, 30),
],
SecurityLookupKey(name=SecurityName.BANK_NIFTY,
exchange_type=ExchangeType.NSE):
[
datetime(2023, 1, 5),
datetime(2023, 1, 12),
datetime(2023, 1, 19),
datetime(2023, 1, 25),
datetime(2023, 2, 2),
datetime(2023, 2, 9),
datetime(2023, 2, 16),
datetime(2023, 2, 23),
datetime(2023, 3, 2),
datetime(2023, 3, 9),
datetime(2023, 3, 16),
datetime(2023, 3, 23),
datetime(2023, 3, 29),
datetime(2023, 4, 6),
datetime(2023, 4, 13),
datetime(2023, 4, 20),
datetime(2023, 4, 27),
datetime(2023, 5, 4),
datetime(2023, 5, 11),
datetime(2023, 5, 18),
datetime(2023, 5, 25),
datetime(2023, 6, 1),
datetime(2023, 6, 8),
datetime(2023, 6, 15),
datetime(2023, 6, 22),
datetime(2023, 6, 28),
datetime(2023, 7, 6),
datetime(2023, 7, 13),
datetime(2023, 7, 20),
datetime(2023, 7, 27),
datetime(2023, 8, 3),
datetime(2023, 8, 10),
datetime(2023, 8, 17),
datetime(2023, 8, 24),
datetime(2023, 8, 31),
datetime(2023, 9, 6),
datetime(2023, 9, 13),
datetime(2023, 9, 20),
datetime(2023, 9, 28),
datetime(2023, 10, 4),
datetime(2023, 10, 11),
datetime(2023, 10, 18),
datetime(2023, 10, 26),
datetime(2023, 11, 1),
datetime(2023, 11, 8),
datetime(2023, 11, 15),
datetime(2023, 11, 22),
datetime(2023, 11, 30),
datetime(2023, 12, 6),
datetime(2023, 12, 13),
datetime(2023, 12, 20),
datetime(2023, 12, 28),
datetime(2024, 1, 3),
datetime(2024, 1, 10),
datetime(2024, 1, 17),
datetime(2024, 1, 25),
datetime(2024, 1, 31),
datetime(2024, 2, 7),
datetime(2024, 2, 14),
datetime(2024, 2, 21),
datetime(2024, 2, 29),
datetime(2024, 3, 6),
datetime(2024, 3, 13),
datetime(2024, 3, 20),
datetime(2024, 3, 27),
datetime(2024, 4, 3),
datetime(2024, 4, 10),
datetime(2024, 4, 16),
datetime(2024, 4, 24),
datetime(2024, 4, 30),
datetime(2024, 5, 8),
datetime(2024, 5, 15),
],

SecurityLookupKey(name=SecurityName.FINANCE_NIFTY,
exchange_type=ExchangeType.NSE):
[

datetime(2023, 1, 3),
datetime(2023, 1, 10),
datetime(2023, 1, 17),
datetime(2023, 1, 24),
datetime(2023, 1, 31),

datetime(2023, 2, 7),
datetime(2023, 2, 14),
datetime(2023, 2, 21),
datetime(2023, 2, 28),
datetime(2023, 3, 6),
datetime(2023, 3, 14),
datetime(2023, 3, 21),
datetime(2023, 3, 28),

datetime(2023, 4, 3),
datetime(2023, 4, 11),
datetime(2023, 4, 18),
datetime(2023, 4, 25),

datetime(2023, 5, 2),
datetime(2023, 5, 9),
datetime(2023, 5, 16),
datetime(2023, 5, 23),
datetime(2023, 5, 30),

datetime(2023, 6, 6),
datetime(2023, 6, 13),
datetime(2023, 6, 20),
datetime(2023, 6, 27),

datetime(2023, 7, 4),
datetime(2023, 7, 11),
datetime(2023, 7, 18),
datetime(2023, 7, 25),

datetime(2023, 8, 1),
datetime(2023, 8, 8),
datetime(2023, 8, 14),
datetime(2023, 8, 22),
datetime(2023, 8, 29),

datetime(2023, 9, 5),
datetime(2023, 9, 12),
datetime(2023, 9, 18),
datetime(2023, 9, 26),

datetime(2023, 10, 3),


datetime(2023, 10, 10),
datetime(2023, 10, 17),
datetime(2023, 10, 23),
datetime(2023, 10, 31),

datetime(2023, 11, 7),


datetime(2023, 11, 13),
datetime(2023, 11, 21),
datetime(2023, 11, 28),

datetime(2023, 12, 5),


datetime(2023, 12, 12),
datetime(2023, 12, 19),
datetime(2023, 12, 26),

datetime(2024, 1, 2),
datetime(2024, 1, 9),
datetime(2024, 1, 16),
datetime(2024, 1, 23),
datetime(2024, 1, 30),
datetime(2024, 2, 6),
datetime(2024, 2, 13),
datetime(2024, 2, 20),
datetime(2024, 2, 27),

datetime(202 3, 5),
datetime(2024, 3, 12),
datetime(2024, 3, 19),
datetime(2024, 3, 26),

datetime(2024, 4, 2),
datetime(2024, 4, 9),
datetime(2024, 4, 16),
datetime(2024, 4, 23),
datetime(2024, 4, 30),

],

SecurityLookupKey(name=SecurityName.MIDCAP_NIFTY,
exchange_type=ExchangeType.NSE):
[

/* Midcapnifty relaunched with Monday expiry on August 21, 2023, expiry date
was wednesday before this with no significant volumes*/

datetime(2023, 8, 21),
datetime(2023, 8, 28),

datetime(2023, 9, 4),
datetime(2023, 9, 11),
datetime(2023, 9, 18),
datetime(2023, 9, 25),

datetime(2023, 10, 9),


datetime(2023, 10, 16),
datetime(2023, 10, 23),
datetime(2023, 10, 30),

datetime(2023, 11, 6),


datetime(2023, 11, 13),
datetime(2023, 11, 20),
datetime(2023, 11, 24),

datetime(2023, 12, 4),


datetime(2023, 12, 11),
datetime(2023, 12, 18),
datetime(2023, 12, 22),

datetime(2024, 1, 1),
datetime(2024, 1, 18),
datetime(2024, 1, 15),
datetime(2024, 1, 22),
datetime(2024, 1, 29),

datetime(2024, 2, 5),
datetime(2024, 2, 12),
datetime(2024, 2, 19),
datetime(2024, 2, 26),
datetime(2024, 3, 4),
datetime(202 3, 11),
datetime(2024, 3, 18),
datetime(2024, 3, 22),

datetime(2024, 4, 1),
datetime(2024, 4, 8),
datetime(2024, 4, 15),
datetime(2024, 4, 29),

],

SecurityLookupKey(name=SecurityName.SENSEX, exchange_type=ExchangeType.BSE):
[

/* Sensex launched May 15 2023 illiquid, no signifivant volumes till august


2024 */

datetime(2023, 8, 18),
datetime(2023, 8, 25),

datetime(2023, 9, 1),
datetime(2023, 9, 8),
datetime(2023, 9, 15),
datetime(2023, 9, 22),
datetime(2023, 9, 29),

datetime(2023, 10, 6),


datetime(2023, 10, 13),
datetime(2023, 10, 20),
datetime(2023, 10, 27),

datetime(2023, 11, 3),


datetime(2023, 11, 10),
datetime(2023, 11, 17),
datetime(2023, 11, 24),
datetime(2023, 11, 1),

datetime(2023, 12, 1),


datetime(2023, 12, 8),
datetime(2023, 12, 15),
datetime(2023, 12, 22),
datetime(2023, 12, 29),

datetime(2024, 1, 5),
datetime(2024, 1, 12),
datetime(2024, 1, 19),
datetime(2024, 1, 25),

datetime(2024, 2, 2),
datetime(2024, 2, 9),
datetime(2024, 2, 16),
datetime(2024, 2, 23),

datetime(2024, 3, 1),
datetime(2024, 3, 7),
datetime(2024, 3, 15),
datetime(2024, 3, 22),
datetime(2023, 3, 28),

datetime(2024, 4, 5),
datetime(2024, 4, 12),
datetime(2024, 4, 19),
datetime(2024, 4, 26),

datetime(2024, 5, 3),
datetime(2024, 5, 10),
datetime(2024, 5, 17),
datetime(2024, 5, 24),
datetime(2024, 5, 31),

],

SecurityLookupKey(name=SecurityName.BANKEX, exchange_type=ExchangeType.BSE):
[

datetime(2023, 6, 16), /*Bankex expiry starts on Friday june 16 2024*/


datetime(2023, 6, 23),
datetime(2023, 6, 30),

datetime(2023, 7, 7),
datetime(2023, 7, 14),
datetime(2023, 7, 21),
datetime(2023, 7, 28),

datetime(2023, 8, 2),
datetime(2023, 8, 9),
datetime(2023, 8, 16),
datetime(2023, 8, 23),
datetime(2023, 8, 30),

datetime(2023, 9, 6),
datetime(2023, 9, 13),
datetime(2023, 9, 20),
datetime(2023, 9, 27),

datetime(2023, 10, 6),


datetime(2023, 10, 16), /*Bankex expiry changed to Monday from oct16*/
datetime(2023, 10, 23),
datetime(2023, 10, 30),

datetime(2023, 11, 6),


datetime(2023, 11, 13),
datetime(2023, 11, 20),
datetime(2023, 11, 24),

datetime(2023, 12, 4),


datetime(2023, 12, 11),
datetime(2023, 12, 18),
datetime(2023, 12, 22),

datetime(2024, 1, 1),
datetime(2024, 1, 18),
datetime(2024, 1, 15),
datetime(2024, 1, 22),
datetime(2024, 1, 29),

datetime(2024, 2, 5),
datetime(2024, 2, 12),
datetime(2024, 2, 19),
datetime(2024, 2, 26),

datetime(2024, 3, 4),
datetime(202 3, 11),
datetime(2024, 3, 18),
datetime(2024, 3, 22),

datetime(2024, 4, 1),
datetime(2024, 4, 8),
datetime(2024, 4, 15),
datetime(2024, 4, 29),

You might also like