Navigation

    SmartAPI Forum
    • Register
    • Login
    • Search
    • Categories
    • Popular
    • Groups
    • FAQs
    • API Docs

    Websocket to obtain Order Status

    Python SDK
    6
    23
    347
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      admin @Surya 1 last edited by

      Hi @rajanprabu please go through below doc
      https://smartapi.angelbroking.com/docs/WebSocketOrderStatus

      S 1 Reply Last reply Reply Quote 0
      • S
        Surya 1 @admin last edited by

        @admin said in Websocket to obtain Order Status:

        https://smartapi.angelbroking.com/docs/WebSocketOrderStatus

        Im aware that documentation exist for a long time.. but what we are asking is a working example..

        S 1 Reply Last reply Reply Quote 0
        • S
          Surya 1 @Surya 1 last edited by

          @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.

          S S 2 Replies Last reply Reply Quote 0
          • S
            Surya 1 @Surya 1 last edited by

            @admin

            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..

            A 1 Reply Last reply Reply Quote 0
            • A
              admin @Surya 1 last edited by

              HI @rajanprabu ok we report this to the team and update you.

              S 1 Reply Last reply Reply Quote 0
              • T
                techs @admin last edited by

                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

                A 1 Reply Last reply Reply Quote 0
                • A
                  admin @techs last edited by

                  HI @techs @rajanprabu we have passed the requirement to the team to add the working example we will soon make it available to you.

                  S 1 Reply Last reply Reply Quote 0
                  • S
                    Surya 1 @admin last edited by

                    @admin

                    Thanks for the prompt response.. This would be of big help.

                    1 Reply Last reply Reply Quote 0
                    • S
                      Surya 1 @admin last edited by

                      @admin

                      Any update on this ? Any example code or ordering updates via data sockets ?

                      A 1 Reply Last reply Reply Quote 0
                      • A
                        admin @Surya 1 last edited by

                        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.

                        S 1 Reply Last reply Reply Quote 0
                        • S
                          Surya 1 @admin last edited by

                          @admin Thanks of the update..

                          A 1 Reply Last reply Reply Quote 0
                          • A
                            admin @Surya 1 last edited by

                            HI @rajanprabu Let us know when can we connect with you so that we can brief you on the requirement.

                            S 1 Reply Last reply Reply Quote 0
                            • S
                              Surya 1 @admin last edited by

                              @admin I fixed it myself. Thanks.

                              1 Reply Last reply Reply Quote 0
                              • W
                                webseos @admin last edited by

                                @admin Which Package to Install in python for WebSocket, the modulename please

                                e.g pip install ..... ?

                                A 1 Reply Last reply Reply Quote 0
                                • A
                                  admin @webseos last edited by

                                  HI @webseos please find it below:
                                  pip install smartapi-python
                                  pip install websocket-client

                                  1 Reply Last reply Reply Quote 0
                                  • S
                                    simran.munshi @Surya 1 last edited by

                                    @rajanprabu Were you able to solve the issue and get the order update. can you please share the sample code if possible.

                                    1 Reply Last reply Reply Quote 0
                                    • First post
                                      Last post