I am new to Pyxll and Asyncio and having trouble get the following code going. I kept getting the initial value = 0 on the spreadsheet and it's not refreshing. Could you help and let me know what I did wrong? I followed the example from Pyxll's tutorial here: https://www.pyxll.com/docs/userguide/rtd.html#using-the-asyncio-event-loop
from pyxll import RTD, xl_func, xl_app
from xbbg import blp
import asyncio
class AsyncRTDExample(RTD):
def __init__(self, ticker):
super().__init__(value=0)
self.__stopped = False
self.__ticker = ticker
async def connect(self):
while not self.__stopped:
# Yield to the event loop for 1s
await asyncio.sleep(1)
# Update value (which notifies Excel)
async for t in blp.live(self.__ticker, flds = ['LAST_PRICE'], info=['LAST_PRICE']):
self.value = t["LAST_PRICE"]
async def disconnect(self):
self.__stopped = True
@xl_func("string ticker: rtd<float>", recalc_on_open=True)
def async_rtd_price(ticker):
return AsyncRTDExample(ticker)
Really appreciate it!