Learn Algo Trading with Python | Codes | Youtube Series

Hi @Tradehull_Imran ,

Thank you for the inputs. I will make the changes.


@Tradehull_Imran Can you please help me with this…I’m unable to fetch the LTP

for some reason only SENSEX orders gets executed on my PC, Nifty orders gets rejection…

error:

'Got exception in place_order as {‘status’: ‘failure’, ‘remarks’: {‘error_code’: ‘DH-905’, ‘error_type’: ‘Input_Exception’, ‘error_message’: ‘Missing required fields, bad values for parameters etc.’}, ‘data’: {‘errorType’: ‘Input_Exception’, ‘errorCode’: ‘DH-905’, ‘errorMessage’: ‘Missing required fields, bad values for parameters etc.’}}

Hi @Priyanshu_Chhoker

We have upgraded the codebase, this is a old ltp method that you are using

use latest codebase: https://www.youtube.com/watch?v=HLiEpNZSD80&list=PLifIWB1V-ILPfC9OqzAPtAFhhj8e5jAms&index=6

1 Like

Hi @Qaisar

Do send the code you are using , mostly some value is wrong when NIFTY order is being tried.

1 Like

file sent to tradehull_mentorship@tradehull.com

Thanks in advance…

Hi @Qaisar

in the new codebase, for atm/itm/otm functions expiry work as below

Expiry (int): The expiry to select.

  • 0 - Current week/month (depending on expiry type)
  • 1 - Next week/month (depending on expiry type)
  • and so on for subsequent weeks/months.

Also the lot size for Nifty has been increased to 75, for SENSEX its same as of now
thats why SENSEX orders were going and NIFTY orders were not going

use below code


from dhanhq import dhanhq
import pdb
import time
import datetime
import traceback
from Dhan_Tradehull_V2 import Tradehull
import pandas as pd
from pprint import pprint
import talib
import Function_Find_OTM_delta_based_to_test as abc
# import request





# -------------------------------------------------------------------------------------------
# log in to Dhan
# -------------------------------------------------------------------------------------------
client_code = 
token_id    = 


tsl         = Tradehull(client_code,token_id)

current_date_time   = datetime.datetime.now()
# current_time =  datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') # datetime.datetime.now().time() #

available_balance       = tsl.get_balance()
max_risk_for_the_day    = ((available_balance*2)/100*-1) # 2% Risk
max_target_for_the_day  = (available_balance*6)/100 # 6% Profit
leveraged_margin        = available_balance*4
max_trades              = 3
per_trade_margin        = (leveraged_margin/max_trades)
# -------------------------------------------------------------------------------------------






# -------------------------------------------------------------------------------------------
# get user input
# -------------------------------------------------------------------------------------------
index = ['NIFTY']
exchange = 'NFO'
expiry = 0
lot_size = 75

# index = ['SENSEX']
# exchange = 'BFO'
# expiry = '27-12-2024'
# lot_size = 10


how_many_lots = 1
trade_qty = (lot_size * how_many_lots)
OTM_delta = 0.2
far_OTM_delta = 0.1
ATM_price_difference_limit = 10
OTM_price_difference_limit = 20
far_OTM_price_difference_limit = 40

ATM_initial_entry = 'no'
far_OTM_initial_entry = 'no'
hedge_buy = 'no'
reentry       = 'yes'
reentry_attempt = 0
max_reentry_attempt = 3         # it will be total entrys = initial entry + max reentry attemp
# -------------------------------------------------------------------------------------------

# # for NIFTY
# entry_orderid  = tsl.order_placement(tradingsymbol='NIFTY 02 JAN 24900 CALL' , exchange='NFO', quantity=50, price=0, trigger_price=0, order_type='MARKET', transaction_type='BUY', trade_type='MIS')
# # for SENSEX
# entry_orderid  = tsl.order_placement(tradingsymbol='SENSEX 27 DEC 78800 CALL' ,exchange='BFO', quantity=10, price=0, trigger_price=0, order_type='MARKET', transaction_type='BUY', trade_type='MIS')




# -------------------------------------------------------------------------------------------
# main program
# -------------------------------------------------------------------------------------------
while True:
    time.sleep(0.1)

    live_pnl        = round(tsl.get_live_pnl())
    current_time    = datetime.datetime.now().time()

    if current_time < datetime.time(9, 30):
        print("Wait for market to start", current_time)
        continue

    if (current_time > datetime.time(15, 15)) or (live_pnl < max_risk_for_the_day) or (live_pnl > max_target_for_the_day):
        print("The Market is closed, BYE BYE", current_time)
        exit_all    = tsl.cancel_all_orders()
        # kill_switch = tsl.kill_switch("ON")
        break

    
    for index_name in index:
        # MAKE INITIAL ENTRY
        if ATM_initial_entry == 'no':

            # ltp_data = tsl.get_ltp_data(index_name)
            # entry_orderid_far_OTM_CE = tsl.order_placement('SENSEX 27 DEC 77100 PUT', exchange, trade_qty, 0, 0, 'MARKET', 'BUY', 'MIS')
            # entry_orderid  = tsl.order_placement(tradingsymbol='SENSEX 27 DEC 79000 CALL' ,exchange='BFO', quantity=10, price=0, trigger_price=0, order_type='MARKET', transaction_type='BUY', trade_type='MIS')
            # ce_strike, pe_strike, ce_OTM_price, pe_OTM_price = tsl.OTM_Strike_Selection(Underlying=index_name, Expiry=expiry, OTM_count=1)
            # pdb.set_trace()

            if hedge_buy == 'no':
                far_OTM_CE_name, far_OTM_CE_strike = abc.find_otm_strikes(index_name, expiry, 'CE', far_OTM_delta)
                far_OTM_PE_name, far_OTM_PE_strike = abc.find_otm_strikes(index_name, expiry, 'PE', far_OTM_delta)




     


Hi @kristrades99

I have checked on this, but I think we cannot fetch margin for basket orders.

Raising this as a feature request. Adding @Hardik for same.

Thanks

1 Like

