
284
|
第
9
章
图 9-3:欧元 / 美元的历史收盘价(分钟柱线图)
9.3.2
获取流数据
虽然历史数据对于某些场景很重要,例如回测算法交易策略,但是需要连续访问
实时或流数据(在交易时间内)才能部署和自动化算法交易策略。因此,与
Oanda
API
相似,
FXCM API
还允许订阅所有金融工具的实时数据流。
fxcmpy
程序包支持
此功能,因为它允许提供用户定义函数(即回调函数)来处理订阅的实时数据流。
以下
Python
代码展示了这样一个简单的回调函数
——
仅仅打印得到的数据集的选
定元素,这样就可以在订阅一个期望的金融工具(这里是
EUR/USD
)后,使用它来
实时处理获取的数据了。
In [39]: def output(data, dataframe):
print('%3d | %s | %s | %6.5f, %6.5f'
% (len(dataframe), data['Symbol'],
pd.to_datetime(int(data['Updated']), unit='ms'),
data['Rates'][0], data['Rates'][1]))
In [40]: api.subscribe_market_data('EUR/USD', (output,))
2 | EUR/USD | 2020-08-19 14:32:36.204000 | 1.19319, ...