葡萄牙PSI-20指数虽然规模不大,但接入时对稳定性的要求一点不低。WebSocket连接、数据完整性检查、异常行情过滤,每个环节都需要仔细处理。本文分享接入葡萄牙行情数据API的实践经验。
正文
葡萄牙里斯本交易所的PSI-20指数包含20只蓝筹股,权重集中在金融和公用事业板块。交易时段是北京时间15:00-23:30,与欧洲主流市场同步。
接入葡萄牙行情数据API初期,我遇到的最大问题是数据异常。偶尔会出现价格跳变,比如某只股票瞬间涨跌超过10%,明显是交易所数据错误。如果不加过滤,策略会发出错误信号。
解决方案是在客户端加一层异常检测。当价格变化超过历史波动率的3倍标准差时,暂不处理,等待下一帧数据确认。
python
def validate_price(symbol, price, history):
mean = np.mean(history[-20:])
std = np.std(history[-20:])
if abs(price - mean) > 3 * std:
return False # 可能异常,等待确认
return True
【数据API】jkidata.com | 文档中心 docs.jkidata.com
WebSocket连接的序列号处理也不能少。PSI-20推送频率不高,但偶尔丢包。每条消息带seq字段,客户端检查连续性,发现跳跃时补数据。
python
if msg['seq'] != last_seq + 1 and msg['seq'] > last_seq + 1:
backfill(last_seq + 1, msg['seq'] - 1)
葡萄牙市场节假日较多,除了国际节日还有共和国日(10月5日)等本地节日。用行情数据API的isOpen字段判断,不维护节假日列表。
PSI-20成分股每年调整一次。我每季度同步一次成分股列表,确保监控的是最新成分股。
docs.jkidata.com上有葡萄牙行情数据API的完整接入指南,包含PSI-20成分股列表和WebSocket配置。
【数据API】jkidata.com | 文档中心 docs.jkidata.com