'Got exception in place_order as {‘status’: ‘failure’, ‘remarks’: {‘error_code’: ‘DH-905’, ‘error_type’: ‘Input_Exception’, ‘error_message’: ‘Missing required fields, bad values for parameters etc.’}, ‘data’: {‘errorType’: ‘Input_Exception’, ‘errorCode’: ‘DH-905’, ‘errorMessage’: ‘Missing required fields, bad values for parameters etc.’}}

Order not being placed. Kindly help.

Hi @Ganesh_Surwase

send the code you are using,
also if NIFTY orders are failing that may be because the lot size has been changed.

@Tradehull_Imran bro i got solution for this , and need to add path variables manually

1 Like

Sir code is:

tsl = Tradehull(client_code, token_id)
qty, max_trades, live_pnl = 1, 5, tsl.get_live_pnl()
max_loss = tsl.get_balance() * 0.10
traded_watchlist, watchlist = , [‘SENSEX’]
while True:
current_time = datetime.datetime.now().time()
if current_time < datetime.time(9, 15):
print(“\nMarket_OPENS_0900:”, current_time)
time.sleep(60)
continue
if current_time > datetime.time(23, 55):
order_details = tsl.cancel_all_orders()
print(“\nMarket_CLOSES_2355:”, current_time)
break
# if live_pnl < max_loss:
# order_details = tsl.cancel_all_orders()
# print(“Positions_SQUIREDOFF:”, current_time)
# break
print(“\nALGO_started :”, current_time)

for stock_name in watchlist:
    time.sleep(0.2)
    call_itm, put_itm, call_itm_strike, put_itm_strike = tsl.ITM_Strike_Selection (Underlying='SENSEX', Expiry=0, ITM_count=2)
    call_chart = tsl.get_historical_data(call_itm, 'BFO', '1')
    call_chart['ma_50'] = talib.WMA(call_chart['close'], timeperiod=50)
    call_chart['ma_20'] = talib.WMA(call_chart['close'], timeperiod=20)
    call_cc = call_chart.iloc[-2]
    call_ma_50, call_ma_20, call_price = round(call_cc['ma_50'],1), round(call_cc['ma_20'],1), round(call_cc['close'],1)
    put_chart = tsl.get_historical_data(put_itm, 'BFO', '1')
    put_chart['ma_50'] = talib.WMA(put_chart['close'], timeperiod=50)
    put_chart['ma_20'] = talib.WMA(put_chart['close'], timeperiod=20)
    put_cc = put_chart.iloc[-2]
    put_ma_50, put_ma_20, put_price = round(put_cc['ma_50'],1), round(put_cc['ma_20'],1), round(put_cc['close'],1)
    call_uptrend = call_price > call_ma_50     # and call_ma_50 > call_ma_20 and ((call_ma_50 - call_ma_20)/call_ma_20) < 0.1
    put_uptrend = put_price > put_ma_50        # and put_ma_50 > put_ma_20 and ((put_ma_50 - put_ma_20)/put_ma_20) < 0.1
    no_repeat_order = stock_name not in traded_watchlist
    max_order_limit = len(traded_watchlist) < max_trades
    print(
        f"ITM2_option   : {call_itm}  |  {put_itm}\n"
        f"ITM2_ma_50   : {call_ma_50}  |  {put_ma_50}\n"
        f"ITM2_ma_20    : {call_ma_20}  |  {put_ma_20}\n"
        f"ITM2_price    : {call_price}  |  {put_price}\n"
        f"ITM2_uptrend  : {call_uptrend}  |  {put_uptrend}\n")

    if call_uptrend and no_repeat_order and max_order_limit:
        call_buy_orderid = tsl.order_placement(tradingsymbol=call_itm, exchange='BFO', quantity=qty, price=call_price, trigger_price=0, order_type='MARKET', transaction_type='BUY', trade_type='MIS')
        if call_buy_orderid:
            call_buy_price = tsl.get_executed_price(orderid=call_buy_orderid)
            call_loss_price, call_profit_price = round((call_buy_price * 0.93), 1), round((call_buy_price * 1.17), 1)
            tsl.order_placement(tradingsymbol=call_itm, exchange='BFO', quantity=qty, price=call_loss_price, trigger_price=0, order_type='MARKET', transaction_type='SELL', trade_type='MIS')
            tsl.order_placement(tradingsymbol=call_itm, exchange='BFO', quantity=qty, price=call_profit_price, trigger_price=0, order_type='MARKET', transaction_type='SELL', trade_type='MIS')
            traded_watchlist.append(stock_name)
    if put_uptrend and no_repeat_order and max_order_limit:
        put_buy_orderid = tsl.order_placement(tradingsymbol=put_itm, exchange='BFO', quantity=qty, price=put_price, trigger_price=0, order_type='MARKET', transaction_type='BUY', trade_type='MIS')
        if put_buy_orderid:
            put_buy_price = tsl.get_executed_price(orderid=put_buy_orderid)
            put_loss_price, put_profit_price = round((put_buy_price * 0.93), 1), round((put_buy_price * 1.17), 1)
            tsl.order_placement(tradingsymbol=put_itm, exchange='BFO', quantity=qty, price=put_loss_price, trigger_price=0, order_type='MARKET', transaction_type='SELL', trade_type='MIS')
            tsl.order_placement(tradingsymbol=put_itm, exchange='BFO', quantity=qty, price=put_profit_price, trigger_price=0, order_type='MARKET', transaction_type='SELL', trade_type='MIS')
            traded_watchlist.append(stock_name)

you have mentioned qty = 1, if you want buy stock options you must first find out stock’s lot size, and put that quantity in the order

like RELIANCE has lot of 500 qty
HDFCBANK has lot of 550 qty
TCS has lot of 175 qty

use this code to get lot size:

lot_size = tsl.get_lot_size(call_itm)

2 Likes

Thanks Sir,

I will update sensex option qty=10 and re-run it.

