Navigation

    SmartAPI Forum
    • Register
    • Login
    • Search
    • Categories
    • Popular
    • Groups
    • FAQs
    • API Docs

    how can i fetch strike price of futures stock

    Python SDK
    0
    1
    37
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      Prasanna.k last edited by

      url = "https://margincalculator.angelbroking.com/OpenAPI_File/files/OpenAPIScripMaster.json"

      Read the JSON file and store it as a DataFrame

      df = pd.read_json(url)
      df1 = df[df['exch_seg'] == 'NFO']# retrieve only nfo segment

      print (df1)

      df1.to_csv('NFO.csv', index=True)

      df2 = df1[(df1['instrumenttype'] == 'FUTSTK') & (df1['expiry'] == '27JUL2023')]#retrive only option stock

      df2.to_csv('NFOOPTSTK.csv', index=False)

      print (df2)

      df2.loc['expiry'] = pd.to_datetime(df2['expiry'] ) #to sort according to expiry

      expdt = df2.sort_values('expiry') #to sort according to expiry

      print (expdt)

      expdt.to_csv('sortedexp.csv', index=False)

      Filter the DataFrame based on the condition

      assingn_value = df2[(df2['instrumenttype'] == 'FUTSTK')]

      tokens = assingn_value['token'].tolist()
      symbols = assingn_value['symbol'].tolist()
      names = assingn_value['name'].tolist()
      instrument_types = assingn_value['instrumenttype'].tolist()
      exch_types = assingn_value['exch_seg'].tolist()
      lot_size = assingn_value['lotsize'].tolist()

      print(names, lot_size, symbols)

      combined_data = list(zip(tokens, symbols, names, instrument_types, exch_types, lot_size))

      print("Combined Data:", combined_data) # Check if combined_data has any data

      for row in combined_data:

      print(*row)

      for one stock or symbol

      try:

      ltp = smartApi.ltpData('NFO', symbols[1], tokens[1])

      print(ltp)

      except Exception as e:

      print("Error fetching LTP data:", e)

      for multiple stock using DF

      ltp_data_list = []

      try:
      for i in range(len(symbols)):
      # Assuming the JSON data is returned by smartApi.ltpData function
      ltp_data = smartApi.ltpData('NFO', symbols[i], tokens[i])

          # Extract relevant data from the JSON
          exchange = ltp_data['data']['exchange']
          tradingsymbol = ltp_data['data']['tradingsymbol']
          symboltoken = ltp_data['data']['symboltoken']
          open_price = ltp_data['data']['open']
          high_price = ltp_data['data']['high']
          low_price = ltp_data['data']['low']
          close_price = ltp_data['data']['close']
          ltp = ltp_data['data']['ltp']
          lotsize = lot_size[i]
      
          # Append data to the list
          ltp_data_list.append({
              'Exchange': exchange,
              'symbol': tradingsymbol,
              'Exchange' : exchange,
              'token': symboltoken,
              'Open': open_price,
              'High': high_price,
              'Low': low_price,
              'Close': close_price,
              'LTP': ltp,
              'lotsize' :lot_size[i]
          })
      
          # Optional: print each symbol and LTP
          # print("Symbol: {} | LTP: {}".format(symbols[i], ltp))
      

      except Exception as e:
      print("Error fetching LTP data:", e)

      Create a DataFrame

      ltp_df = pd.DataFrame(ltp_data_list)

      print(ltp_df)

      ltp_df.to_csv ('ltp.csv', index= False )

      filtered_stocks = ltp_df[I will write condition ] I want to fetch strike price of stock how can i

      1 Reply Last reply Reply Quote 0
      • First post
        Last post