From 4821e8d5d435c87f5e5a8f5509693abc4eef3db7 Mon Sep 17 00:00:00 2001 From: "vardhan.negi" <40653986+vardhannegi@users.noreply.github.com> Date: Mon, 3 Feb 2025 18:53:06 +0530 Subject: [PATCH] added get_devsymbols_list fun in options.py (#63) Co-authored-by: vardhan.negi --- README.md | 4 ++++ nsedt/derivatives/__init__.py | 2 +- nsedt/derivatives/options.py | 18 ++++++++++++++++++ nsedt/resources/constants.py | 2 ++ tests/test_derivatives_options.py | 12 ++++++++++++ 5 files changed, 37 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9710ab5..eb4df70 100644 --- a/README.md +++ b/README.md @@ -106,8 +106,11 @@ print(de.get_option_chain(symbol="TCS", strike_price=3300, expiry_date=report_da print(de.get_future_price(symbol="TCS", start_date=start_date, end_date=end_date)) print(de.get_future_expdate(symbol="TCS")) print(de.get_historical_option_data(symbol="TATAMOTORS", start_date=start_date, end_date=end_date, option_type="CE", strike_price="1020", year="2024", expiry_date="30-May-2024")) +print(de.get_derivatives_symbols()) + ``` + # Reports ### Details @@ -138,4 +141,5 @@ print(rep.get_volatility_report(date=report_date, response_type="json")) print(rep.get_fno_participant_wise_oi_data(date=report_date, response_type="json")) print(rep.get_fno_participant_wise_volume_data(date=report_date, response_type="json")) ``` + [!["Buy Me A Coffee"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/pratik.anand) diff --git a/nsedt/derivatives/__init__.py b/nsedt/derivatives/__init__.py index 197b60b..d16539a 100644 --- a/nsedt/derivatives/__init__.py +++ b/nsedt/derivatives/__init__.py @@ -12,7 +12,7 @@ from nsedt.resources import constants as cns from nsedt.utils import data_format from nsedt.derivatives.options import ( - get_option_chain, get_option_chain_expdate, get_historical_option_data) + get_option_chain, get_option_chain_expdate, get_historical_option_data,get_derivatives_symbols) from nsedt.derivatives.futures import get_future_price, get_future_expdate log = logging.getLogger("root") diff --git a/nsedt/derivatives/options.py b/nsedt/derivatives/options.py index 8b7fe7f..20fc6ef 100644 --- a/nsedt/derivatives/options.py +++ b/nsedt/derivatives/options.py @@ -12,6 +12,24 @@ log = logging.getLogger("root") +def get_derivatives_symbols(): + """ + Args:\n + No arguments needed\n + Returns:\n + List of stock or equity symbols\n + """ + cookies = utils.get_cookies() + base_url = cns.BASE_URL + event_api = cns.UNDERLYINF_INFO + + url = base_url + event_api + data = utils.fetch_url(url, cookies) + f_dict = data.to_dict() + + return f_dict["data"] + + def get_option_chain( symbol: str, strike_price: str = None, diff --git a/nsedt/resources/constants.py b/nsedt/resources/constants.py index 033b581..6830782 100644 --- a/nsedt/resources/constants.py +++ b/nsedt/resources/constants.py @@ -39,6 +39,8 @@ INDICES = ["NIFTY", "FINNIFTY", "BANKNIFTY"] VIX_HISTORY = "api/historical/vixhistory?" FNO_HISTORY = "api/historical/foCPV?" +UNDERLYINF_INFO="/api/underlying-information" + # Reports MARKET_ACTIVITY_REPORT = "archives/equities/mkt/MA" diff --git a/tests/test_derivatives_options.py b/tests/test_derivatives_options.py index 4b73e60..5281ee7 100644 --- a/tests/test_derivatives_options.py +++ b/tests/test_derivatives_options.py @@ -8,6 +8,8 @@ from nsedt.derivatives import options as opt +from nsedt import derivatives as de + START_DATE = "01-01-2024" END_DATE = "10-01-2024" SYMBOL = "TCS" @@ -85,3 +87,13 @@ def test_get_historical_option_data(): expiry_date="28-03-2024", ) assert isinstance(data, pd.DataFrame) + + + +def test_get_derivatives_symbols(): + """ + Test the get_derivatives_symbols function from nsedt.derivatives.options module. + """ + data=de.get_derivatives_symbols() + symList=[i['symbol'] for i in data['UnderlyingList']] + assert isinstance(symList, List)