how can i fetch strike price of futures stock


  • 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