一、衍生品市场概述
大家好,我是你们的讲师。在量化交易这个行当摸爬滚打了十几年,我见过太多人一上来就扎进代码和策略里,结果连最基础的市场逻辑都没搞明白。今天这第一课,咱们先把地基打牢——聊聊衍生品到底是什么,做市商怎么赚钱,以及系统开发要面对哪些硬骨头。
1.1 什么是衍生品
衍生品,说白了就是「从基础资产派生出来的金融合约」。它的价格取决于另一种资产——比如股票、商品、利率、汇率等等。你想想看,为什么会有衍生品?因为有人想对冲风险,有人想投机赚钱,还有人想套利。
我个人习惯把衍生品分成三大类:期货、期权、互换。咱们一个一个说。
期货(Futures)
期货合约,就是约定在未来某个时间,以某个价格买入或卖出某种资产的协议。举个例子,你是个农民,种了大豆,担心三个月后大豆价格下跌。你可以现在卖出大豆期货,锁定一个价格。三个月后,不管市场价是多少,你都按这个价格卖。
我在项目中遇到过不少新手,以为期货就是「赌涨跌」。其实不是,期货的核心功能是价格发现和风险管理。交易所每天结算盈亏,这叫「逐日盯市」。嗯,这里要注意,期货是有杠杆的,10倍、20倍都很常见。赚得快,亏得也快。
期权(Options)
期权比期货复杂一点。它给你一个「权利」,而不是「义务」。你可以选择执行,也可以选择不执行。看涨期权(Call)让你有权买入,看跌期权(Put)让你有权卖出。
我曾经犯过一个低级错误——刚做期权交易时,以为卖出期权就是「收保费,稳赚不赔」。结果遇到一次黑天鹅事件,标的资产价格剧烈波动,我的头寸瞬间爆仓。嗯,从那以后我再也不敢轻视期权定价模型了。
期权有几个关键参数:行权价、到期日、隐含波动率。其中隐含波动率是最有意思的,它反映了市场对未来波动的预期。做市商赚的就是这个波动率的钱。
互换(Swaps)
互换,就是双方交换现金流。最常见的是利率互换和货币互换。比如一家公司有浮动利率贷款,但它希望锁定固定利率,就可以和另一家做利率互换。
互换市场是场外交易(OTC),不像期货和期权那样在交易所集中交易。这意味着流动性差一些,但灵活性更高。做市商在互换市场里扮演着「中间人」的角色,撮合双方,赚取差价。
1.2 做市商角色与盈利模式
做市商是什么?说白了,就是「提供流动性的人」。在交易所里,有人想买,有人想卖,但买卖不一定同时出现。做市商就站在中间,同时挂出买单和卖单,让市场随时可以交易。
你可能会问:做市商怎么赚钱?主要有三种方式。
| 盈利模式 | 说明 | 我的经验 |
|---|---|---|
| 买卖价差 | 低价买入,高价卖出,赚取差价 | 这是最稳定的收入来源,但竞争激烈 |
| 交易所返佣 | 交易所给做市商提供手续费减免或返佣 | 我见过有些团队靠返佣就能覆盖成本 |
| 库存管理 | 通过持有头寸,利用价格波动获利 | 这是最考验技术的,做不好会亏大钱 |
做市商不是「稳赚不赔」的。我见过太多做市商因为库存管理不当,被一波行情打爆。举个例子,你同时挂了买单和卖单,结果市场突然大涨,你的卖单被吃掉,买单没成交,你就变成了「裸空头」。如果继续涨,你就亏大了。
所以做市商的核心能力是什么?是风险管理。说白了,就是控制你的头寸暴露,别让市场把你吃掉。
1.3 系统开发的核心挑战
做市商系统不是普通的交易系统。它对性能、可靠性、风控的要求极高。我把它总结为三大挑战:低延迟、高可用、风控。
低延迟
在衍生品市场,速度就是金钱。你比别人慢一毫秒,可能就抢不到单子,或者被对手盘吃掉。做市商的报价必须实时更新,毫秒级甚至微秒级响应。
怎么做到低延迟?
- 硬件层面: 使用FPGA加速、网卡优化、CPU亲和性绑定
- 软件层面: 用C++编写核心逻辑,避免内存分配,使用无锁队列
- 网络层面: 托管服务器到交易所机房,使用低延迟交换机
我个人习惯用C++写做市商的核心引擎。Python虽然开发快,但延迟太高,不适合高频场景。不过Python可以用来做策略研究和回测,各取所长。
// 一个简单的无锁队列示例(C++)
template<typename T>
class LockFreeQueue {
std::atomic<size_t> head_;
std::atomic<size_t> tail_;
T* buffer_;
public:
bool push(const T& item) {
// 使用CAS操作实现无锁入队
// 避免锁竞争,降低延迟
}
bool pop(T& item) {
// 无锁出队
}
};
高可用
做市商系统不能宕机。一旦宕机,报价停止,头寸暴露,可能几分钟就亏几百万。高可用设计是必须的。
怎么做?
- 冗余设计: 主备切换,多活架构
- 故障检测: 心跳检测,自动切换
- 数据持久化: 所有订单和头寸实时写入数据库
我曾经遇到过一次严重的故障——主服务器宕机,备用服务器没有及时切换,导致系统停了整整5分钟。那5分钟里,我们的头寸完全暴露在市场波动中,亏了将近200万。嗯,从那以后我强制要求所有系统必须做「故障演练」,每个月至少一次。
风控
风控是做市商系统的生命线。没有风控,赚再多钱也是白搭。风控包括几个层面:
- 事前风控: 检查订单是否合规,比如价格是否超出范围、数量是否超过限制
- 事中风控: 实时监控头寸、盈亏、风险敞口
- 事后风控: 分析交易记录,发现异常行为
我见过一个团队,风控系统做得太松,结果一个交易员误操作,下了100倍杠杆的订单,瞬间爆仓。所以我的原则是:风控宁可严格,不可宽松。哪怕错失一些交易机会,也比爆仓强。
下面这张图展示了做市商系统的核心架构,你可以看到低延迟、高可用、风控这三个模块是如何协同工作的。
你看,整个系统分为三层:市场数据接入层、核心交易引擎层、订单执行与结算层。每一层都有对应的挑战。低延迟主要影响核心引擎,高可用贯穿所有层,风控则集中在核心引擎中。
好了,这一章的内容就到这里。衍生品市场的水很深,但只要你把基础打牢,后面的路就好走了。下一章我们会深入做市商策略的设计,到时候我会分享一些实战中的坑和技巧。
公众号:蓝海资料掘金营,微信deep3321