as regarding subject matter i am continuously have to restart the connection..does anybody have any solution so that to auto reconnect here with posting python code...
fyerResponse, fyerValidation, access_token, FY_ID, profile_response, funds_response, holdings_response = getFyersResp()
if fyerResponse:
data_feed = {}
if True:
ws_symbols = ['NSE:TATACHEM-EQ', 'NSE:TATACHEM24MAYFUT', 'NSE:TATACHEM24JUNFUT', 'NSE:TATACHEM24JULFUT', 'NSE:METROPOLIS-EQ', 'NSE:METROPOLIS24MAYFUT', 'NSE:METROPOLIS24JUNFUT', 'NSE:METROPOLIS24JULFUT', 'NSE:INDIAMART-EQ', 'NSE:INDIAMART24MAYFUT', 'NSE:INDIAMART24JUNFUT', 'NSE:INDIAMART24JULFUT']
def onmessage(message):
global data_feed
# data_feed = message
data_feed['symbol'] = message["symbol"]
data_feed['ltp'] = message["ltp"]
data_feed['bid_price'] = message['bid_price']
data_feed['ask_price'] = message['ask_price']
data_feed['bid_size'] = message['bid_size']
data_feed['ask_size'] = message['ask_size']
data_feed['avg_trade_price'] = message['avg_trade_price']
print(f"'symbol': {data_feed['symbol']} - {data_feed['ltp']}")
update_excel_with_data_feed(data_feed)
# sleep(0.001)
def onOrder(message):
print("Order Response:", message)
def onerror(message):
print("Error:", message)
def onclose(message):
print("Connection closed:", message)
def onopen():
global ws_symbols
data_type = "SymbolUpdate"
fyers.subscribe(symbols=ws_symbols, data_type=data_type)
fyers.keep_running()
access_token = f"{FY_ID}-100:{access_token}"
fyers = data_ws.FyersDataSocket(
access_token=access_token,
log_path="",
litemode=False,
write_to_file=False,
reconnect=True,
on_connect=onopen,
on_close=onclose,
on_error=onerror,
on_message=onmessage
)
fyers.connect()
# resulting as follows
0 0
Error: KeyError: The key 'symbol' is missing in the response.
Error: KeyError: The key 'symbol' is missing in the response.
Error: KeyError: The key 'symbol' is missing in the response.
'symbol': NSE:METROPOLIS24JULFUT - 1857.1
'symbol': NSE:INDIAMART-EQ - 2588.75
'symbol': NSE:INDIAMART24MAYFUT - 2597.2
'symbol': NSE:METROPOLIS24MAYFUT - 1947.6
'symbol': NSE:METROPOLIS24JUNFUT - 1884.0
'symbol': NSE:METROPOLIS-EQ - 1937.35
'symbol': NSE:INDIAMART24JUNFUT - 2545.4
'symbol': NSE:TATACHEM-EQ - 1087.05
'symbol': NSE:TATACHEM24JUNFUT - 1062.35
'symbol': NSE:TATACHEM24MAYFUT - 1090.05
'symbol': NSE:INDIAMART24JULFUT - 2537.0
'symbol': NSE:TATACHEM24JULFUT - 1061.2
'symbol': NSE:TATACHEM24JUNFUT - 1062.35
'symbol': NSE:TATACHEM-EQ - 1087.05
'symbol': NSE:INDIAMART24MAYFUT - 2597.2
'symbol': NSE:INDIAMART24JUNFUT - 2545.4
'symbol': NSE:TATACHEM24MAYFUT - 1090.05
'symbol': NSE:INDIAMART-EQ - 2588.85
'symbol': NSE:INDIAMART24JUNFUT - 2545.4
'symbol': NSE:TATACHEM24JUNFUT - 1062.35
'symbol': NSE:INDIAMART24MAYFUT - 2597.2
'symbol': NSE:TATACHEM24MAYFUT - 1090.05
'symbol': NSE:INDIAMART24JUNFUT - 2545.4
'symbol': NSE:TATACHEM-EQ - 1087.05
'symbol': NSE:TATACHEM24JUNFUT - 1062.35
'symbol': NSE:TATACHEM24MAYFUT - 1090.05
'symbol': NSE:INDIAMART-EQ - 2588.85
'symbol': NSE:INDIAMART24MAYFUT - 2597.2
'symbol': NSE:TATACHEM-EQ - 1087.05
'symbol': NSE:TATACHEM24JUNFUT - 1062.35
'symbol': NSE:INDIAMART24JUNFUT - 2545.4
'symbol': NSE:TATACHEM24MAYFUT - 1090.05
'symbol': NSE:TATACHEM-EQ - 1087.0
'symbol': NSE:INDIAMART24MAYFUT - 2597.2
'symbol': NSE:METROPOLIS-EQ - 1937.35
'symbol': NSE:INDIAMART24JUNFUT - 2545.4
'symbol': NSE:TATACHEM-EQ - 1087.0
'symbol': NSE:TATACHEM24JUNFUT - 1062.35
'symbol': NSE:TATACHEM24MAYFUT - 1090.05
'symbol': NSE:INDIAMART24MAYFUT - 2597.2
'symbol': NSE:TATACHEM24JUNFUT - 1062.35
'symbol': NSE:TATACHEM24JULFUT - 1061.2
'symbol': NSE:METROPOLIS-EQ - 1936.2
'symbol': NSE:TATACHEM-EQ - 1087.0
'symbol': NSE:INDIAMART24JUNFUT - 2545.4
'symbol': NSE:TATACHEM24MAYFUT - 1090.05
'symbol': NSE:TATACHEM-EQ - 1087.05
'symbol': NSE:INDIAMART24MAYFUT - 2597.2
'symbol': NSE:TATACHEM24JUNFUT - 1062.35
'symbol': NSE:INDIAMART-EQ - 2588.75
'symbol': NSE:INDIAMART24JUNFUT - 2545.4
'symbol': NSE:TATACHEM-EQ - 1087.0
'symbol': NSE:TATACHEM24MAYFUT - 1090.05
'symbol': NSE:INDIAMART24MAYFUT - 2597.2
'symbol': NSE:METROPOLIS24MAYFUT - 1947.6
'symbol': NSE:METROPOLIS24JUNFUT - 1884.0
'symbol': NSE:TATACHEM24JUNFUT - 1062.35
'symbol': NSE:TATACHEM-EQ - 1087.0
'symbol': NSE:INDIAMART24MAYFUT - 2597.2
'symbol': NSE:INDIAMART24JUNFUT - 2545.4
'symbol': NSE:TATACHEM24MAYFUT - 1090.05
'symbol': NSE:TATACHEM24JUNFUT - 1062.35
'symbol': NSE:TATACHEM-EQ - 1087.0
'symbol': NSE:INDIAMART24MAYFUT - 2597.2
'symbol': NSE:INDIAMART24JUNFUT - 2545.4
'symbol': NSE:TATACHEM24JUNFUT - 1062.35
'symbol': NSE:TATACHEM24MAYFUT - 1090.05
Error: Connection to remote host was lost.
Attempting reconnect 1 of 5...
Error: can't create new thread at interpreter shutdown
it hardly works for a minute or two.. and crashes.. while updating xlsx file using function update_excel_with_data_feed() in onmessage() function..
i have best hardware with best network connectivity, using python 3.12.2, while having fyers version fyers-apiv3==3.1.0 , websocket-client==1.6.1 and websockets==11.0.3 libraries..
better if there's a boilerplate code to subscribe and unsubscribe and starting and stopping fyers websocket connection.. also appreciate if the coded using asyncio library for the external custom functions as in my case updating live data of instruments to excel file..