Not able to place orders in sensex, via the v2 place_order api

import requests
from dotenv import load_dotenv
import datetime
import os
import time

load_dotenv()

url = 'https://api.upstox.com/v2/order/place'
headers = {
    'Content-Type': 'application/json',
    'Accept': 'application/json',
    'Authorization': f'Bearer {os.getenv("access_token")}',
}

def placeOrder(qty,instrument_token,transaction_type):
    data = {
    'quantity': qty,
    'product': 'D',
    'validity': 'DAY',
    'price': 0,
    'tag': 'string',
    'instrument_token':instrument_token,
    'order_type': 'MARKET',
    'transaction_type': transaction_type,
    'disclosed_quantity': 0,
    'trigger_price': 0,
    'is_amo': False,
    }

    try:
        # Send the POST request
        response = requests.post(url, json=data, headers=headers)
        print(f'Order Placed with lotSize: {qty} instrumentKey: {instrument_token} transactionType : {transaction_type}')
        # Print the response status code and body
        print('Response Code:', response.status_code)
        print('Response Body:', response.json())

    except Exception as e:
        # Handle exceptions
        print('Error:', str(e))
placeOrder(10,'BSE_FO|875146','BUY')
time.sleep(0.25)
placeOrder(10,'BSE_FO|875146','SELL')

This is the response that I have got, what do I change to place orders here?

Response Code: 400
Response Body: {‘status’: ‘error’, ‘errors’: [{‘errorCode’: ‘UDAPI100500’, ‘message’: ‘Market (M) orders are not allowed on this scrip.’, ‘propertyPath’: None, ‘invalidValue’: None, ‘error_code’: ‘UDAPI100500’, ‘property_path’: None, ‘invalid_value’: None}]}
Order Placed with lotSize: 10 instrumentKey: BSE_FO|875146 transactionType : SELL
Response Code: 400
Response Body: {‘status’: ‘error’, ‘errors’: [{‘errorCode’: ‘UDAPI100500’, ‘message’: ‘Market (M) orders are not allowed on this scrip.’, ‘propertyPath’: None, ‘invalidValue’: None, ‘error_code’: ‘UDAPI100500’, ‘property_path’: None, ‘invalid_value’: None}]}
PS C:\Users\mskas\OneDrive\Desktop\AlgoTrading>

@mskasan30 Currently BSE_FO market orders are disabled as per the compliance requirement, please try with the limit orders instead.

@Anand_Sajankar is there a possibility that this might be enabled? cause limit order will mess up the entire logic

@mskasan30 We’ll inquire with the appropriate team and provide an update once we have any information.
Thanks

sir now market orders are accepted but idont know how to fetch historical data for sensex i have given below my code kindly advice how to modify it

Import necessary modules

import asyncio
import json
import ssl
import upstox_client
import websockets
from google.protobuf.json_format import MessageToDict
from zipfile import ZipFile
import requests
import os
from csv import DictReader
import pandas as pd
import csv
from flask import Flask, request
import threading
import ast
import re
import helper_upstox as helper
import MarketDataFeed_pb2 as pb

access_token = open(“upstox_access_token.txt”, ‘r’).read()
print(access_token)
instr_dir = ‘/csvs’ #'./csvs" for mac
instr_token_dict = {}
instr_ltp_dict = {}

nf_expiry=helper.getNiftyExpiryDate()
bnf_expiry = helper.getBankNiftyExpiryDate()
fin_expiry = helper.getFinNiftyExpiryDate()

#Put all options in the beginning
symbolList1 = [
‘NSE_INDEX|Nifty 50’,
‘NSE_INDEX|Nifty Bank’,
‘NSE_INDEX|NIFTY MID SELECT’,
‘NSE_INDEX|Nifty Fin Service’,
‘MCX_FO|CRUDEOIL’,
‘CDS_FO|USDINR’,
‘BSE_FO|SENSEX’,
‘BSE_FO|822663’

]

app = Flask(name)

def get_ltp(api_version, configuration, instrument_key):
api_instance = upstox_client.MarketQuoteApi(
upstox_client.ApiClient(configuration))
api_response = api_instance.ltp(instrument_key, api_version)

