技术科普
时区与金融交易系统:开盘时间背后的时间工程
金融市场几乎是最早被时区“逼”出标准化的行业。伦敦、纽约、东京、上海的开盘时间各不相同,而资金与订单却在同一张网络上流动。
交易时段用交易所本地时间
交易所规则通常以当地时区定义开盘、收盘与集合竞价时间。例如纽约使用美东时间,夏令时切换后,同一合约在北京时间眼中的开盘时刻会提前一小时。做跨市场套利的人,必须同时维护两套时钟。
系统内部为什么用UTC
- 撮合引擎与日志需要单一、单调的时间轴
- 跨市场事件排序不能依赖本地时间
- 审计与监管报送要求时间戳可追溯
常见做法是:数据库存UTC,前端按用户时区展示,交易规则单独维护“交易所时区”字段。
结算与日期边界
T+1、T+2 的“日”指交易日,不是自然日。跨境交易还要考虑各自市场的节假日。若把本地时间直接当作UTC使用,跨日边界附近的交易可能被记到错误的结算日。
夏令时的双重风险
春季跳过的那个小时里,某些本地时间根本不存在;秋季重复的那个小时里,同一本地时间出现两次。定时任务、对账批处理与到期提醒都应使用UTC触发,或明确指定偏移。
小结
金融时间工程的核心是分离:交易规则用交易所时区,系统记录用UTC,用户界面用本地时区。三者一旦混用,差错往往出现在最不该出错的地方。