我正在尝试通过python连接到IG的lightstreamer服务器以获取蜡烛图数据。然而,我似乎总是每秒都会获得项目更新,即使我指定我每分钟或每小时都需要它。这是我的代码:
from lightstreamer.client import *
loggerProvider = ConsoleLoggerProvider(ConsoleLogLevel.WARN)
LightstreamerClient.setLoggerProvider(loggerProvider)
ls_client = LightstreamerClient("https://demo-apd.marketdatasystems.com", None)
ls_client.connectionDetails.setUser("...")
ls_client.connectionDetails.setPassword("...")
ls_client.connect()
subscription = Subscription(
mode="MERGE",
items=["CHART:CS.D.BITCOIN.CFD.IP:1MINUTE"],
fields=["BID_CLOSE"])
subscription.addListener(SubListener())
ls_client.subscribe(subscription)
input()
ls_client.unsubscribe(subscription)
ls_client.disconnect()
class SubListener:
def onItemUpdate(self, update):
print(update.getValue("BID_CLOSE"))
1MINUTE
的CHART:CS.D.BITCOIN.CFD.IP:1MINUTE
部分似乎没有任何影响。
我已经在 IG 的流媒体伴侣中尝试了相同的项目字符串,并且我能够以这种方式每分钟获取更新,但由于某种原因它无法在代码中工作。有什么想法吗?
我认为项目名称中的标签 1MINUTE 表示图表烛台聚合的时间间隔的持续时间;但是,更新会持续发送。 如果您想以特定频率接收更新,您可以利用 Lightstreamer 客户端库的 setRequestedMaxFrequency 选项。 要每分钟接收一次更新,您应该使用如下所示的内容:
subscription.setRequestedMaxFrequency(Decimal(1)/Decimal(60));