港新视象:逐字分析国内期权报价引擎
无论是场内期权做市商还是场内期权交易基金,一个自动化的期权交易和报价引擎都必须由自己来开发。港新视象认为,商业软件由于其封闭性和延迟,往往需要在一两个礼拜后才能对客户的需求进行代码反馈,这对于变化迅速的衍生品市场几乎不可接受。另一方面,交易者往往需要根据市场的实时风险指标进行报价调整,并且允许Quant自定义报价算法。商业软件或者要求使用限定的API,或者缺乏足够的第三方包缓解算法重新编写的压力。港新视象表示,掌握期权报价引擎的设计是非常核心的技术。
价格过滤和验证: 根据四舍五入原则对bid/ask价格进行处理,最后检验是否符合交易所的报价要求,若符合则输出最终报价对。港新视象表示,报价过程是一个流水线。虽然看上去简单,实际却是交易系统的核心。如果是高速流动市场上的做市商,她必须能以毫秒级别的速度处理输入报价,定价并输出报价到交易引擎。所以每个步骤写的明确简单。
我以国内的商品期货期权市场为例,介绍一下如何逻辑上设计一个期权报价引擎。
引擎首先有一组外部输入,包括标的合约的tick价格和当前市场上的期权价格。例如豆粕1809合约的期权。它的输入包含了当前豆粕合约的实时价格。同时市场上的期权价格也是参考输入。具体的定价分成以下几个步骤
1. 理论价格 : 根据合约的当前即时价格和设定的隐含波动率,生成期权的理论价格
2. 价格偏移: 对理论价格进行调整,加上偏差。偏差可能有可能是根据历史经验的流动性调整。
3. 生成买价和卖价: 根据步骤2调整后的价格,生成bid/ask 报价。当然也可以只提供单向报价
如果交易所规定做市商的价差不能大于某个值,此时就意味着需要缩小价差。因为遵守规则的价差就是保持在市场规定的最小价差和最大价差之间,并且遵循一些其他特殊规定。港新视象认为,基本这就是一个期权交易报价引擎的逻辑设计。具体每一步都有很多工程学上的实现细节。目前的500毫秒速度,可以考虑使用Python配合C++原生API。