Websocket to obtain Order Status
-
As I understand from the documentation, we can use WebSockets to get information about any orders that get placed on my account (correct me if I'm wrong). If yes, can somewhere share how we can do this using Python SDK? I was able to obtain code only for Websocket streaming and couldn't find Python specific documentation
-
@rajanprabu Were you able to solve the issue and get the order update. can you please share the sample code if possible.
-
HI @webseos please find it below:
pip install smartapi-python
pip install websocket-client -
@admin Which Package to Install in python for WebSocket, the modulename please
e.g pip install ..... ?
-
@admin I fixed it myself. Thanks.
-
HI @rajanprabu Let us know when can we connect with you so that we can brief you on the requirement.
-
@admin Thanks of the update..
-
Hi @rajanprabu As coordinated with the team the example in doc seems to be explanatory to use it. We can connect with you to discuss on this.
-
Any update on this ? Any example code or ordering updates via data sockets ?
-
Thanks for the prompt response.. This would be of big help.
-
HI @techs @rajanprabu we have passed the requirement to the team to add the working example we will soon make it available to you.
-
Hi @admin and @SmartAPI_Angel ,
Sample code should be correct and concise code that your readers can quickly understand and easily reuse with minimal side effects.
The link you have shared is just a Websocket Order Status API documentation which doesn't have any working example code.Please share working python code which uses Websocket Order Status API
-
HI @rajanprabu ok we report this to the team and update you.
-
why can't you provide order updates via the data websocket like other API providers do. that will make our life so simple..
just add one more function like
on_order(ws, msg) print ( msg)
this would be the easiest for anyone rather than fiddling with establishing another websocket connects and send heart beat every minute.. pretty inefficient..
-
@techs @Ayush-Kumar @SmartAPI_Angel @admin @Ashok
here is what I have quickly tried
Try1: using asyncio
import websockets import asyncio import json with open('/Users/prabu/Angel_Broking/ab.json') as f: data = json.load(f) client_code = data['client_code'] api_key = data['api_key'] with open('/Users/prabu/Angel_Broking/ab_tokens.json') as f: data = json.load(f) feed_token = str(data['feedToken']) access_token = data['jwtToken'] refreshToken = data['refreshToken'] ws_request = { "actiontype" : "subscribe", "feedtype" : "order_feed", "jwttoken" : access_token, "clientcode" : client_code, "apikey" : api_key } async def listen(jwttoken, client_id, api_key,ws_request ) : url = "wss://smartapisocket.angelbroking.com/websocket?jwttoken=" + jwttoken + "&&clientcode=" + client_id + "&&apikey=" + api_key async with websockets.connect(url) as ws: # await ws.send(ws_request) msg = await ws.recv() print (msg) asyncio.get_event_loop().run_until_complete(listen(access_token, client_code, api_key, ws_request))
Try 2 : using websocket package
import websocket import json with open('/Users/prabu/Angel_Broking/ab.json') as f: data = json.load(f) client_code = data['client_code'] api_key = data['api_key'] with open('/Users/prabu/Angel_Broking/ab_tokens.json') as f: data = json.load(f) feed_token = str(data['feedToken']) access_token = data['jwtToken'] refreshToken = data['refreshToken'] ws_request = { "actiontype": "heartbeat", "feedtype": "order_feed", "jwttoken": access_token, "clientcode": client_code, "apikey": api_key } def on_msg(ws, msg): print(msg) def on_connect(ws, response,request=ws_request): print ( response) ws.send(request) def on_close(ws, code, reason): ws.stop() url = "wss://smartapisocket.angelbroking.com/websocket?jwttoken=" + access_token + "&&clientcode=" + client_code + "&&apikey=" + api_key # print (url) ws = websocket.WebSocketApp(url, on_open = on_connect, on_message= on_msg, on_close= on_close) ws.run_forever()
But Im not getting any response.. Could you please talk to your team and modify this to be a working example @admin ?
I know its not perfect and im missing something.. my aim is to provide some base for other users to try out and improve.
-
@admin said in Websocket to obtain Order Status:
Im aware that documentation exist for a long time.. but what we are asking is a working example..
-
Hi @rajanprabu please go through below doc
https://smartapi.angelbroking.com/docs/WebSocketOrderStatus -
Yes some working example would be useful to have. I wanted to spend sometime on this.. but never managed..
-
HI @techs We will report this to our team.
-
@SmartAPI_Angel Dear @admin , can you please provide an working example of Order Status python websocket by passing an order id or similar. I see multiple people requesting for the same but you guys don't have proper documentation for the same. Please help everyone by sharing proper working code samples.
Please don't share any generic link of your https://github.com/angelbroking-github/smartapi-python page.