Websocket Connection automatically closes after placing a order
-
Hi @Moderator_1 , @Moderator_2 , @Moderator_3
I am using Websocket to get the live feed. Now, upon reaching a specific LTP, I am placing a order. But after it, the websocket is getting automatically closed.
Here is a part of my logic inside on_data() method:symbol1 = "BANKNIFTY26JUN24"+str(strikePrice)+"CE"
symbol2 = "BANKNIFTY26JUN24"+str(strikePrice)+"PE"
orderParam1 = {
"variety": "NORMAL",
"tradingsymbol": symbol1,
"symboltoken": str(name_to_token[symbol1]),
"transactiontype": "SELL",
"exchange": "NFO",
"ordertype": "MARKET",
"producttype": "CARRYFORWARD",
"duration": "DAY",
"price": "0",
"squareoff": "0",
"stoploss": "0",
"quantity": "15"
}
orderParam2 = {
"variety": "NORMAL",
"tradingsymbol": symbol2,
"symboltoken": str(name_to_token[symbol2]),
"transactiontype": "SELL",
"exchange": "NFO",
"ordertype": "MARKET",
"producttype": "CARRYFORWARD",
"duration": "DAY",
"price": "0",
"squareoff": "0",
"stoploss": "0",
"quantity": "15"
}
orderCE = smartApi.placeOrder(orderParam1)
orderPE = smartApi.placeOrder(orderParam2)
orderPriceCE = currCE
orderPricePE = currPE
orderSymbolCE = symbol1
orderSymbolPE = symbol2
logger.info(orderCE)
logger.info(orderPE)Here is part of log file: -
I 240626 13:58:30 index:247] Ticks: {'subscription_mode': 1, 'exchange_type': 2, 'token': '59624', 'sequence_number': 43031516, 'exchange_timestamp': 1719390510000, 'last_traded_price': 14445, 'subscription_mode_val': 'LTP'}
[I 240626 13:58:30 index:247] Ticks: {'subscription_mode': 1, 'exchange_type': 2, 'token': '59623', 'sequence_number': 43031943, 'exchange_timestamp': 1719390510000, 'last_traded_price': 2870, 'subscription_mode_val': 'LTP'}
[I 240626 13:58:31 index:247] Ticks: {'subscription_mode': 1, 'exchange_type': 2, 'token': '63893', 'sequence_number': 43032659, 'exchange_timestamp': 1719390511000, 'last_traded_price': 7950, 'subscription_mode_val': 'LTP'}
[I 240626 13:58:31 index:247] Ticks: {'subscription_mode': 1, 'exchange_type': 2, 'token': '63893', 'sequence_number': 43032992, 'exchange_timestamp': 1719390511000, 'last_traded_price': 8055, 'subscription_mode_val': 'LTP'}
[I 240626 13:58:31 index:252] Prices Crossed! 52900:7975,8055
[I 240626 13:58:32 index:291] 240626001102493
[I 240626 13:58:32 index:292] 240626001102559
[W 240626 13:58:32 smartWebSocketV2:319] Attempting to resubscribe/reconnect (Attempt 1)..After logging the orderID, the websocket immediately gets closed. I have tried multiple times, it happens only after the last statement of on_data() has been executed. Its like it closes automatically as if It has nothing do more.
Kindly help me, I don't want it to get disconnected. -
@projectSB Hey, Thanks mate. I suspected the same issue. Thanks for the reply.
-
@rohit4417k Are you placing orders from the same thread as Websocket?
If yes, then it will disconnect as order placement makes the Websocket out of sync. Always, use a separate thread for monitoring data and placing orders etc. Your Websocket thread should ONLY fetch the data and store in some data structure.I had faced this issue, and this was my way of resolving it. Others might have different opinion as well.