Navigation

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

    User Feedback - WebSocket 2.0 Beta Rollout – Python Language

    Python SDK
    0
    45
    2246
    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.
    • Z
      zubuco @admin last edited by

      @admin
      still not wroking

      punit 1 Reply Last reply Reply Quote 0
      • punit
        punit @zubuco last edited by

        @zubuco Still struck ?

        Z 1 Reply Last reply Reply Quote 0
        • Z
          zubuco @punit last edited by

          @Ashok now wroking

          1 Reply Last reply Reply Quote 0
          • S
            smitshahfo last edited by

            Hi @admin,
            I am running websocket V2.0. for every 30 sec's its landing in pong function. I have subscribed only one token while running the below.

            its consistent even with other token. Please look into this.

            27d823f6-c769-4662-a45a-9057695a97b1-image.png

            punit W 2 Replies Last reply Reply Quote 1
            • punit
              punit @smitshahfo last edited by

              @vrkhyd It looks like heartbeat message. you can ignore it.

              S 2 Replies Last reply Reply Quote 1
              • S
                smitshahfo @punit last edited by

                @Ashok ok Thank you.

                Sometimes its printing the same message. multiple times. does it mean no response from server.

                1 Reply Last reply Reply Quote 1
                • S
                  smitshahfo @punit last edited by

                  @Ashok 9337ad13-a3c1-46e0-928c-7913d2a60f96-image.png

                  punit M 2 Replies Last reply Reply Quote 0
                  • punit
                    punit @smitshahfo last edited by

                    @vrkhyd You will get one in every 30 seconds.
                    Are you getting tick data ?

                    [2022/11/24 09:14:02] on open
                    [2022/11/24 09:14:32] In on pong function==> b'\x00'
                    [2022/11/24 09:15:02] In on pong function==> b'\x00'
                    [2022/11/24 09:15:32] In on pong function==> b'\x00'
                    [2022/11/24 09:16:02] In on pong function==> b'\x00'
                    [2022/11/24 09:16:32] In on pong function==> b'\x00'
                    [2022/11/24 09:17:02] In on pong function==> b'\x00'
                    [2022/11/24 09:17:32] In on pong function==> b'\x00'
                    [2022/11/24 09:18:02] In on pong function==> b'\x00'
                    [2022/11/24 09:18:32] In on pong function==> b'\x00'
                    [2022/11/24 09:19:02] In on pong function==> b'\x00'

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

                      @Ashok I am printing data only for 1 min.

                      Today.. Am getting data.

                      D 1 Reply Last reply Reply Quote 0
                      • N
                        Narendra_Javvadi last edited by

                        Great working fine. Thanks...

                        1 Reply Last reply Reply Quote 0
                        • K
                          Kiran @admin last edited by

                          @admin
                          There are 2 issues in your new websocket 2.0, we have been raising this question but no one is responding.

                          1. we are getting "Socket object has no attribute pending when requesting the data at the line self.wsapp.send(json.dumps(request_data)). All my authenication is successful, why I am getting this error.

                          2. fetching order_book is dead slow in angel, so I tried to implement fetch from websocket order_feed, but I think this order_feed is not implmented yet in your websocket2.0 and your websocket1.0, the order_feed is not at all fetching the order details data.
                            Resolve these errors, I think you guys need to have solid testing team. you cannot roll a beta version directly to prodution (live market) targetting clients and withdrawing the earlier versions. Make the product stable. Dont experiment... If this continues. soon Angel will loose lot of customer base.

                          1 Reply Last reply Reply Quote 5
                          • W
                            whemant @smitshahfo last edited by

                            Hi @vrkhyd,

                            I am getting data in below format:

                            {'subscription_mode': 3, 'exchange_type': 5, 'token': '246083', 'sequence_number': 2414112, 'exchange_timestamp': 1674818721000, 'last_traded_price': 672400, 'subscription_mode_val': 'SNAP_QUOTE', 'last_traded_quantity': 1, 'average_traded_price': 667360, 'volume_trade_for_the_day': 8589, 'total_buy_quantity': 644.0, 'total_sell_quantity': 384.0, 'open_price_of_the_day': 661700, 'high_price_of_the_day': 672700, 'low_price_of_the_day': 661700, 'closed_price': 653300, 'last_traded_timestamp': 1674818717, 'open_interest': 535600, 'open_interest_change_percentage': -4627489742054556454, 'upper_circuit_limit': 679400, 'lower_circuit_limit': 627200, '52_week_high_price': 678100, '52_week_low_price': 599400, 'best_5_buy_data': [{'flag': 0, 'quantity': 7, 'price': 672600, 'no of orders': 6}, {'flag': 0, 'quantity': 14, 'price': 672700, 'no of orders': 12}, {'flag': 0, 'quantity': 10, 'price': 672800, 'no of orders': 10}, {'flag': 0, 'quantity': 7, 'price': 672900, 'no of orders': 6}, {'flag': 0, 'quantity': 29, 'price': 673000, 'no of orders': 21}], 'best_5_sell_data': [{'flag': 1, 'quantity': 35, 'price': 672400, 'no of orders': 11}, {'flag': 1, 'quantity': 23, 'price': 672300, 'no of orders': 3}, {'flag': 1, 'quantity': 1, 'price': 672200, 'no of orders': 1}, {'flag': 1, 'quantity': 2, 'price': 672100, 'no of orders': 2}, {'flag': 1, 'quantity': 12, 'price': 672000, 'no of orders': 4}]}

                            Please could explain how you are converting this data in to get 1 min candlestick data? If you could share your code that will be of great help. Thanks.

                            W S 2 Replies Last reply Reply Quote 0
                            • W
                              whemant @whemant last edited by

                              Hi @asho and @vrkhyd if anyone of you can provide any help on this? Thanks.

                              1 Reply Last reply Reply Quote 0
                              • M
                                markoma404 @smitshahfo last edited by

                                @vrkhyd https://github.com/markov404/AngelOneOptionChainSmartApi
                                You can user this script it is getting data about OPTIDX every 3 min then saving and updating. You can change the way of saving , it describes in readme.

                                1 Reply Last reply Reply Quote 0
                                • J
                                  Javajp last edited by

                                  @admin, the instructions for websocket2.0 seems to be too lengthy, Kindly consider to simplify & add sample like we have it in https://github.com/angel-one/smartapi-python🙏

                                  1 Reply Last reply Reply Quote 0
                                  • K
                                    krunal96 last edited by

                                    Is websocket 2.0 working? As i am getting only ping data(subscribing to Options). @admin @rajanprabu @StocksDeveloper @rjbanna

                                    A 1 Reply Last reply Reply Quote 1
                                    • A
                                      abhinay.j last edited by

                                      @admin and team and forum members

                                      Request you to post a final working working Websocket 2.0 code as i am still not able to get any ticks even after doing all the changes discussed above.

                                      Thank you.

                                      1 Reply Last reply Reply Quote 0
                                      • S
                                        sathyaraj last edited by

                                        How to handle ws disconnection?
                                        Do we need to Initialize ws again or it handles reconnection?
                                        I am getting the following error sometimes

                                        ERROR - Handshake status 429 Too Many Requests - goodbye
                                        ERROR - error from callback <bound method SmartWebSocketV2._on_close of <SmartWebsocketv2.SmartWebSocketV2 object at 0x000001D5D1637750>>: SmartWebSocketV2._on_close() takes 2 positional arguments but 4 were given
                                        ERROR - [WinError 10054] An existing connection was forcibly closed by the remote host - goodbye
                                        ERROR - error from callback <bound method SmartWebSocketV2._on_close of <SmartWebsocketv2.SmartWebSocketV2 object at 0x000001D5D1637750>>: SmartWebSocketV2._on_close() takes 2 positional arguments but 4 were given

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

                                          @admin
                                          This script i not working. No error, nothing happens, It times out. Why ?
                                          I have tried many a times today.

                                          Code below:

                                          from SmartApi.smartWebSocketV2 import SmartWebSocketV2
                                          from smartapi import SmartConnect
                                          import pyotp

                                          obj=SmartConnect(api_key="") # feed app API key.
                                          #optional
                                          #access_token = "your access token",
                                          #refresh_token = "your refresh_token")
                                          #login api call
                                          token='
                                          '

                                          Login needs to be done through MPIN now.

                                          data = obj.generateSession("","",pyotp.TOTP(token).now())
                                          print(data)
                                          refreshToken= data['data']['refreshToken']
                                          jwt_token = data['data']['jwtToken']

                                          	#fetch the feedtoken
                                          

                                          feedToken=obj.getfeedToken()

                                          AUTH_TOKEN = jwt_token
                                          API_KEY = ******* #feed app API key
                                          CLIENT_CODE = '*******'
                                          FEED_TOKEN = feedToken

                                          correlation_id = "Testing"
                                          action = 1
                                          mode = 3

                                          token_list = [{"exchangeType": 1, "tokens": ["26009","11536","1594","2885"]}]

                                          sws = SmartWebSocketV2(AUTH_TOKEN, API_KEY, CLIENT_CODE, FEED_TOKEN)

                                          def on_data(wsapp, message):
                                          print("Ticks: {}".format(message))

                                          def on_open(wsapp):
                                          print("on open")

                                          sws.subscribe(correlation_id, mode, token_list)
                                          

                                          def on_error(wsapp, error):
                                          print(error)

                                          def on_close(wsapp):
                                          print("Close")

                                          Assign the callbacks.

                                          sws.on_open = on_open
                                          sws.on_data = on_data
                                          sws.on_error = on_error
                                          sws.on_close = on_close

                                          sws.connect()


                                          Rsult:

                                          on open

                                          J 1 Reply Last reply Reply Quote 0
                                          • D
                                            DIYD57519 @J88913 last edited by

                                            @J88913 dont install SmartApi. download and keep it in the same folder as program

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