parsed = ast.literal_eval(str(api_response))

return parsed

def get_market_data_feed_authorize(api_version, configuration):
“”“Get authorization for market data feed.”“”
api_instance = upstox_client.WebsocketApi(
upstox_client.ApiClient(configuration))
api_response = api_instance.get_market_data_feed_authorize(api_version)
return api_response

def decode_protobuf(buffer):
“”“Decode protobuf message.”“”
feed_response = pb.FeedResponse()
feed_response.ParseFromString(buffer)
return feed_response

def download_csv(url):
r = requests.get(url, allow_redirects=True)

if not os.path.isdir(instr_dir):
    os.mkdir(instr_dir)

filepath = f"{instr_dir}/{url.split('/')[-1]}"

open(filepath, 'wb').write(r.content)

def csv_process():
global instr_token_dict

download_csv("https://assets.upstox.com/market-quote/instruments/exchange/complete.csv.gz")

# open file in read mode
df = pd.read_csv(f"{instr_dir}/complete.csv.gz", delimiter=",", quoting=csv.QUOTE_NONE)
df.to_csv(f"{instr_dir}/temp.csv")

with open(f"{instr_dir}/temp.csv", newline='') as csvfile:
    row_csv = csv.DictReader(csvfile, delimiter=',')
    for row in row_csv:
        instr_token_dict[row['"tradingsymbol"'].replace('"', '')] = row['"instrument_key"'].replace('"', '')

async def fetch_market_data():
global symbolList1

"""Fetch market data using WebSocket and print it."""
csv_process()

# Configure OAuth2 access token for authorization
configuration = upstox_client.Configuration()

api_version = '2.0'
configuration.access_token = access_token

nf_intExpiry = nf_expiry
bnf_intExpiry = bnf_expiry
fin_intExpiry = fin_expiry
strikeList = []
symbolList = []

#NIFTY
ltp = get_ltp(api_version, configuration, "NSE_INDEX|Nifty 50")
a = float(ltp['data']['NSE_INDEX:Nifty 50']['last_price'])

for i in range(-5, 5):
    strike = (int(a / 100) + i) * 100
    strikeList.append(strike)
    strikeList.append(strike+50)

#Add CE
for strike in strikeList:
    ltp_option = "NIFTY" + str(nf_intExpiry)+str(strike)+"CE"
    symbolList.append(ltp_option)

#Add PE
for strike in strikeList:
    ltp_option = "NIFTY" + str(nf_intExpiry)+str(strike)+"PE"
    symbolList.append(ltp_option)

strikeList=[]

#BANKNIFTY
ltp = get_ltp(api_version, configuration, "NSE_INDEX|Nifty Bank")
a = float(ltp['data']['NSE_INDEX:Nifty Bank']['last_price'])

for i in range(-5, 5):
    strike = (int(a / 100) + i) * 100
    strikeList.append(strike)

#Add CE
for strike in strikeList:
    ltp_option = "BANKNIFTY" + str(bnf_intExpiry)+str(strike)+"CE"
    symbolList.append(ltp_option)

#Add PE
for strike in strikeList:
    ltp_option = "BANKNIFTY" + str(bnf_intExpiry)+str(strike)+"PE"
    symbolList.append(ltp_option)

#FINNIFTY
strikeList=[]
ltp = get_ltp(api_version, configuration, "NSE_INDEX|Nifty Fin Service")
a = float(ltp['data']['NSE_INDEX:Nifty Fin Service']['last_price'])

for i in range(-5, 5):
    strike = (int(a / 100) + i) * 100
    strikeList.append(strike)
    strikeList.append(strike+50)

#Add CE
for strike in strikeList:
    ltp_option = "FINNIFTY" + str(fin_intExpiry)+str(strike)+"CE"
    symbolList.append(ltp_option)

#Add PE
for strike in strikeList:
    ltp_option = "FINNIFTY" + str(fin_intExpiry)+str(strike)+"PE"
    symbolList.append(ltp_option)


symbolList = symbolList + symbolList1
# symbolList = symbolList1
print("BELOW IS THE COMPLETE INSTRUMENT LIST")
print(symbolList)
backup_symbolList = symbolList[:]
count = 0