1 Like
margin_available = tsl.get_balance()
leverage_margin  = margin_available*5
max_trade_allowed= 5
max_trade_allowed_per_trade = leverage_margin/max_trade_allowed
call_list = [ 'GREAVESCOT', 'PTCIL', 'AKUMS', 'CAPLIPOINT', 'SHARDAMOTR', 'AJANTPHARM', 'GRSE', 'AVALON', 'FINPIPE', 'USHAMART', 'AARTIPHARM', 'DEVYANI', 'PRINCEPIPE', 'IXIGO', 'SPANDANA', 'TARC', 'BANCOINDIA', 'COCHINSHIP', 'DCXINDIA', 'HIKAL', 'GODIGIT', 'CONFIPET', 'JSWINFRA', 'CAMPUS', 'ASHOKA', 'TVSSCS', 'JYOTHYLAB', 'JSFB', 'CEATLTD', 'MANINFRA', 'ESCORTS', 'SAPPHIRE', 'CANFINHOME', 'ETHOSLTD', 'WABAG', 'METROBRAND', 'GLENMARK', 'KARURVYSYA', 'OFSS', 'THOMASCOOK', 'PGEL', 'LAURUSLABS', 'SWANENERGY', 'LATENTVIEW', 'SKFINDIA', 'IPCALAB', 'LANDMARK', 'ECLERX', 'DRREDDY', 'INDIASHLTR', 'ABBOTINDIA', 'CHOICEIN', 'JYOTICNC', 'HATHWAY', 'SANSERA', 'RKFORGE', 'DEN', 'POLYPLEX', 'INDIAGLYCO', 'INFIBEAM', 'INDUSINDBK', 'BATAINDIA', 'AFFLE', 'SYMPHONY', 'POWERINDIA', 'AWL', 'PARAS', 'SBFC', 'M&M', 'LUPIN', 'HEIDELBERG', 'ABSLAMC', 'RATEGAIN', 'CGCL', 'VMART', 'IDEAFORGE', 'JTEKTINDIA', 'EDELWEISS', 'HOMEFIRST', 'ALKEM', 'GRINFRA', 'NATCOPHARM', 'UTIAMC', 'MASTEK', 'INDGN', 'POLYMED', 'JLHL', 'BIOCON', 'IONEXCHANG', 'METROPOLIS', 'TRITURBINE', 'TATAMOTORS', 'POWERMECH', 'ORCHPHARMA', 'KRBL', 'EPIGRAL', 'KTKBANK', 'VINATIORGA', 'RHIM', 'BLS', 'GESHIP', 'LLOYDSENGG', 'KOLTEPATIL', 'ZENSARTECH', 'DMART', 'AIAENG', 'ZYDUSLIFE', 'VOLTAMP', 'JMFINANCIL', 'HERITGFOOD', 'NEULANDLAB', 'MARKSANS', 'NETWORK18', 'FIVESTAR', 'NAVA', 'AEGISLOG', 'SBCL', 'SUNDRMFAST', 'BBL', 'EICHERMOT', 'SURYAROSNI', 'NETWEB', 'FACT', 'SIGNATURE', 'CARBORUNIV', 'SUVENPHAR', 'LICHSGFIN', 'PARADEEP', 'HSCL', 'WIPRO', 'SYRMA', 'ADANIENSOL', 'SUPRIYA', 'EIDPARRY', 'GICRE', 'CLEAN', 'JKIL', 'CAMS', 'EMUDHRA', 'CHEMPLASTS', 'BALKRISIND', 'KSCL', 'KPIL', 'SHYAMMETL', 'MTARTECH', 'MAHLOG', 'BAJAJFINSV', 'SUNPHARMA', 'BAJFINANCE', 'MANYAVAR', 'VIPIND', 'TEGA', 'IDFCFIRSTB', 'GODREJAGRO', 'CIEINDIA', 'APLAPOLLO', 'JISLJALEQS', 'WOCKPHARMA', 'FORTIS', 'FSL', 'INDIAMART', 'SONACOMS', 'FIEMIND', 'PAYTM', 'NAZARA', 'NBCC', 'AUROPHARMA', 'DOMS', 'KAJARIACER', 'RRKABEL', 'ATGL', 'CIPLA', 'PATANJALI', 'BEPL', 'PEL', 'DATAPATTNS', 'CHALET', 'TRIVENI', 'LLOYDSME', 'FUSION', 'MEDPLUS', 'GREENPLY', 'ASTERDM', 'ANANTRAJ', 'SEQUENT', 'GLAXO', 'TTML', 'WELCORP', 'GULFOILLUB', 'BEML', 'PRUDENT', 'BLUESTARCO', 'JINDALSAW', 'GRAPHITE', 'SANDUMA', 'PCBL', 'KIRLPNU', 'ASTRAMICRO', 'ARE&M', 'STARCEMENT', 'TRENT', 'FCL', 'EPL', 'CONCOR', 'LTF', 'FLUOROCHEM', 'BSOFT', 'NRBBEARING', 'BAJAJ-AUTO', 'AHLUCONT', 'UBL', 'ENGINERSIN', 'SENCO', 'BDL', 'ADANIENT', 'TBOTEK', 'JKTYRE', 'APLLTD', 'ICICIBANK', 'CHOLAFIN', 'JINDWORLD', 'SCHAEFFLER', 'VARROC', 'SUPRAJIT', 'INDIANB', 'LMW', 'NESTLEIND', 'JUBLPHARMA', 'ASKAUTOLTD', 'CROMPTON', 'MMTC', 'IIFL', 'CHOLAHLDNG', 'SSWL', 'KIRLOSENG', 'ESAFSFB', 'POLICYBZR', 'UNITDSPR', 'ACI', 'ZFCVINDIA', 'NOCIL', 'KPITTECH', 'AUBANK', 'TATACONSUM', 'TIRUMALCHM', 'ROSSARI', 'HBLENGINE', 'DCMSHRIRAM', 'MIDHANI', 'UJJIVANSFB', 'LTFOODS', 'ENDURANCE', 'SPARC', 'SHILPAMED', 'TECHM', 'MSUMI', 'PAISALO', 'JUBLFOOD', 'SYNGENE', 'ITC', 'HDFCBANK', 'MARUTI', 'VEEDOL', 'ARVINDFASN', 'VENKEYS', 'HGINFRA', 'MAHLIFE', 'HEG', 'BAJAJHLDNG', 'M&MFIN', 'HINDZINC', 'INFY', 'GPPL', 'ASIANPAINT', 'DATAMATICS', 'CMSINFO', 'CREDITACC', 'INGERRAND', 'HINDUNILVR', 'DREAMFOLKS', 'DYNAMATECH', 'RATNAMANI', 'BBTC', 'LTTS', 'ROUTE', 'KSB', 'ELECTCAST', 'RTNINDIA', 'HINDWAREAP', 'KIMS', 'GMDCLTD', 'KOTAKBANK', 'RITES', 'IPL', 'RELIANCE', 'BIKAJI', 'BECTORFOOD', 'GRAVITA', 'GABRIEL', 'SAREGAMA', 'TEXRAIL', 'DEEPAKNTR', 'MOTHERSON', 'JKPAPER', 'BHARTIARTL', 'NTPC', 'RALLIS', 'KIRLOSBROS', 'ISEC', 'EVEREADY', 'STAR', 'EMAMILTD', 'DABUR', 'COLPAL', 'HAL', 'BORORENEW', 'MARICO', 'BERGEPAINT', 'RADICO', 'GRASIM', 'VTL', 'UPL', 'COROMANDEL', 'NESCO', 'NUVOCO', 'GLS', 'GMMPFAUDLR', 'ASHOKLEY', 'CGPOWER', 'AZAD', 'DCAL', 'IMAGICAA', 'HARSHA', 'ELECON', 'VENUSPIPES', 'BHARTIHEXA', 'WELENT', 'BRITANNIA', 'BAJAJCON', 'VBL', 'PVRINOX', 'TEAMLEASE', 'ICIL', 'YESBANK', 'POLYCAB', 'MAITHANALL', 'AXISBANK', 'BAJAJELEC', 'ITDCEM', 'JSL', 'AMIORG', 'REDTAPE', 'JCHAC', 'CESC', 'NIACL', 'DODLA', 'CRISIL', 'MRF', 'ACE', 'SCI', 'MAPMYINDIA', 'JBCHEPHARM', 'KEI', 'IEX', 'ORISSAMINE', 'KANSAINER', 'PRAJIND', 'SANGHIIND', 'LXCHEM', 'SUDARSCHEM', 'GANESHHOUC', 'IFCI', 'SOBHA', 'WESTLIFE', 'SHRIPISTON', 'CHENNPETRO', 'GHCL', 'ENTERO', 'ABREL', 'QUESS', 'IMFA', 'KAYNES', 'JKLAKSHMI', 'ANANDRATHI', 'BHARATFORG', 'LEMONTREE', 'TIPSMUSIC', 'PERSISTENT', 'CIGNITITEC', 'BAJAJHIND', 'DHANUKA', 'TANLA', 'KNRCON', 'INOXINDIA', 'JSWSTEEL', 'GMRAIRPORT', 'SAFARI', 'AMBUJACEM', 'FINCABLES', 'TATATECH', 'MUTHOOTFIN', 'OBEROIRLTY', 'EXIDEIND', 'HCG', 'IGL', 'APTUS', 'RAINBOW', 'NEOGEN', 'DIVISLAB', 'JIOFIN', 'TEJASNET', 'MSTCLTD', 'JPPOWER', 'MINDACORP', 'CYIENTDLM', 'SFL', 'RBA', 'AAVAS', 'TRIDENT', 'BOSCHLTD', 'SOUTHBANK', 'MCX', 'IRCTC', 'TECHNOE', 'BALAMINES', 'IDBI', 'GUJALKALI', 'NUVAMA', 'SUPREMEIND', 'SRF', 'NLCINDIA', 'DCBBANK', 'SUNDARMFIN', 'MOIL', 'APOLLOHOSP', 'LALPATHLAB', 'PIIND', 'TIMETECHNO', 'AADHARHFC', 'HAPPSTMNDS', 'PARKHOTELS', 'MUTHOOTMF', 'IRCON', 'AARTIIND', 'BRIGADE', 'CERA', 'BOMDYEING', 'DALBHARAT', 'ORIENTCEM', 'SUNTV', 'GODREJCP', 'ADANIPOWER', 'PRESTIGE', 'BANKINDIA', 'LODHA', 'TORNTPHARM', 'TCIEXP', 'DIXON', 'BIRLACORPN', 'BALMLAWRIE', 'HDFCAMC', 'CCL', 'JUBLINGREA', 'DELHIVERY', 'ERIS', 'WONDERLA', 'EMCURE', 'SHRIRAMFIN', 'SAMMAANCAP', 'PATELENG', 'PTC', 'CRAFTSMAN', 'POWERGRID', 'MRPL', 'CHAMBLFERT', 'ABFRL', 'TCS', 'MHRIL', 'LUXIND', 'SAMHI', 'MANAPPURAM', 'ARVIND', '360ONE', 'ISGEC', 'INDIACEM', 'HNDFDS', 'POONAWALLA', 'ZEEL', 'SUNTECK', 'CENTURYPLY', 'BASF', 'SULA', 'BANDHANBNK', 'SBICARD', 'JAIBALAJI', 'CYIENT', 'ULTRACEMCO', 'GPIL', 'TATAELXSI', 'WELSPUNLIV', 'RAILTEL', 'HUDCO', 'STYLAMIND', 'FINEORG', 'ANURAS', 'TITAN', 'SANOFI', 'MGL', 'PAGEIND', 'GILLETTE', 'MAHABANK', 'KESORAMIND', 'DHANI', 'CARTRADE', 'SOLARINDS', 'PNB', 'FORCEMOT', 'VGUARD', 'FEDERALBNK', 'IOB', 'INOXGREEN', 'EIHOTEL', 'CANBK', 'GOPAL', 'ASTRAZEN', 'VOLTAS', 'FDC', 'GRINDWELL', 'JUSTDIAL', 'BALRAMCHIN', 'PIDILITIND', 'ASAHIINDIA', 'SANGHVIMOV', 'BAYERCROP', 'WHIRLPOOL', 'JUNIPER', 'GLAND', 'CUB', 'HCLTECH', 'ANGELONE', 'LT', 'MPHASIS', 'DELTACORP', 'AETHER', 'RCF', 'NAUKRI', 'LICI', 'GODREJIND', 'GOKEX', 'BOROLTD', 'IRFC', 'RVNL', 'EQUITASBNK', 'LINDEINDIA', 'NYKAA', 'MOTILALOFS', 'SBILIFE', 'HCC', 'RENUKA', 'NFL', 'GNFC', 'PNBHOUSING', 'ABCAPITAL', 'JAICORPLTD', 'JKCEMENT', 'CASTROLIND', 'OIL', 'PNCINFRA', 'TVSMOTOR', 'ZOMATO', 'AARTIDRUGS', 'BLUEJET', 'DLF', 'GATEWAY', 'ATUL', 'EMBDL', 'COFORGE', 'KALYANKJIL', 'BPCL', 'RAIN', 'APARINDS', 'RAMKY', 'UCOBANK', 'SCHNEIDER', 'INDUSTOWER', 'NAVINFLUOR', 'DBREALTY', 'VSTIND', 'ZYDUSWELL', 'HEROMOTOCO', 'BANKBARODA', 'RAMCOCEM', 'GODREJPROP', 'RAYMOND', 'ROLEXRINGS', 'WSTCSTPAPR', 'INDHOTEL', 'RAJESHEXPO', 'RBLBANK', 'ASTRAL', 'HAPPYFORGE', 'CELLO', 'HDFCLIFE', 'PPLPHARMA', 'ADANIPORTS', 'IDEA', 'INDIGOPNTS', 'JWL', 'UNOMINDA', 'ALOKINDS', 'TATASTEEL', 'GOCOLORS', 'UNIONBANK', 'PETRONET', 'BEL', 'ADVENZYMES', 'CSBBANK', 'ACC', 'SHREECEM', 'JSWENERGY', 'IOC', 'APOLLOTYRE', 'SUBROS', 'MFSL', 'INDIGO', 'IRB', 'TIINDIA', 'NH', 'ADANIGREEN', 'STLTECH', 'GRANULES', 'GSFC', 'ALKYLAMINE', 'OLECTRA', 'TATACHEM', 'TATAPOWER', 'UTKARSHBNK', 'IREDA', 'TORNTPOWER', 'RELINFRA', 'JAMNAAUTO', 'J&KBANK', 'NAM-INDIA', 'LTIM', 'ONGC', 'CONCORDBIO', 'PFIZER', 'TATACOMM', 'SJVN', 'CENTRALBK', 'ABB', 'GREENPANEL', 'GUJGASLTD', 'HONASA', 'COALINDIA', 'SBIN', 'SWSOLAR', 'SUMICHEM', 'OPTIEMUS', 'HFCL', 'HINDOILEXP', 'RESPONIND', 'CDSL', 'TATAINVEST', '3MINDIA', 'MAHSEAMLES', 'HAVELLS', 'NATIONALUM', 'MEDANTA', 'MANKIND', 'INOXWIND', 'VAIBHAVGBL', 'SUZLON', 'IIFLCAPS', 'TIMKEN', 'GRWRHITECH', 'JINDALSTEL', 'ELGIEQUIP', 'SAIL', 'HINDALCO', 'PGHH', 'PURVA', 'CUMMINSIND', 'NCC', 'JBMA', 'EMIL', 'YATHARTH', 'ICICIGI', 'PHOENIXLTD', 'NIITMTS', 'ALLCARGO', 'TI', 'DISHTV', 'NSLNISP', 'ICICIPRULI', 'ITI', 'THERMAX', 'KPRMILL', 'STARHEALTH', 'VEDL', 'PRICOLLTD', 'KEC', 'RECLTD', 'NHPC', 'PFC', 'GSPL', 'KALAMANDIR', 'JTLIND', 'REDINGTON', 'SIEMENS', 'HEMIPROP', 'TITAGARH', 'MAZDOCK', 'HINDPETRO', 'DEEPAKFERT', 'SARDAEN', 'AVANTIFEED', 'MAXHEALTH', 'BHEL', 'EASEMYTRIP', 'SONATSOFTW', 'GAIL', 'VESUVIUS', 'IFBIND', 'ZENTEC', 'HONAUT', 'VIJAYA', 'TDPOWERSYS', 'KSL', 'GVT&D', 'DBL', 'NMDC', 'GAEL', 'SINDHUTRAD', 'ORIENTELEC', 'HINDCOPPER', 'BSE', 'TIIL', 'PGHL', 'SHAREINDIA', 'SPLPETRO', 'AGI', 'SUNFLAG', 'NEWGEN', 'INTELLECT', 'KFINTECH', 'GODFRYPHLP', 'BLUEDART', 'AMBER', 'RELIGARE', 'ODIGMA']



