only daily timeframe is working
uninstall and sir has given the codebase and all with video you can watch the first video of basic series
Hi @kanhaji,
It seems that you are using codebase version 2.8. We have updated out codebase. Do update to our latest codebase version 3.0.6:
- Open Command Prompt: Press Win, type cmd, and press Enter.
- Install Dhan-Tradehull: Run
pip install Dhan-Tradehull - Confirm the installation by running
pip show Dhan-Tradehull
Guide to use the updated codebase:
Refer the below pypi link for more details:
Video reference :
The code seems to be working fine:
Hi @Rem_555,
The code seems to be working fine. Do cross check again with the parameters passed. And make sure you are using the latest version codebase.
Hi @Hardik ,
Okay got it. We will update the codebase soon.
By when can we expect the codebase update on this issue?
HI @Tradehull_Imran
isme kis row me kya fil karna hai
ass Tradehull:
clientCode : str
interval_parameters : dict
instrument_file : pd.core.frame.DataFrame
step_df : pd.core.frame.DataFrame
index_step_dict : dict
index_underlying : dict
call : str
put : str
def __init__(self,ClientCode:str,token_id:str):
'''
Clientcode = The ClientCode in string
token_id = The token_id in string
'''
date_str = str(datetime.datetime.now().today().date())
if not os.path.exists('Dependencies/log_files'):
os.makedirs('Dependencies/log_files')
file = 'Dependencies/log_files/logs' + date_str + '.log'
logging.basicConfig(filename=file, level=logging.DEBUG,format='%(levelname)s:%(asctime)s:%(threadName)-10s:%(message)s')
self.logger = logging.getLogger()
logging.info('Dhan.py started system')
logging.getLogger("requests").setLevel(logging.WARNING)
logging.getLogger("urllib3").setLevel(logging.WARNING)
self.logger.info("STARTED THE PROGRAM")
try:
self.status = dict()
self.token_and_exchange = dict()
self.get_login(ClientCode,token_id)
self.token_and_exchange = {}
self.interval_parameters = {'minute': 60,'2minute': 120,'3minute': 180,'4minute': 240,'5minute': 300,'day': 86400,'10minute': 600,'15minute': 900,'30minute': 1800,'60minute': 3600,'day':86400}
self.index_underlying = {"NIFTY 50":"NIFTY","NIFTY BANK":"BANKNIFTY","NIFTY FIN SERVICE":"FINNIFTY","NIFTY MID SELECT":"MIDCPNIFTY"}
self.segment_dict = {"NSECM": 1, "NSEFO": 2, "NSECD": 3, "BSECM": 11, "BSEFO": 12, "MCXFO": 51}
self.index_step_dict = {'MIDCPNIFTY':25,'SENSEX':100,'BANKEX':100,'NIFTY': 50, 'NIFTY 50': 50, 'NIFTY BANK': 100, 'BANKNIFTY': 100, 'NIFTY FIN SERVICE': 50, 'FINNIFTY': 50}
self.token_dict = {'NIFTY':{'token':26000,'exchange':'NSECM'},'NIFTY 50':{'token':26000,'exchange':'NSECM'},'BANKNIFTY':{'token':26001,'exchange':'NSECM'},'NIFTY BANK':{'token':26001,'exchange':'NSECM'},'FINNIFTY':{'token':26034,'exchange':'NSECM'},'NIFTY FIN SERVICE':{'token':26034,'exchange':'NSECM'},'MIDCPNIFTY':{'token':26121,'exchange':'NSECM'},'NIFTY MID SELECT':{'token':26121,'exchange':'NSECM'},'SENSEX':{'token':26065,'exchange':'BSECM'},'BANKEX':{'token':26118,'exchange':'BSECM'}}
self.intervals_dict = {'minute': 3, '2minute':4, '3minute': 4, '5minute': 5, '10minute': 10,'15minute': 15, '30minute': 25, '60minute': 40, 'day': 80}
# self.stock_step_df = {'NIFTY': 50, 'NIFTY 50': 50, 'NIFTY BANK': 100, 'BANKNIFTY': 100, 'NIFTY FIN SERVICE': 50, 'FINNIFTY': 50, 'AARTIIND': 5, 'ABB': 50, 'ABBOTINDIA': 250, 'ACC': 20, 'ADANIENT': 50, 'ADANIPORTS': 10, 'ALKEM': 20, 'AMBUJACEM': 10, 'APOLLOHOSP': 50, 'APOLLOTYRE': 5, 'ASHOKLEY': 1, 'ASIANPAINT': 20, 'ASTRAL': 20, 'ATUL': 50, 'AUBANK': 10, 'AUROPHARMA': 10, 'AXISBANK': 10, 'BAJAJ-AUTO': 50, 'BAJAJFINSV': 20, 'BAJFINANCE': 50, 'BALKRISIND': 20, 'BALRAMCHIN': 5, 'BATAINDIA': 10, 'BEL': 1, 'BERGEPAINT': 5, 'BHARATFORG': 10, 'BHARTIARTL': 10, 'BHEL': 1, 'BOSCHLTD': 100, 'BPCL': 5, 'BRITANNIA': 50, 'BSOFT': 10, 'CANBK': 5, 'CANFINHOME': 10, 'CHOLAFIN': 10, 'CIPLA': 10, 'COFORGE': 100, 'COLPAL': 10, 'CONCOR': 10, 'COROMANDEL': 10, 'CUB': 1, 'CUMMINSIND': 20, 'DABUR': 5, 'DALBHARAT': 20, 'DEEPAKNTR': 20, 'DELTACORP': 5, 'DIVISLAB': 50, 'DIXON': 50, 'DLF': 5, 'DRREDDY': 50, 'EICHERMOT': 50, 'ESCORTS': 20, 'FEDERALBNK': 1, 'GAIL': 1, 'GLENMARK': 10, 'GMRINFRA': 1, 'GNFC': 10, 'GODREJCP': 10, 'GODREJPROP': 20, 'GRASIM': 20, 'GUJGASLTD': 5, 'HAL': 20, 'HAVELLS': 10, 'HCLTECH': 10, 'HDFCAMC': 20, 'HDFCBANK': 10, 'HDFCLIFE': 5, 'HEROMOTOCO': 20, 'HINDALCO': 5, 'HINDCOPPER': 2.5, 'HINDUNILVR': 20, 'ICICIBANK': 10, 'ICICIGI': 10, 'ICICIPRULI': 5, 'IDEA': 1, 'IDFC': 1, 'IDFCFIRSTB': 1, 'IEX': 1, 'IGL': 5, 'INDHOTEL': 5, 'INDIAMART': 50, 'INDIGO': 20, 'INDUSINDBK': 20, 'INFY': 10, 'IOC': 1, 'IPCALAB': 10, 'IRCTC': 10, 'ITC': 5, 'JINDALSTEL': 10, 'JKCEMENT': 50, 'JSWSTEEL': 10, 'JUBLFOOD': 5, 'KOTAKBANK': 20, 'L&TFH': 1, 'LALPATHLAB': 20, 'LAURUSLABS': 5, 'LICHSGFIN': 5, 'LT': 20, 'LTIM': 50, 'LTTS': 50, 'LUPIN': 10, 'M&M': 10, 'M&MFIN': 5, 'MARICO': 5, 'MARUTI': 100, 'MCDOWELL-N': 10, 'MCX': 20, 'METROPOLIS': 20, 'MFSL': 10, 'MGL': 10, 'MOTHERSON': 1, 'MPHASIS': 20, 'MRF': 500, 'MUTHOOTFIN': 10, 'NATIONALUM': 1, 'NAUKRI': 50, 'NAVINFLUOR': 50, 'NESTLEIND': 100, 'NMDC': 1, 'NTPC': 1, 'OBEROIRLTY': 10, 'OFSS': 20, 'ONGC': 2.5, 'PAGEIND': 500, 'PEL': 10, 'PERSISTENT': 50, 'PIDILITIND': 20, 'PIIND': 50, 'PNB': 1, 'POLYCAB': 50, 'PVRINOX': 20, 'RAMCOCEM': 10, 'RELIANCE': 20, 'SAIL': 1, 'SBICARD': 10, 'SBILIFE': 10, 'SBIN': 5, 'SHREECEM': 250, 'SHRIRAMFIN': 20, 'SIEMENS': 50, 'SRF': 20, 'SUNPHARMA': 10, 'SUNTV': 5, 'SYNGENE': 10, 'TATACHEM': 10, 'TATACOMM': 20, 'TATACONSUM': 5, 'TATAMOTORS': 5, 'TATASTEEL': 1, 'TCS': 20, 'TECHM': 10, 'TITAN': 20, 'TORNTPHARM': 20, 'TRENT': 20, 'TVSMOTOR': 20, 'UBL': 10, 'ULTRACEMCO': 50, 'UPL': 5, 'VOLTAS': 10, 'ZYDUSLIFE': 5, 'ABCAPITAL': 2.5, 'ABFRL': 2.5, 'BANDHANBNK': 2.5, 'BANKBARODA': 2.5, 'BIOCON': 2.5, 'CHAMBLFERT': 5, 'COALINDIA': 2.5, 'CROMPTON': 2.5, 'EXIDEIND': 2.5, 'GRANULES': 2.5, 'HINDPETRO': 5, 'IBULHSGFIN': 2.5, 'INDIACEM': 2.5, 'INDUSTOWER': 2.5, 'MANAPPURAM': 2.5, 'PETRONET': 2.5, 'PFC': 2.5, 'POWERGRID': 2.5, 'RBLBANK': 2.5, 'RECLTD': 2.5, 'TATAPOWER': 5, 'VEDL': 2.5, 'WIPRO': 2.5, 'ZEEL': 2.5, 'AMARAJABAT': 10, 'APLLTD': 10, 'CADILAHC': 5, 'HDFC': 50, 'LTI': 100, 'MINDTREE': 20, 'MOTHERSUMI': 5, 'NAM-INDIA': 5, 'PFIZER': 50, 'PVR': 20, 'SRTRANSFIN': 20, 'TORNTPOWER': 5}
self.stock_step_df = {'NIFTY': 50, 'BANKNIFTY': 100,'FINNIFTY': 50, 'AARTIIND': 5, 'ABB': 50, 'ABBOTINDIA': 250, 'ACC': 20, 'ADANIENT': 50, 'ADANIPORTS': 10, 'ALKEM': 20, 'AMBUJACEM': 10, 'APOLLOHOSP': 50, 'APOLLOTYRE': 5, 'ASHOKLEY': 1, 'ASIANPAINT': 20, 'ASTRAL': 20, 'ATUL': 50, 'AUBANK': 10, 'AUROPHARMA': 10, 'AXISBANK': 10, 'BAJAJ-AUTO': 50, 'BAJAJFINSV': 20, 'BAJFINANCE': 50, 'BALKRISIND': 20, 'BALRAMCHIN': 5, 'BATAINDIA': 10, 'BEL': 1, 'BERGEPAINT': 5, 'BHARATFORG': 10, 'BHARTIARTL': 10, 'BHEL': 1, 'BOSCHLTD': 100, 'BPCL': 5, 'BRITANNIA': 50, 'BSOFT': 10, 'CANBK': 5, 'CANFINHOME': 10, 'CHOLAFIN': 10, 'CIPLA': 10, 'COFORGE': 100, 'COLPAL': 10, 'CONCOR': 10, 'COROMANDEL': 10, 'CUB': 1, 'CUMMINSIND': 20, 'DABUR': 5, 'DALBHARAT': 20, 'DEEPAKNTR': 20, 'DELTACORP': 5, 'DIVISLAB': 50, 'DIXON': 50, 'DLF': 5, 'DRREDDY': 50, 'EICHERMOT': 50, 'ESCORTS': 20, 'FEDERALBNK': 1, 'GAIL': 1, 'GLENMARK': 10, 'GNFC': 10, 'GODREJCP': 10, 'GODREJPROP': 20, 'GRASIM': 20, 'GUJGASLTD': 5, 'HAL': 20, 'HAVELLS': 10, 'HCLTECH': 10, 'HDFCAMC': 20, 'HDFCBANK': 10, 'HDFCLIFE': 5, 'HEROMOTOCO': 20, 'HINDALCO': 5, 'HINDCOPPER': 2.5, 'HINDUNILVR': 20, 'ICICIBANK': 10, 'ICICIGI': 10, 'ICICIPRULI': 5, 'IDEA': 1, 'IDFC': 1, 'IDFCFIRSTB': 1, 'IEX': 1, 'IGL': 5, 'INDHOTEL': 5, 'INDIAMART': 50, 'INDIGO': 20, 'INDUSINDBK': 20, 'INFY': 10, 'IOC': 1, 'IPCALAB': 10, 'IRCTC': 10, 'ITC': 5, 'JINDALSTEL': 10, 'JKCEMENT': 50, 'JSWSTEEL': 10, 'JUBLFOOD': 5, 'KOTAKBANK': 20, 'L&TFH': 1, 'LALPATHLAB': 20, 'LAURUSLABS': 5, 'LICHSGFIN': 5, 'LT': 20, 'LTIM': 50, 'LTTS': 50, 'LUPIN': 10, 'M&M': 10, 'M&MFIN': 5, 'MARICO': 5, 'MARUTI': 100, 'MCDOWELL-N': 10, 'MCX': 20, 'METROPOLIS': 20, 'MFSL': 10, 'MGL': 10, 'MOTHERSON': 1, 'MPHASIS': 20, 'MRF': 500, 'MUTHOOTFIN': 10, 'NATIONALUM': 1, 'NAUKRI': 50, 'NAVINFLUOR': 50, 'NESTLEIND': 100, 'NMDC': 1, 'NTPC': 1, 'OBEROIRLTY': 10, 'OFSS': 20, 'ONGC': 2.5, 'PAGEIND': 500, 'PEL': 10, 'PERSISTENT': 50, 'PIDILITIND': 20, 'PIIND': 50, 'PNB': 1, 'POLYCAB': 50, 'PVRINOX': 20, 'RAMCOCEM': 10, 'RELIANCE': 20, 'SAIL': 1, 'SBICARD': 10, 'SBILIFE': 10, 'SBIN': 10, 'SHREECEM': 250, 'SHRIRAMFIN': 20, 'SIEMENS': 50, 'SRF': 20, 'SUNPHARMA': 10, 'SUNTV': 5, 'SYNGENE': 10, 'TATACHEM': 10, 'TATACOMM': 20, 'TATACONSUM': 5, 'TATAMOTORS': 5, 'TATASTEEL': 1, 'TCS': 20, 'TECHM': 10, 'TITAN': 20, 'TORNTPHARM': 20, 'TRENT': 20, 'TVSMOTOR': 20, 'UBL': 10, 'ULTRACEMCO': 50, 'UPL': 5, 'VOLTAS': 10, 'ZYDUSLIFE': 5, 'ABCAPITAL': 2.5, 'ABFRL': 2.5, 'BANDHANBNK': 2.5, 'BANKBARODA': 2.5, 'BIOCON': 2.5, 'CHAMBLFERT': 5, 'COALINDIA': 2.5, 'CROMPTON': 2.5, 'EXIDEIND': 2.5, 'GRANULES': 2.5, 'HINDPETRO': 5, 'IBULHSGFIN': 2.5, 'INDIACEM': 2.5, 'INDUSTOWER': 2.5, 'MANAPPURAM': 2.5, 'PETRONET': 2.5, 'PFC': 2.5, 'POWERGRID': 2.5, 'RBLBANK': 2.5, 'RECLTD': 2.5, 'TATAPOWER': 5, 'VEDL': 2.5, 'WIPRO': 2.5, 'ZEEL': 2.5, 'AMARAJABAT': 10, 'APLLTD': 10, 'CADILAHC': 5, 'HDFC': 50, 'LTI': 100, 'MINDTREE': 20, 'MOTHERSUMI': 5, 'NAM-INDIA': 5, 'PFIZER': 50, 'PVR': 20, 'SRTRANSFIN': 20, 'TORNTPOWER': 5}
self.stock_step_df = {'AARTIIND': 10.0, 'ABB': 50, 'ABBOTINDIA': 250, 'ACC': 20, 'ADANIENT': 50, 'ADANIPORTS': 20.0, 'ALKEM': 100.0, 'AMBUJACEM': 10, 'APOLLOHOSP': 50, 'APOLLOTYRE': 10.0, 'ASIANPAINT': 20, 'ASTRAL': 20, 'ATUL': 50, 'AUBANK': 10, 'AUROPHARMA': 10, 'AXISBANK': 10, 'BAJAJ-AUTO': 100.0, 'BAJAJFINSV': 20, 'BAJFINANCE': 100.0, 'BALKRISIND': 50.0, 'BATAINDIA': 10, 'BEL': 5.0, 'BERGEPAINT': 5, 'BHARATFORG': 10, 'BHARTIARTL': 20.0, 'BHEL': 5.0, 'BOSCHLTD': 500.0, 'BPCL': 5, 'BRITANNIA': 100.0, 'BSOFT': 10, 'CANBK': 5, 'CANFINHOME': 20.0, 'CHOLAFIN': 10, 'CIPLA': 10, 'COFORGE': 100.0, 'COLPAL': 50.0, 'CONCOR': 10, 'COROMANDEL': 10, 'CUB': 1, 'CUMMINSIND': 100.0, 'DABUR': 5, 'DALBHARAT': 20, 'DEEPAKNTR': 20.0, 'DIVISLAB': 100.0, 'DLF': 10.0, 'DRREDDY': 50, 'EICHERMOT': 50, 'ESCORTS': 50.0, 'FEDERALBNK': 2.5, 'GAIL': 1, 'GLENMARK': 10, 'GNFC': 10, 'GODREJCP': 10, 'GODREJPROP': 50.0, 'GRASIM': 20, 'GUJGASLTD': 5, 'HAL': 100.0, 'HAVELLS': 20.0, 'HCLTECH': 20.0, 'HDFCAMC': 50.0, 'HDFCBANK': 10, 'HDFCLIFE': 10.0, 'HEROMOTOCO': 100.0, 'HINDALCO': 10.0, 'HINDCOPPER': 5.0, 'HINDUNILVR': 20, 'ICICIBANK': 10, 'ICICIGI': 20.0, 'ICICIPRULI': 10.0, 'IDEA': 2.0, 'IDFCFIRSTB': 1, 'IEX': 1, 'IGL': 5, 'INDHOTEL': 5, 'INDIAMART': 50, 'INDIGO': 50.0, 'INDUSINDBK': 20, 'INFY': 20.0, 'IOC': 2.5, 'IPCALAB': 10, 'IRCTC': 10, 'ITC': 5, 'JINDALSTEL': 10, 'JKCEMENT': 50, 'JSWSTEEL': 10, 'JUBLFOOD': 10.0, 'KOTAKBANK': 20, 'LALPATHLAB': 50.0, 'LAURUSLABS': 10.0, 'LICHSGFIN': 10.0, 'LTIM': 50, 'LTTS': 50, 'LUPIN': 10, 'M&M': 10, 'MARICO': 10.0, 'MARUTI': 100, 'MCX': 100.0, 'METROPOLIS': 20, 'MFSL': 10, 'MGL': 20.0, 'MOTHERSON': 1, 'MPHASIS': 50.0, 'MRF': 500, 'MUTHOOTFIN': 20.0, 'NATIONALUM': 1, 'NAUKRI': 50, 'NAVINFLUOR': 50, 'NESTLEIND': 100, 'NMDC': 5.0, 'NTPC': 5.0, 'OBEROIRLTY': 20.0, 'OFSS': 50.0, 'ONGC': 5.0, 'PAGEIND': 500, 'PEL': 20.0, 'PERSISTENT': 100.0, 'PIDILITIND': 20, 'PIIND': 50, 'PNB': 1, 'POLYCAB': 50, 'PVRINOX': 20, 'RAMCOCEM': 10, 'RELIANCE': 20, 'SBICARD': 10, 'SBILIFE': 20.0, 'SBIN': 10, 'SHREECEM': 250, 'SHRIRAMFIN': 50.0, 'SIEMENS': 50, 'SRF': 20, 'SUNPHARMA': 10, 'SUNTV': 5, 'SYNGENE': 10, 'TATACHEM': 10, 'TATACOMM': 20, 'TATACONSUM': 10.0, 'TATAMOTORS': 10.0, 'TATASTEEL': 2.5, 'TCS': 50.0, 'TECHM': 20.0, 'TORNTPHARM': 50.0, 'TRENT': 100.0, 'TVSMOTOR': 50.0, 'UBL': 10, 'ULTRACEMCO': 50, 'UPL': 5, 'VOLTAS': 10, 'ZYDUSLIFE': 20.0, 'ABFRL': 2.5, 'BANDHANBNK': 2.5, 'BIOCON': 2.5, 'CHAMBLFERT': 10.0, 'CROMPTON': 2.5, 'EXIDEIND': 10.0, 'GRANULES': 10.0, 'HINDPETRO': 5, 'INDUSTOWER': 10.0, 'PETRONET': 2.5, 'PFC': 2.5, 'POWERGRID': 5.0, 'RECLTD': 10.0, 'TATAPOWER': 5.0, 'VEDL': 10.0, 'WIPRO': 5.0}
self.commodity_step_dict = {'GOLD': 100,'SILVER': 100,'CRUDEOIL': 50,'NATURALGAS': 10,'COPPER': 5,'NICKEL': 10,'ZINC': 2.5,'LEAD': 1, 'ALUMINIUM': 1, 'COTTON': 100, 'MENTHAOIL': 10, 'GOLDM': 50, 'GOLDPETAL': 5, 'GOLDGUINEA': 10, 'SILVERM': 50, 'SILVERMIC': 10, 'BRASS': 5, 'CASTORSEED': 100, 'COTTONSEEDOILCAKE''CARDAMOM': 50, 'RBDPALMOLEIN': 10,'CRUDEPALMOIL': 10,'PEPPER': 100, 'JEERA': 100, 'SOYABEAN': 50, 'SOYAOIL': 10, 'TURMERIC': 100, 'GUARGUM': 100, 'GUARSEED': 100, 'CHANA': 50, 'MUSTARDSEED': 50, 'BARLEY': 50, 'SUGARM': 50, 'WHEAT': 50, 'MAIZE': 50, 'PADDY': 50, 'BAJRA': 50, 'JUTE': 50, 'RUBBER': 100, 'COFFEE': 50, 'COPRA': 50, 'SESAMESEED': 50, 'TEA': 100, 'KAPAS': 100, 'BARLEYFEED': 50, 'RAPESEED': 50, 'LINSEED': 50, 'SUNFLOWER': 50, 'CORIANDER': 50, 'CUMINSEED': 100 }
self.start_date, self.end_date = self.get_start_date()
self.stock_step_df = {'AARTIIND': 10, 'ABB': 100, 'ABBOTINDIA': 250, 'ACC': 20, 'ADANIENT': 20, 'ADANIPORTS': 20, 'ALKEM': 100, 'AMBUJACEM': 10, 'APOLLOHOSP': 50, 'APOLLOTYRE': 10, 'ASIANPAINT': 20, 'ASTRAL': 20, 'ATUL': 100, 'AUBANK': 10, 'AUROPHARMA': 20, 'AXISBANK': 10, 'BAJAJ-AUTO': 100, 'BAJAJFINSV': 20, 'BAJFINANCE': 100, 'BALKRISIND': 50, 'BATAINDIA': 10, 'BEL': 5, 'BERGEPAINT': 5, 'BHARATFORG': 20, 'BHARTIARTL': 40, 'BHEL': 10, 'BOSCHLTD': 500, 'BPCL': 5, 'BRITANNIA': 50, 'BSOFT': 10, 'CANBK': 2, 'CANFINHOME': 20, 'CHOLAFIN': 40, 'CIPLA': 20, 'COFORGE': 100, 'COLPAL': 50, 'CONCOR': 10, 'COROMANDEL': 20, 'CUB': 2, 'CUMMINSIND': 50, 'DABUR': 5, 'DALBHARAT': 20, 'DEEPAKNTR': 50, 'DIVISLAB': 50, 'DLF': 10, 'DRREDDY': 10, 'EICHERMOT': 50, 'ESCORTS': 50, 'FEDERALBNK': 2, 'GAIL': 2, 'GLENMARK': 20, 'GNFC': 10, 'GODREJCP': 20, 'GODREJPROP': 50, 'GRASIM': 20, 'GUJGASLTD': 10, 'HAL': 100, 'HAVELLS': 20, 'HCLTECH': 20, 'HDFCAMC': 50, 'HDFCBANK': 10, 'HDFCLIFE': 10, 'HEROMOTOCO': 100, 'HINDALCO': 10, 'HINDCOPPER': 5, 'HINDUNILVR': 20, 'ICICIBANK': 10, 'ICICIGI': 20, 'ICICIPRULI': 10, 'IDEA': 1, 'IDFCFIRSTB': 1, 'IEX': 2, 'IGL': 10, 'INDHOTEL': 10, 'INDIAMART': 50, 'INDIGO': 50, 'INDUSINDBK': 20, 'INFY': 20, 'IOC': 2, 'IPCALAB': 20, 'IRCTC': 10, 'ITC': 5, 'JINDALSTEL': 10, 'JKCEMENT': 50, 'JSWSTEEL': 10, 'JUBLFOOD': 10, 'KOTAKBANK': 20, 'LALPATHLAB': 50, 'LAURUSLABS': 10, 'LICHSGFIN': 10, 'LTIM': 50, 'LTTS': 50, 'LUPIN': 20, 'M&M': 50, 'MARICO': 10, 'MARUTI': 100, 'MCX': 100, 'METROPOLIS': 20, 'MFSL': 20, 'MGL': 20, 'MOTHERSON': 2, 'MPHASIS': 50, 'MRF': 500, 'MUTHOOTFIN': 20, 'NATIONALUM': 2, 'NAUKRI': 100, 'NAVINFLUOR': 50, 'NESTLEIND': 20, 'NMDC': 5, 'NTPC': 5, 'OBEROIRLTY': 20, 'OFSS': 250, 'ONGC': 5, 'PAGEIND': 500, 'PEL': 20, 'PERSISTENT': 100, 'PIDILITIND': 20, 'PIIND': 50, 'PNB': 1, 'POLYCAB': 100, 'PVRINOX': 20, 'RAMCOCEM': 10, 'RELIANCE': 10, 'SBICARD': 5, 'SBILIFE': 20, 'SBIN': 10, 'SHREECEM': 250, 'SHRIRAMFIN': 50, 'SIEMENS': 100, 'SRF': 20, 'SUNPHARMA': 20, 'SUNTV': 10, 'SYNGENE': 10, 'TATACHEM': 20, 'TATACOMM': 20, 'TATACONSUM': 10, 'TATAMOTORS': 10, 'TATASTEEL': 2, 'TCS': 50, 'TECHM': 20, 'TORNTPHARM': 50, 'TRENT': 100, 'TVSMOTOR': 50, 'UBL': 20, 'ULTRACEMCO': 100, 'UPL': 10, 'VOLTAS': 20, 'ZYDUSLIFE': 20, 'ABFRL': 5, 'BANDHANBNK': 2, 'BIOCON': 5, 'CHAMBLFERT': 10, 'CROMPTON': 5, 'EXIDEIND': 10, 'GRANULES': 10, 'HINDPETRO': 5, 'INDUSTOWER': 10, 'PETRONET': 5, 'PFC': 10, 'POWERGRID': 5, 'RECLTD': 10, 'TATAPOWER': 5, 'VEDL': 10, 'WIPRO': 2}
self.correct_list = {'AARTIIND': 10, 'ABB': 100, 'ABBOTINDIA': 250, 'ACC': 20, 'ADANIENT': 20, 'ADANIPORTS': 20, 'ALKEM': 100, 'AMBUJACEM': 10, 'APOLLOHOSP': 50, 'APOLLOTYRE': 10, 'ASIANPAINT': 20, 'ASTRAL': 20, 'ATUL': 100, 'AUBANK': 10, 'AUROPHARMA': 20, 'AXISBANK': 10, 'BAJAJ-AUTO': 100, 'BAJAJFINSV': 20, 'BAJFINANCE': 100, 'BALKRISIND': 50, 'BATAINDIA': 10, 'BEL': 5, 'BERGEPAINT': 5, 'BHARATFORG': 20, 'BHARTIARTL': 40, 'BHEL': 10, 'BOSCHLTD': 500, 'BPCL': 5, 'BRITANNIA': 50, 'BSOFT': 10, 'CANBK': 2, 'CANFINHOME': 20, 'CHOLAFIN': 40, 'CIPLA': 20, 'COFORGE': 100, 'COLPAL': 50, 'CONCOR': 10, 'COROMANDEL': 20, 'CUB': 2, 'CUMMINSIND': 50, 'DABUR': 5, 'DALBHARAT': 20, 'DEEPAKNTR': 50, 'DIVISLAB': 50, 'DLF': 10, 'DRREDDY': 10, 'EICHERMOT': 50, 'ESCORTS': 50, 'FEDERALBNK': 2, 'GAIL': 2, 'GLENMARK': 20, 'GNFC': 10, 'GODREJCP': 20, 'GODREJPROP': 50, 'GRASIM': 20, 'GUJGASLTD': 10, 'HAL': 100, 'HAVELLS': 20, 'HCLTECH': 20, 'HDFCAMC': 50, 'HDFCBANK': 10, 'HDFCLIFE': 10, 'HEROMOTOCO': 100, 'HINDALCO': 10, 'HINDCOPPER': 5, 'HINDUNILVR': 20, 'ICICIBANK': 10, 'ICICIGI': 20, 'ICICIPRULI': 10, 'IDEA': 1, 'IDFCFIRSTB': 1, 'IEX': 2, 'IGL': 10, 'INDHOTEL': 10, 'INDIAMART': 50, 'INDIGO': 50, 'INDUSINDBK': 20, 'INFY': 20, 'IOC': 2, 'IPCALAB': 20, 'IRCTC': 10, 'ITC': 5, 'JINDALSTEL': 10, 'JKCEMENT': 50, 'JSWSTEEL': 10, 'JUBLFOOD': 10, 'KOTAKBANK': 20, 'LALPATHLAB': 50, 'LAURUSLABS': 10, 'LICHSGFIN': 10, 'LTIM': 50, 'LTTS': 50, 'LUPIN': 20, 'M&M': 50, 'MARICO': 10, 'MARUTI': 100, 'MCX': 100, 'METROPOLIS': 20, 'MFSL': 20, 'MGL': 20, 'MOTHERSON': 2, 'MPHASIS': 50, 'MRF': 500, 'MUTHOOTFIN': 20, 'NATIONALUM': 2, 'NAUKRI': 100, 'NAVINFLUOR': 50, 'NESTLEIND': 20, 'NMDC': 5, 'NTPC': 5, 'OBEROIRLTY': 20, 'OFSS': 250, 'ONGC': 5, 'PAGEIND': 500, 'PEL': 20, 'PERSISTENT': 100, 'PIDILITIND': 20, 'PIIND': 50, 'PNB': 1, 'POLYCAB': 100, 'PVRINOX': 20, 'RAMCOCEM': 10, 'RELIANCE': 10, 'SBICARD': 5, 'SBILIFE': 20, 'SBIN': 10, 'SHREECEM': 250, 'SHRIRAMFIN': 50, 'SIEMENS': 100, 'SRF': 20, 'SUNPHARMA': 20, 'SUNTV': 10, 'SYNGENE': 10, 'TATACHEM': 20, 'TATACOMM': 20, 'TATACONSUM': 10, 'TATAMOTORS': 10, 'TATASTEEL': 2, 'TCS': 50, 'TECHM': 20, 'TORNTPHARM': 50, 'TRENT': 100, 'TVSMOTOR': 50, 'UBL': 20, 'ULTRACEMCO': 100, 'UPL': 10, 'VOLTAS': 20, 'ZYDUSLIFE': 20, 'ABFRL': 5, 'BANDHANBNK': 2, 'BIOCON': 5, 'CHAMBLFERT': 10, 'CROMPTON': 5, 'EXIDEIND': 10, 'GRANULES': 10, 'HINDPETRO': 5, 'INDUSTOWER': 10, 'PETRONET': 5, 'PFC': 10, 'POWERGRID': 5, 'RECLTD': 10, 'TATAPOWER': 5, 'VEDL': 10, 'WIPRO': 2}
# self.correct_step_df_creation()
except Exception as e:
print(e)
traceback.print_exc()
def get_login(self,ClientCode,token_id):
try:
self.ClientCode = "1102726848"
self.token_id = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpc3MiOiJkaGFuIiwicGFydG5lcklkIjoiIiwiZXhwIjoxNzUxMzcyNTM2LCJ0b2tlbkNvbnN1bWVyVHlwZSI6IlNFTEYiLCJ3ZWJob29rVXJsIjoiIiwiZGhhbkNsaWVudElkIjoiMTEwMjcyNjg0OCJ9.yBRfcldLkTlUqaGVR9XKrEQz7pHwmRBPoXAMYRi6Fz0w8-k93RyZGEgUNkb9noCUo7ueo4el6hj2dOn_pWVi2A"
print("-----Logged into Dhan-----")
self.Dhan = dhanhq(self.ClientCode, self.token_id)
# pdb.set_trace()
self.instrument_df = self.get_instrument_file()
print('Got the instrument file')
except Exception as e:
print(e)
self.logger.exception(f'got exception in get_login as {e} ')
print(self.response)
traceback.print_exc()
def get_instrument_file(self):
global instrument_df
current_date = time.strftime("%Y-%m-%d")
expected_file = 'all_instrument ' + str(current_date) + '.csv'
for item in os.listdir("Dependencies"):
path = os.path.join(item)
if (item.startswith('all_instrument')) and (current_date not in item.split(" ")[1]):
if os.path.isfile("Dependencies\\" + path):
C:\Users\Lenovo\OneDrive\Desktop\1. Api Upgrade>py Dhan_Tradehull_V2.py
Codebase Version 2.7 : Solved - Option Chain Issue
C:\Users\Lenovo\OneDrive\Desktop\1. Api Upgrade>
Blockquote
Hi @Sahil_Malhotra ,
We will release new codebase version soon.
Hi @Nanhe_Babu_Pal ,
Could you elaborate your query?
I am also getting same issue.
S:\algo\Dhan\3. Session3 - Codebase\Dhan codebase>py Dhan_websocket.py
Reading existing file all_instrument 2025-06-22.csv
Watchlist changed. Reconnecting the feed…
Disconnected from WebSocket feed.
WebSocket connection error: server rejected WebSocket connection: HTTP 400
Reconnecting Again…
Watchlist changed. Reconnecting the feed…
Disconnected from WebSocket feed.
WebSocket connection error: server rejected WebSocket connection: HTTP 400
Reconnecting Again…
@Tradehull_Imran / @RahulDeshpande , Could you please help here
Hi @tradehull_imran Sir,
Kindly provide dhan trading symbol names for NSE sectoral indexes:
AUTO
IT
FMCG
METAL
PHARMA
REALTY
MEDIA
HEALTHCARE
required for sector based strategy
ce_name, pe_name, ce_strike, pe_strike = tsl.ITM_Strike_Selection(tradingsymbol, expiry, ITM_count=1)
ce_name, pe_name, strike = tsl.ATM_Strike_Selection(tradingsymbol, expiry)
ce_name, pe_name, ce_strike, pe_strike = tsl.OTM_Strike_Selection(tradingsymbol, expiry, OTM_count=1)
ce_name, pe_name, ce_strike, pe_strike = tsl.OTM_Strike_Selection(tradingsymbol, expiry, OTM_count=2)
I am getting finnifty CE and PE for Nifty index. Sometimes it is giving correct results but sometimes wrong. Friday also this error persisted and today also I am getting the error.
Please solve the issue. Previously on 25th Feb, 2025 the same wrong result was coming, and later it was solved. But now it is again coming.
Please note: This error is coming intermittently, like it will come for 5 min, and then every think is ok, then after some time it will start again.
Dear sir try this
ce_name, pe_name, ce_strike, pe_strike = tsl.ITM_Strike_Selection(Underlying ='FinNifty', Expiry = 0, ITM_count=1)
ce_name, pe_name, strike = tsl.ATM_Strike_Selection(Underlying ='FinNifty', Expiry = 0)
ce_name, pe_name, ce_strike, pe_strike = tsl.OTM_Strike_Selection(Underlying ='FinNifty', Expiry = 0, OTM_count=1)
ce_name, pe_name, ce_strike, pe_strike = tsl.OTM_Strike_Selection(Underlying ='FinNifty', Expiry = 0, OTM_count=2)
Actually , I am getting finnifty CE and PE for Nifty index.
I am using ce_name, pe_name, ce_strike, pe_strike = tsl.ITM_Strike_Selection(Underlying =‘Nifty’, Expiry = 0, ITM_count=1), getting finnifty CE and PE .
Hi @Tradehull_Imran @RahulDeshpande @Dhan
please check the MCX ltp is not getting updated
another problem…
-
There is also a problem with resampled timeframe data, if you calculate vwap on default timeframe which are [‘1’, ‘5’, ‘15’, ‘25’, ‘60’] it gives you different vwap value than the resampled timeframe like 2 minutes, 10 minutes, please check the screenshot
-
also check the start time of dataframe, the resample timeframe gives you start with 9:15 am and the default timeframe gives you start with 9:00 am
-
the end time is also different as the resample timeframe gives you data upto 3:30 only (for MCX it should give you resample data upto 11:30)
the first dataframe is of 10 minutes timeframe (re-sampled) & second is of 15 minutes timeframe
@Tradehull_Imran
Can you please update the codebase code to have super order
ce_name, pe_name, ce_strike, pe_strike = tsl.ITM_Strike_Selection(tradingsymbol, expiry, ITM_count=1)
ce_name, pe_name, strike = tsl.ATM_Strike_Selection(tradingsymbol, expiry)
ce_name, pe_name, ce_strike, pe_strike = tsl.OTM_Strike_Selection(tradingsymbol, expiry, OTM_count=1)
ce_name, pe_name, ce_strike, pe_strike = tsl.OTM_Strike_Selection(tradingsymbol, expiry, OTM_count=2)
Dear Sir
Today also I am getting finnifty CE and PE for Nifty index.
Please check it and solve the issue.
Please note: This error is coming intermittently, like it will come for 5 min, and then every think is ok, then after some time it will start again.
Thank you
Same issue I faced.
Websocket is a old method we used to get LTP,
Now we have upgraded to a easier method to fetch LTP and also some fixes were applied in historical data as well
- See this video : https://www.youtube.com/watch?v=HLiEpNZSD80
- Also apply point 1 and 2 from this thread : Learn Algo Trading with Python | Codes | Youtube Series - #706 by Tradehull_Imran