for symbol in symbolList:
    opt_search = re.search(r"(\d{2})(\w{3})((\d+)|(\d+\.\d+))(CE|PE)", symbol)
    fut_search = re.search(r"(\d{2}\w{3})(FUT)", symbol)

    if opt_search or fut_search:
        symbolList[count] = instr_token_dict[symbol]
    
    count += 1

#print(instr_token_dict)
print(symbolList)

symbol_dict = dict(zip(symbolList, backup_symbolList))
print(symbol_dict)

###### INPUTS END ######

# Create default SSL context
ssl_context = ssl.create_default_context()
ssl_context.check_hostname = False
ssl_context.verify_mode = ssl.CERT_NONE

# Get market data feed authorization
response = get_market_data_feed_authorize(
    api_version, configuration)

# Connect to the WebSocket with SSL context
async with websockets.connect(response.data.authorized_redirect_uri, ssl=ssl_context) as websocket:
    print('Connection established successfully Ganapathy bappa bhoria')

    await asyncio.sleep(1)  # Wait for 1 second

    # Data to be sent over the WebSocket
    data = {
        "guid": "someguid",
        "method": "sub",
        "data": {
            "mode": "full",
            "instrumentKeys": symbolList
        }
    }

    # Convert data to binary and send over WebSocket
    binary_data = json.dumps(data).encode('utf-8')
    await websocket.send(binary_data)

    # Continuously receive and decode data from WebSocket
    while True:
        message = await websocket.recv()
        decoded_data = decode_protobuf(message)

        # Convert the decoded data to a dictionary
        data_dict = MessageToDict(decoded_data)

        # print(data_dict['feeds'])
        for stock in instr_ltp_dict:
            print(f"{symbol_dict[stock]}: {instr_ltp_dict[stock]}")
            pass

        #print("---------------------------------")

        # Print the dictionary representation
        for key in data_dict['feeds']:
            try:
                if data_dict['feeds'][key]['ff'].get('marketFF') != None:
                    instr_ltp_dict[key] = float(data_dict['feeds'][key]['ff']['marketFF']['ltpc']['ltp'])
                else:
                    instr_ltp_dict[key] = float(data_dict['feeds'][key]['ff']['indexFF']['ltpc']['ltp'])

            except Exception as e:
                print(e)

@app.route(‘/ltp’)
def getLTP():
try:
instrument = request.args.get(‘instrument’)
ltp = 0

    print(instrument)

    if instr_token_dict.get(instrument) != None:
        ltp = instr_ltp_dict[instr_token_dict.get(instrument)]
    else:
        ltp = instr_ltp_dict[instrument]

    print("ltp:", ltp)
    
    return {
        "ltp": ltp
    }

except Exception as e:
    return {
        "error": str(e)
    }

def startServer():
print(“Inside startServer()”)
app.run(host=‘0.0.0.0’, port=4000)

def main():
print(“Inside main()”)
t1 = threading.Thread(target=startServer)
t1.start()

try:
    # Execute the function to fetch market data
    asyncio.run(fetch_market_data())
except Exception as e:
    print("Exception while connection to socket->socket: %s\n" % e)

main()

