"""exsdk 1.1.2 example. Requires EXSDK_TOKEN; no credentials are embedded."""
import os
import math
from exsdk import ExApi

with ExApi(os.environ["EXSDK_TOKEN"]) as api:
    symbols = api.query_symbols("FUTURE", is_main=True)
    if not symbols:
        raise RuntimeError("No matching futures contracts")
    bars = api.watch_kline(symbols[0], "1m", data_length=200)
    while api.wait_update():
        if bars.is_changing(["timestamp", "close"]):
            frame = bars.data()
            if len(frame) < 20:
                continue
            frame["ma20"] = frame["close"].rolling(20).mean()
            value = frame["ma20"].iloc[-1]
            if math.isfinite(value):
                print(frame.iloc[-1].to_dict())