for symbol in call_list:

	data_day = tsl.get_intraday_data(tradingsymbol=symbol.upper() ,exchange ='NSE',timeframe= '5')
	print(data_day)
	pdb.set_trace()

Can you please tell how to fix the error in code

Codebase Version 2.4 : Solved - Option Chain
-----Logged into Dhan-----
reading existing file all_instrument 2024-12-27.csv
Got the instrument file
'5'
Traceback (most recent call last):
  File "E:\MAIN_ALGO_TRADING\1. Api Upgrade\1. Api Upgrade\Dhan_Tradehull_V2.py", line 515, in get_intraday_data
    df = self.resample_timeframe(df,available_frames[timeframe])
KeyError: '5'
None
[0] > e:\main_algo_trading\1. api upgrade\1. api upgrade\backtestcode.py(23)<module>()
-> for symbol in call_list:
(Pdb++)


getting this infinite loop
note : i have updated client ID & token but getting this error @Tradehull_Imran

Hi @Priyanshu_Chhoker

use this code below

call_list = [ 'GREAVESCOT', 'PTCIL', 'AKUMS', 'CAPLIPOINT', 'SHARDAMOTR', 'AJANTPHARM', 'GRSE', 'AVALON', 'FINPIPE', 'USHAMART', 'AARTIPHARM', 'DEVYANI', 'PRINCEPIPE', 'IXIGO', 'SPANDANA', 'TARC', 'BANCOINDIA', 'COCHINSHIP', 'DCXINDIA', 'HIKAL', 'GODIGIT', 'CONFIPET', 'JSWINFRA', 'CAMPUS', 'ASHOKA', 'TVSSCS', 'JYOTHYLAB', 'JSFB', 'CEATLTD', 'MANINFRA', 'ESCORTS', 'SAPPHIRE', 'CANFINHOME', 'ETHOSLTD', 'WABAG', 'METROBRAND', 'GLENMARK', 'KARURVYSYA', 'OFSS', 'THOMASCOOK', 'PGEL', 'LAURUSLABS', 'SWANENERGY', 'LATENTVIEW', 'SKFINDIA', 'IPCALAB', 'LANDMARK', 'ECLERX', 'DRREDDY', 'INDIASHLTR', 'ABBOTINDIA', 'CHOICEIN', 'JYOTICNC', 'HATHWAY', 'SANSERA', 'RKFORGE', 'DEN', 'POLYPLEX', 'INDIAGLYCO', 'INFIBEAM', 'INDUSINDBK', 'BATAINDIA', 'AFFLE', 'SYMPHONY', 'POWERINDIA', 'AWL', 'PARAS', 'SBFC', 'M&M', 'LUPIN', 'HEIDELBERG', 'ABSLAMC', 'RATEGAIN', 'CGCL', 'VMART', 'IDEAFORGE', 'JTEKTINDIA', 'EDELWEISS', 'HOMEFIRST', 'ALKEM', 'GRINFRA', 'NATCOPHARM', 'UTIAMC', 'MASTEK', 'INDGN', 'POLYMED', 'JLHL', 'BIOCON', 'IONEXCHANG', 'METROPOLIS', 'TRITURBINE', 'TATAMOTORS', 'POWERMECH', 'ORCHPHARMA', 'KRBL', 'EPIGRAL', 'KTKBANK', 'VINATIORGA', 'RHIM', 'BLS', 'GESHIP', 'LLOYDSENGG', 'KOLTEPATIL', 'ZENSARTECH', 'DMART', 'AIAENG', 'ZYDUSLIFE', 'VOLTAMP', 'JMFINANCIL', 'HERITGFOOD', 'NEULANDLAB', 'MARKSANS', 'NETWORK18', 'FIVESTAR', 'NAVA', 'AEGISLOG', 'SBCL', 'SUNDRMFAST', 'BBL', 'EICHERMOT', 'SURYAROSNI', 'NETWEB', 'FACT', 'SIGNATURE', 'CARBORUNIV', 'SUVENPHAR', 'LICHSGFIN', 'PARADEEP', 'HSCL', 'WIPRO', 'SYRMA', 'ADANIENSOL', 'SUPRIYA', 'EIDPARRY', 'GICRE', 'CLEAN', 'JKIL', 'CAMS', 'EMUDHRA', 'CHEMPLASTS', 'BALKRISIND', 'KSCL', 'KPIL', 'SHYAMMETL', 'MTARTECH', 'MAHLOG', 'BAJAJFINSV', 'SUNPHARMA', 'BAJFINANCE', 'MANYAVAR', 'VIPIND', 'TEGA', 'IDFCFIRSTB', 'GODREJAGRO', 'CIEINDIA', 'APLAPOLLO', 'JISLJALEQS', 'WOCKPHARMA', 'FORTIS', 'FSL', 'INDIAMART', 'SONACOMS', 'FIEMIND', 'PAYTM', 'NAZARA', 'NBCC', 'AUROPHARMA', 'DOMS', 'KAJARIACER', 'RRKABEL', 'ATGL', 'CIPLA', 'PATANJALI', 'BEPL', 'PEL', 'DATAPATTNS', 'CHALET', 'TRIVENI', 'LLOYDSME', 'FUSION', 'MEDPLUS', 'GREENPLY', 'ASTERDM', 'ANANTRAJ', 'SEQUENT', 'GLAXO', 'TTML', 'WELCORP', 'GULFOILLUB', 'BEML', 'PRUDENT', 'BLUESTARCO', 'JINDALSAW', 'GRAPHITE', 'SANDUMA', 'PCBL', 'KIRLPNU', 'ASTRAMICRO', 'ARE&M', 'STARCEMENT', 'TRENT', 'FCL', 'EPL', 'CONCOR', 'LTF', 'FLUOROCHEM', 'BSOFT', 'NRBBEARING', 'BAJAJ-AUTO', 'AHLUCONT', 'UBL', 'ENGINERSIN', 'SENCO', 'BDL', 'ADANIENT', 'TBOTEK', 'JKTYRE', 'APLLTD', 'ICICIBANK', 'CHOLAFIN', 'JINDWORLD', 'SCHAEFFLER', 'VARROC', 'SUPRAJIT', 'INDIANB', 'LMW', 'NESTLEIND', 'JUBLPHARMA', 'ASKAUTOLTD', 'CROMPTON', 'MMTC', 'IIFL', 'CHOLAHLDNG', 'SSWL', 'KIRLOSENG', 'ESAFSFB', 'POLICYBZR', 'UNITDSPR', 'ACI', 'ZFCVINDIA', 'NOCIL', 'KPITTECH', 'AUBANK', 'TATACONSUM', 'TIRUMALCHM', 'ROSSARI', 'HBLENGINE', 'DCMSHRIRAM', 'MIDHANI', 'UJJIVANSFB', 'LTFOODS', 'ENDURANCE', 'SPARC', 'SHILPAMED', 'TECHM', 'MSUMI', 'PAISALO', 'JUBLFOOD', 'SYNGENE', 'ITC', 'HDFCBANK', 'MARUTI', 'VEEDOL', 'ARVINDFASN', 'VENKEYS', 'HGINFRA', 'MAHLIFE', 'HEG', 'BAJAJHLDNG', 'M&MFIN', 'HINDZINC', 'INFY', 'GPPL', 'ASIANPAINT', 'DATAMATICS', 'CMSINFO', 'CREDITACC', 'INGERRAND', 'HINDUNILVR', 'DREAMFOLKS', 'DYNAMATECH', 'RATNAMANI', 'BBTC', 'LTTS', 'ROUTE', 'KSB', 'ELECTCAST', 'RTNINDIA', 'HINDWAREAP', 'KIMS', 'GMDCLTD', 'KOTAKBANK', 'RITES', 'IPL', 'RELIANCE', 'BIKAJI', 'BECTORFOOD', 'GRAVITA', 'GABRIEL', 'SAREGAMA', 'TEXRAIL', 'DEEPAKNTR', 'MOTHERSON', 'JKPAPER', 'BHARTIARTL', 'NTPC', 'RALLIS', 'KIRLOSBROS', 'ISEC', 'EVEREADY', 'STAR', 'EMAMILTD', 'DABUR', 'COLPAL', 'HAL', 'BORORENEW', 'MARICO', 'BERGEPAINT', 'RADICO', 'GRASIM', 'VTL', 'UPL', 'COROMANDEL', 'NESCO', 'NUVOCO', 'GLS', 'GMMPFAUDLR', 'ASHOKLEY', 'CGPOWER', 'AZAD', 'DCAL', 'IMAGICAA', 'HARSHA', 'ELECON', 'VENUSPIPES', 'BHARTIHEXA', 'WELENT', 'BRITANNIA', 'BAJAJCON', 'VBL', 'PVRINOX', 'TEAMLEASE', 'ICIL', 'YESBANK', 'POLYCAB', 'MAITHANALL', 'AXISBANK', 'BAJAJELEC', 'ITDCEM', 'JSL', 'AMIORG', 'REDTAPE', 'JCHAC', 'CESC', 'NIACL', 'DODLA', 'CRISIL', 'MRF', 'ACE', 'SCI', 'MAPMYINDIA', 'JBCHEPHARM', 'KEI', 'IEX', 'ORISSAMINE', 'KANSAINER', 'PRAJIND', 'SANGHIIND', 'LXCHEM', 'SUDARSCHEM', 'GANESHHOUC', 'IFCI', 'SOBHA', 'WESTLIFE', 'SHRIPISTON', 'CHENNPETRO', 'GHCL', 'ENTERO', 'ABREL', 'QUESS', 'IMFA', 'KAYNES', 'JKLAKSHMI', 'ANANDRATHI', 'BHARATFORG', 'LEMONTREE', 'TIPSMUSIC', 'PERSISTENT', 'CIGNITITEC', 'BAJAJHIND', 'DHANUKA', 'TANLA', 'KNRCON', 'INOXINDIA', 'JSWSTEEL', 'GMRAIRPORT', 'SAFARI', 'AMBUJACEM', 'FINCABLES', 'TATATECH', 'MUTHOOTFIN', 'OBEROIRLTY', 'EXIDEIND', 'HCG', 'IGL', 'APTUS', 'RAINBOW', 'NEOGEN', 'DIVISLAB', 'JIOFIN', 'TEJASNET', 'MSTCLTD', 'JPPOWER', 'MINDACORP', 'CYIENTDLM', 'SFL', 'RBA', 'AAVAS', 'TRIDENT', 'BOSCHLTD', 'SOUTHBANK', 'MCX', 'IRCTC', 'TECHNOE', 'BALAMINES', 'IDBI', 'GUJALKALI', 'NUVAMA', 'SUPREMEIND', 'SRF', 'NLCINDIA', 'DCBBANK', 'SUNDARMFIN', 'MOIL', 'APOLLOHOSP', 'LALPATHLAB', 'PIIND', 'TIMETECHNO', 'AADHARHFC', 'HAPPSTMNDS', 'PARKHOTELS', 'MUTHOOTMF', 'IRCON', 'AARTIIND', 'BRIGADE', 'CERA', 'BOMDYEING', 'DALBHARAT', 'ORIENTCEM', 'SUNTV', 'GODREJCP', 'ADANIPOWER', 'PRESTIGE', 'BANKINDIA', 'LODHA', 'TORNTPHARM', 'TCIEXP', 'DIXON', 'BIRLACORPN', 'BALMLAWRIE', 'HDFCAMC', 'CCL', 'JUBLINGREA', 'DELHIVERY', 'ERIS', 'WONDERLA', 'EMCURE', 'SHRIRAMFIN', 'SAMMAANCAP', 'PATELENG', 'PTC', 'CRAFTSMAN', 'POWERGRID', 'MRPL', 'CHAMBLFERT', 'ABFRL', 'TCS', 'MHRIL', 'LUXIND', 'SAMHI', 'MANAPPURAM', 'ARVIND', '360ONE', 'ISGEC', 'INDIACEM', 'HNDFDS', 'POONAWALLA', 'ZEEL', 'SUNTECK', 'CENTURYPLY', 'BASF', 'SULA', 'BANDHANBNK', 'SBICARD', 'JAIBALAJI', 'CYIENT', 'ULTRACEMCO', 'GPIL', 'TATAELXSI', 'WELSPUNLIV', 'RAILTEL', 'HUDCO', 'STYLAMIND', 'FINEORG', 'ANURAS', 'TITAN', 'SANOFI', 'MGL', 'PAGEIND', 'GILLETTE', 'MAHABANK', 'KESORAMIND', 'DHANI', 'CARTRADE', 'SOLARINDS', 'PNB', 'FORCEMOT', 'VGUARD', 'FEDERALBNK', 'IOB', 'INOXGREEN', 'EIHOTEL', 'CANBK', 'GOPAL', 'ASTRAZEN', 'VOLTAS', 'FDC', 'GRINDWELL', 'JUSTDIAL', 'BALRAMCHIN', 'PIDILITIND', 'ASAHIINDIA', 'SANGHVIMOV', 'BAYERCROP', 'WHIRLPOOL', 'JUNIPER', 'GLAND', 'CUB', 'HCLTECH', 'ANGELONE', 'LT', 'MPHASIS', 'DELTACORP', 'AETHER', 'RCF', 'NAUKRI', 'LICI', 'GODREJIND', 'GOKEX', 'BOROLTD', 'IRFC', 'RVNL', 'EQUITASBNK', 'LINDEINDIA', 'NYKAA', 'MOTILALOFS', 'SBILIFE', 'HCC', 'RENUKA', 'NFL', 'GNFC', 'PNBHOUSING', 'ABCAPITAL', 'JAICORPLTD', 'JKCEMENT', 'CASTROLIND', 'OIL', 'PNCINFRA', 'TVSMOTOR', 'ZOMATO', 'AARTIDRUGS', 'BLUEJET', 'DLF', 'GATEWAY', 'ATUL', 'EMBDL', 'COFORGE', 'KALYANKJIL', 'BPCL', 'RAIN', 'APARINDS', 'RAMKY', 'UCOBANK', 'SCHNEIDER', 'INDUSTOWER', 'NAVINFLUOR', 'DBREALTY', 'VSTIND', 'ZYDUSWELL', 'HEROMOTOCO', 'BANKBARODA', 'RAMCOCEM', 'GODREJPROP', 'RAYMOND', 'ROLEXRINGS', 'WSTCSTPAPR', 'INDHOTEL', 'RAJESHEXPO', 'RBLBANK', 'ASTRAL', 'HAPPYFORGE', 'CELLO', 'HDFCLIFE', 'PPLPHARMA', 'ADANIPORTS', 'IDEA', 'INDIGOPNTS', 'JWL', 'UNOMINDA', 'ALOKINDS', 'TATASTEEL', 'GOCOLORS', 'UNIONBANK', 'PETRONET', 'BEL', 'ADVENZYMES', 'CSBBANK', 'ACC', 'SHREECEM', 'JSWENERGY', 'IOC', 'APOLLOTYRE', 'SUBROS', 'MFSL', 'INDIGO', 'IRB', 'TIINDIA', 'NH', 'ADANIGREEN', 'STLTECH', 'GRANULES', 'GSFC', 'ALKYLAMINE', 'OLECTRA', 'TATACHEM', 'TATAPOWER', 'UTKARSHBNK', 'IREDA', 'TORNTPOWER', 'RELINFRA', 'JAMNAAUTO', 'J&KBANK', 'NAM-INDIA', 'LTIM', 'ONGC', 'CONCORDBIO', 'PFIZER', 'TATACOMM', 'SJVN', 'CENTRALBK', 'ABB', 'GREENPANEL', 'GUJGASLTD', 'HONASA', 'COALINDIA', 'SBIN', 'SWSOLAR', 'SUMICHEM', 'OPTIEMUS', 'HFCL', 'HINDOILEXP', 'RESPONIND', 'CDSL', 'TATAINVEST', '3MINDIA', 'MAHSEAMLES', 'HAVELLS', 'NATIONALUM', 'MEDANTA', 'MANKIND', 'INOXWIND', 'VAIBHAVGBL', 'SUZLON', 'IIFLCAPS', 'TIMKEN', 'GRWRHITECH', 'JINDALSTEL', 'ELGIEQUIP', 'SAIL', 'HINDALCO', 'PGHH', 'PURVA', 'CUMMINSIND', 'NCC', 'JBMA', 'EMIL', 'YATHARTH', 'ICICIGI', 'PHOENIXLTD', 'NIITMTS', 'ALLCARGO', 'TI', 'DISHTV', 'NSLNISP', 'ICICIPRULI', 'ITI', 'THERMAX', 'KPRMILL', 'STARHEALTH', 'VEDL', 'PRICOLLTD', 'KEC', 'RECLTD', 'NHPC', 'PFC', 'GSPL', 'KALAMANDIR', 'JTLIND', 'REDINGTON', 'SIEMENS', 'HEMIPROP', 'TITAGARH', 'MAZDOCK', 'HINDPETRO', 'DEEPAKFERT', 'SARDAEN', 'AVANTIFEED', 'MAXHEALTH', 'BHEL', 'EASEMYTRIP', 'SONATSOFTW', 'GAIL', 'VESUVIUS', 'IFBIND', 'ZENTEC', 'HONAUT', 'VIJAYA', 'TDPOWERSYS', 'KSL', 'GVT&D', 'DBL', 'NMDC', 'GAEL', 'SINDHUTRAD', 'ORIENTELEC', 'HINDCOPPER', 'BSE', 'TIIL', 'PGHL', 'SHAREINDIA', 'SPLPETRO', 'AGI', 'SUNFLAG', 'NEWGEN', 'INTELLECT', 'KFINTECH', 'GODFRYPHLP', 'BLUEDART', 'AMBER', 'RELIGARE', 'ODIGMA']


for symbol in call_list:

	data_day = tsl.get_historical_data(tradingsymbol = symbol.upper(),exchange = 'NSE',timeframe="5")
	print(data_day)

1 Like

Hi @SUDHANSU_SEKHAR_MAHA

We are now using easier method to get LTP,

do check : Learn Algo Trading with Python | Codes | Youtube Series - #952 by Tradehull_Imran

problem solved about import talib error i resolved. thank you sir

PS C:\Users\azure> & C:/Users/azure/AppData/Local/Programs/Python/Python38/python.exe "c:/Users/azure/OneDrive/Desktop/Desktop Kiran/TRADEHULL/Session 1-20241223T071559Z-001/Session 1/Session 1/Session 1 - My Dhan.py"
Codebase Version 3
-----Logged into Dhan-----
reading existing file all_instrument 2024-12-24.csv
Got the instrument file
buy 
buy 
PS C:\Users\azure> 
 *  History restored 

PS C:\Users\azure> 
1 Like