here is the out put
BELOW IS THE COMPLETE INSTRUMENT LIST
[‘NIFTY2482223600CE’, ‘NIFTY2482223650CE’, ‘NIFTY2482223700CE’, ‘NIFTY2482223750CE’, ‘NIFTY2482223800CE’, ‘NIFTY2482223850CE’, ‘NIFTY2482223900CE’, ‘NIFTY2482223950CE’, ‘NIFTY2482224000CE’, ‘NIFTY2482224050CE’, ‘NIFTY2482224100CE’, ‘NIFTY2482224150CE’, ‘NIFTY2482224200CE’, ‘NIFTY2482224250CE’, ‘NIFTY2482224300CE’, ‘NIFTY2482224350CE’, ‘NIFTY2482224400CE’, ‘NIFTY2482224450CE’, ‘NIFTY2482224500CE’, ‘NIFTY2482224550CE’, ‘NIFTY2482223600PE’, ‘NIFTY2482223650PE’, ‘NIFTY2482223700PE’, ‘NIFTY2482223750PE’, ‘NIFTY2482223800PE’, ‘NIFTY2482223850PE’, ‘NIFTY2482223900PE’, ‘NIFTY2482223950PE’, ‘NIFTY2482224000PE’, ‘NIFTY2482224050PE’, ‘NIFTY2482224100PE’, ‘NIFTY2482224150PE’, ‘NIFTY2482224200PE’, ‘NIFTY2482224250PE’, ‘NIFTY2482224300PE’, ‘NIFTY2482224350PE’, ‘NIFTY2482224400PE’, ‘NIFTY2482224450PE’, ‘NIFTY2482224500PE’, ‘NIFTY2482224550PE’, ‘BANKNIFTY2482149200CE’, ‘BANKNIFTY2482149300CE’, ‘BANKNIFTY2482149400CE’, ‘BANKNIFTY2482149500CE’, ‘BANKNIFTY2482149600CE’, ‘BANKNIFTY2482149700CE’, ‘BANKNIFTY2482149800CE’, ‘BANKNIFTY2482149900CE’, ‘BANKNIFTY2482150000CE’, ‘BANKNIFTY2482150100CE’, ‘BANKNIFTY2482149200PE’, ‘BANKNIFTY2482149300PE’, ‘BANKNIFTY2482149400PE’, ‘BANKNIFTY2482149500PE’, ‘BANKNIFTY2482149600PE’, ‘BANKNIFTY2482149700PE’, ‘BANKNIFTY2482149800PE’, ‘BANKNIFTY2482149900PE’, ‘BANKNIFTY2482150000PE’, ‘BANKNIFTY2482150100PE’, ‘FINNIFTY2482022000CE’, ‘FINNIFTY2482022050CE’, ‘FINNIFTY2482022100CE’, ‘FINNIFTY2482022150CE’, ‘FINNIFTY2482022200CE’, ‘FINNIFTY2482022250CE’, ‘FINNIFTY2482022300CE’, ‘FINNIFTY2482022350CE’, ‘FINNIFTY2482022400CE’, ‘FINNIFTY2482022450CE’, ‘FINNIFTY2482022500CE’, ‘FINNIFTY2482022550CE’, ‘FINNIFTY2482022600CE’, ‘FINNIFTY2482022650CE’, ‘FINNIFTY2482022700CE’, ‘FINNIFTY2482022750CE’, ‘FINNIFTY2482022800CE’, ‘FINNIFTY2482022850CE’, ‘FINNIFTY2482022900CE’, ‘FINNIFTY2482022950CE’, ‘FINNIFTY2482022000PE’, ‘FINNIFTY2482022050PE’, ‘FINNIFTY2482022100PE’, ‘FINNIFTY2482022150PE’, ‘FINNIFTY2482022200PE’, ‘FINNIFTY2482022250PE’, ‘FINNIFTY2482022300PE’, ‘FINNIFTY2482022350PE’, ‘FINNIFTY2482022400PE’, ‘FINNIFTY2482022450PE’, ‘FINNIFTY2482022500PE’, ‘FINNIFTY2482022550PE’, ‘FINNIFTY2482022600PE’, ‘FINNIFTY2482022650PE’, ‘FINNIFTY2482022700PE’, ‘FINNIFTY2482022750PE’, ‘FINNIFTY2482022800PE’, ‘FINNIFTY2482022850PE’, ‘FINNIFTY2482022900PE’, ‘FINNIFTY2482022950PE’, ‘NSE_INDEX|Nifty 50’, ‘NSE_INDEX|Nifty Bank’, ‘NSE_INDEX|NIFTY MID SELECT’, ‘NSE_INDEX|Nifty Fin Service’, ‘MCX_FO|CRUDEOIL’, ‘CDS_FO|USDINR’, ‘BSE_FO|SENSEX’, ‘BSE_FO|822663’]
[‘NSE_FO|36610’, ‘NSE_FO|36613’, ‘NSE_FO|36621’, ‘NSE_FO|36623’, ‘NSE_FO|36626’, ‘NSE_FO|36646’, ‘NSE_FO|36659’, ‘NSE_FO|36664’, ‘NSE_FO|36671’, ‘NSE_FO|36682’, ‘NSE_FO|36686’, ‘NSE_FO|36703’, ‘NSE_FO|36707’, ‘NSE_FO|36710’, ‘NSE_FO|36740’, ‘NSE_FO|36742’, ‘NSE_FO|36750’, ‘NSE_FO|36754’, ‘NSE_FO|36758’, ‘NSE_FO|36760’, ‘NSE_FO|36612’, ‘NSE_FO|36620’, ‘NSE_FO|36622’, ‘NSE_FO|36624’, ‘NSE_FO|36644’, ‘NSE_FO|36656’, ‘NSE_FO|36663’, ‘NSE_FO|36670’, ‘NSE_FO|36681’, ‘NSE_FO|36685’, ‘NSE_FO|36701’, ‘NSE_FO|36706’, ‘NSE_FO|36708’, ‘NSE_FO|36739’, ‘NSE_FO|36741’, ‘NSE_FO|36749’, ‘NSE_FO|36753’, ‘NSE_FO|36757’, ‘NSE_FO|36759’, ‘NSE_FO|36763’, ‘NSE_FO|58412’, ‘NSE_FO|58414’, ‘NSE_FO|58416’, ‘NSE_FO|58418’, ‘NSE_FO|58420’, ‘NSE_FO|58422’, ‘NSE_FO|58424’, ‘NSE_FO|58427’, ‘NSE_FO|58431’, ‘NSE_FO|58433’, ‘NSE_FO|58413’, ‘NSE_FO|58415’, ‘NSE_FO|58417’, ‘NSE_FO|58419’, ‘NSE_FO|58421’, ‘NSE_FO|58423’, ‘NSE_FO|58425’, ‘NSE_FO|58428’, ‘NSE_FO|58432’, ‘NSE_FO|58434’, ‘NSE_FO|59086’, ‘NSE_FO|59098’, ‘NSE_FO|59104’, ‘NSE_FO|59106’, ‘NSE_FO|59110’, ‘NSE_FO|59112’, ‘NSE_FO|59114’, ‘NSE_FO|59118’, ‘NSE_FO|59120’, ‘NSE_FO|59122’, ‘NSE_FO|59124’, ‘NSE_FO|59126’, ‘NSE_FO|59128’, ‘NSE_FO|59132’, ‘NSE_FO|59134’, ‘NSE_FO|59136’, ‘NSE_FO|59138’, ‘NSE_FO|59140’, ‘NSE_FO|59142’, ‘NSE_FO|59144’, ‘NSE_FO|59097’, ‘NSE_FO|59103’, ‘NSE_FO|59105’, ‘NSE_FO|59109’, ‘NSE_FO|59111’, ‘NSE_FO|59113’, ‘NSE_FO|59117’, ‘NSE_FO|59119’, ‘NSE_FO|59121’, ‘NSE_FO|59123’, ‘NSE_FO|59125’, ‘NSE_FO|59127’, ‘NSE_FO|59131’, ‘NSE_FO|59133’, ‘NSE_FO|59135’, ‘NSE_FO|59137’, ‘NSE_FO|59139’, ‘NSE_FO|59141’, ‘NSE_FO|59143’, ‘NSE_FO|59145’, ‘NSE_INDEX|Nifty 50’, ‘NSE_INDEX|Nifty Bank’, ‘NSE_INDEX|NIFTY MID SELECT’, ‘NSE_INDEX|Nifty Fin Service’, ‘MCX_FO|CRUDEOIL’, ‘CDS_FO|USDINR’, ‘BSE_FO|SENSEX’, ‘BSE_FO|822663’]
{‘NSE_FO|36610’: ‘NIFTY2482223600CE’, ‘NSE_FO|36613’: ‘NIFTY2482223650CE’, ‘NSE_FO|36621’: ‘NIFTY2482223700CE’, ‘NSE_FO|36623’: ‘NIFTY2482223750CE’, ‘NSE_FO|36626’: ‘NIFTY2482223800CE’, ‘NSE_FO|36646’: ‘NIFTY2482223850CE’, ‘NSE_FO|36659’: ‘NIFTY2482223900CE’, ‘NSE_FO|36664’: ‘NIFTY2482223950CE’, ‘NSE_FO|36671’: ‘NIFTY2482224000CE’, ‘NSE_FO|36682’: ‘NIFTY2482224050CE’, ‘NSE_FO|36686’: ‘NIFTY2482224100CE’, ‘NSE_FO|36703’: ‘NIFTY2482224150CE’, ‘NSE_FO|36707’: ‘NIFTY2482224200CE’, ‘NSE_FO|36710’: ‘NIFTY2482224250CE’, ‘NSE_FO|36740’: ‘NIFTY2482224300CE’, ‘NSE_FO|36742’: ‘NIFTY2482224350CE’, ‘NSE_FO|36750’: ‘NIFTY2482224400CE’, ‘NSE_FO|36754’: ‘NIFTY2482224450CE’, ‘NSE_FO|36758’: ‘NIFTY2482224500CE’, ‘NSE_FO|36760’: ‘NIFTY2482224550CE’, ‘NSE_FO|36612’: ‘NIFTY2482223600PE’, ‘NSE_FO|36620’: ‘NIFTY2482223650PE’, ‘NSE_FO|36622’: ‘NIFTY2482223700PE’, ‘NSE_FO|36624’: ‘NIFTY2482223750PE’, ‘NSE_FO|36644’: ‘NIFTY2482223800PE’, ‘NSE_FO|36656’: ‘NIFTY2482223850PE’, ‘NSE_FO|36663’: ‘NIFTY2482223900PE’, ‘NSE_FO|36670’: ‘NIFTY2482223950PE’, ‘NSE_FO|36681’: ‘NIFTY2482224000PE’, ‘NSE_FO|36685’: ‘NIFTY2482224050PE’, ‘NSE_FO|36701’: ‘NIFTY2482224100PE’, ‘NSE_FO|36706’: ‘NIFTY2482224150PE’, ‘NSE_FO|36708’: ‘NIFTY2482224200PE’, ‘NSE_FO|36739’: ‘NIFTY2482224250PE’, ‘NSE_FO|36741’: ‘NIFTY2482224300PE’, ‘NSE_FO|36749’: ‘NIFTY2482224350PE’, ‘NSE_FO|36753’: ‘NIFTY2482224400PE’, ‘NSE_FO|36757’: ‘NIFTY2482224450PE’, ‘NSE_FO|36759’: ‘NIFTY2482224500PE’, ‘NSE_FO|36763’: ‘NIFTY2482224550PE’, ‘NSE_FO|58412’: ‘BANKNIFTY2482149200CE’, ‘NSE_FO|58414’: ‘BANKNIFTY2482149300CE’, ‘NSE_FO|58416’: ‘BANKNIFTY2482149400CE’, ‘NSE_FO|58418’: ‘BANKNIFTY2482149500CE’, ‘NSE_FO|58420’: ‘BANKNIFTY2482149600CE’, ‘NSE_FO|58422’: ‘BANKNIFTY2482149700CE’, ‘NSE_FO|58424’: ‘BANKNIFTY2482149800CE’, ‘NSE_FO|58427’: ‘BANKNIFTY2482149900CE’, ‘NSE_FO|58431’: ‘BANKNIFTY2482150000CE’, ‘NSE_FO|58433’: ‘BANKNIFTY2482150100CE’, ‘NSE_FO|58413’: ‘BANKNIFTY2482149200PE’, ‘NSE_FO|58415’: ‘BANKNIFTY2482149300PE’, ‘NSE_FO|58417’: ‘BANKNIFTY2482149400PE’, ‘NSE_FO|58419’: ‘BANKNIFTY2482149500PE’, ‘NSE_FO|58421’: ‘BANKNIFTY2482149600PE’, ‘NSE_FO|58423’: ‘BANKNIFTY2482149700PE’, ‘NSE_FO|58425’: ‘BANKNIFTY2482149800PE’, ‘NSE_FO|58428’: ‘BANKNIFTY2482149900PE’, ‘NSE_FO|58432’: ‘BANKNIFTY2482150000PE’, ‘NSE_FO|58434’: ‘BANKNIFTY2482150100PE’, ‘NSE_FO|59086’: ‘FINNIFTY2482022000CE’, ‘NSE_FO|59098’: ‘FINNIFTY2482022050CE’, ‘NSE_FO|59104’: ‘FINNIFTY2482022100CE’, ‘NSE_FO|59106’: ‘FINNIFTY2482022150CE’, ‘NSE_FO|59110’: ‘FINNIFTY2482022200CE’, ‘NSE_FO|59112’: ‘FINNIFTY2482022250CE’, ‘NSE_FO|59114’: ‘FINNIFTY2482022300CE’, ‘NSE_FO|59118’: ‘FINNIFTY2482022350CE’, ‘NSE_FO|59120’: ‘FINNIFTY2482022400CE’, ‘NSE_FO|59122’: ‘FINNIFTY2482022450CE’, ‘NSE_FO|59124’: ‘FINNIFTY2482022500CE’, ‘NSE_FO|59126’: ‘FINNIFTY2482022550CE’, ‘NSE_FO|59128’: ‘FINNIFTY2482022600CE’, ‘NSE_FO|59132’: ‘FINNIFTY2482022650CE’, ‘NSE_FO|59134’: ‘FINNIFTY2482022700CE’, ‘NSE_FO|59136’: ‘FINNIFTY2482022750CE’, ‘NSE_FO|59138’: ‘FINNIFTY2482022800CE’, ‘NSE_FO|59140’: ‘FINNIFTY2482022850CE’, ‘NSE_FO|59142’: ‘FINNIFTY2482022900CE’, ‘NSE_FO|59144’: ‘FINNIFTY2482022950CE’, ‘NSE_FO|59097’: ‘FINNIFTY2482022000PE’, ‘NSE_FO|59103’: ‘FINNIFTY2482022050PE’, ‘NSE_FO|59105’: ‘FINNIFTY2482022100PE’, ‘NSE_FO|59109’: ‘FINNIFTY2482022150PE’, ‘NSE_FO|59111’: ‘FINNIFTY2482022200PE’, ‘NSE_FO|59113’: ‘FINNIFTY2482022250PE’, ‘NSE_FO|59117’: ‘FINNIFTY2482022300PE’, ‘NSE_FO|59119’: ‘FINNIFTY2482022350PE’, ‘NSE_FO|59121’: ‘FINNIFTY2482022400PE’, ‘NSE_FO|59123’: ‘FINNIFTY2482022450PE’, ‘NSE_FO|59125’: ‘FINNIFTY2482022500PE’, ‘NSE_FO|59127’: ‘FINNIFTY2482022550PE’, ‘NSE_FO|59131’: ‘FINNIFTY2482022600PE’, ‘NSE_FO|59133’: ‘FINNIFTY2482022650PE’, ‘NSE_FO|59135’: ‘FINNIFTY2482022700PE’, ‘NSE_FO|59137’: ‘FINNIFTY2482022750PE’, ‘NSE_FO|59139’: ‘FINNIFTY2482022800PE’, ‘NSE_FO|59141’: ‘FINNIFTY2482022850PE’, ‘NSE_FO|59143’: ‘FINNIFTY2482022900PE’, ‘NSE_FO|59145’: ‘FINNIFTY2482022950PE’, ‘NSE_INDEX|Nifty 50’: ‘NSE_INDEX|Nifty 50’, ‘NSE_INDEX|Nifty Bank’: ‘NSE_INDEX|Nifty Bank’, ‘NSE_INDEX|NIFTY MID SELECT’: ‘NSE_INDEX|NIFTY MID SELECT’, ‘NSE_INDEX|Nifty Fin Service’: ‘NSE_INDEX|Nifty Fin Service’, ‘MCX_FO|CRUDEOIL’: ‘MCX_FO|CRUDEOIL’, ‘CDS_FO|USDINR’: ‘CDS_FO|USDINR’, ‘BSE_FO|SENSEX’: ‘BSE_FO|SENSEX’, ‘BSE_FO|822663’: ‘BSE_FO|822663’}
Connection established successfully Ganapathy bappa bhoria