第九节:实盘交易注意事项
各位同学,前面我们聊了那么多基差交易的理论和回测技巧。但说句实在话,从回测到实盘,中间隔着一条河。我见过太多人在回测里赚得盆满钵满,一上实盘就亏得怀疑人生。为什么会这样?
说白了,实盘交易拼的不只是策略逻辑,更是你对交易系统的掌控力。今天我就把这些年踩过的坑、总结的经验,掰开揉碎了讲给你听。
一、API对接:你的交易生命线
API对接是实盘的第一步。我个人习惯用WebSocket做行情订阅,用RESTful做交易下单。为什么这么搭配?
WebSocket是全双工通信,延迟低,适合实时行情。RESTful是请求-响应模式,适合下单这种需要确认的操作。你想想看,如果下单也用WebSocket,万一网络断了,你都不知道单子到底成交了没有。
核心要点:
- 行情用WebSocket,下单用RESTful
- 一定要做断线重连机制
- API密钥不要硬编码在代码里
我在项目中遇到过最惨的一次,就是API密钥泄露。那天半夜三点,有人用我的账户开了100手空单,差点爆仓。从那以后,我所有的密钥都放在环境变量里,代码里只留个占位符。
# 错误示范
api_key = "abc123def456"
# 正确做法
import os
api_key = os.getenv("API_KEY")
api_secret = os.getenv("API_SECRET")
二、订单类型选择:别小看这个细节
很多新手上来就用市价单。嗯,这里要注意,市价单虽然成交快,但滑点可能吃掉你全部利润。尤其是做基差交易,价差本来就薄,一个滑点可能就白干了。
我个人建议这样选:
| 订单类型 | 适用场景 | 风险点 |
|---|---|---|
| 限价单 | 流动性好的品种,价差稳定时 | 可能无法成交 |
| 市价单 | 行情剧烈波动,必须立即成交 | 滑点大 |
| 冰山订单 | 大资金建仓/平仓 | 容易被盯上 |
| 止损单 | 风控必备 | 触发后变市价单 |
我曾经在螺纹钢和热卷的套利中,用市价单进场,结果滑了2个点。那笔交易本来预期赚5个点,最后只赚了3个点。你说亏不亏?
我的习惯:进场用限价单,出场用市价单。进场可以等,出场不能等。
三、延迟与执行成本:看不见的敌人
延迟这东西,平时感觉不到,但关键时刻能要命。我记得有一次做股指期货和ETF的套利,行情图上价差已经到了开仓信号,我这边下单过去,等成交确认回来,价差已经没了。
为什么会这样?因为延迟!
延迟主要来自三个地方:
- 网络延迟:从你的服务器到交易所的物理距离
- 系统延迟:你代码处理数据、计算信号的时间
- 交易所延迟:交易所撮合引擎的处理时间
执行成本就更直接了。除了佣金和印花税,还有:
- 冲击成本:大单进场会推动价格
- 等待成本:限价单没成交,错失机会
- 机会成本:资金被占用,没法做别的交易
避坑指南:我曾经在回测里假设零延迟、零滑点,结果实盘第一周就亏了8%。后来我学乖了,回测时至少加2个滑点,延迟按50毫秒算。这样出来的结果才靠谱。
四、盘口数据监控:你的第三只眼
盘口数据,说白了就是买卖挂单的实时变化。这东西比K线灵敏多了。K线是过去,盘口是现在。
我监控盘口主要看这几个指标:
- 买卖盘口深度:买一到买五、卖一到卖五的挂单量
- 盘口价差:买一价和卖一价的差值
- 挂单变化速度:大单是撤了还是成交了
- 大单异动:突然出现的大额挂单
举个例子。有一次我监控到螺纹钢的买一位置突然挂了5000手大单,但价格没动。这明显是有人在托底。我赶紧跟进做多,果然半小时后价格拉起来了。
# 盘口监控的简化代码
def monitor_order_book(order_book):
bid_price = order_book['bids'][0][0] # 买一价
ask_price = order_book['asks'][0][0] # 卖一价
spread = ask_price - bid_price
bid_volume = sum([b[1] for b in order_book['bids'][:5]]) # 买盘总深度
ask_volume = sum([a[1] for a in order_book['asks'][:5]]) # 卖盘总深度
if spread > threshold:
print(f"价差过大: {spread}")
if bid_volume / ask_volume > 3:
print("买盘强势,考虑做多")
elif ask_volume / bid_volume > 3:
print("卖盘强势,考虑做空")
记住:盘口数据是高频的,每秒可能变化几十次。你不可能手动盯,必须写程序自动监控。我一般设置阈值报警,超过阈值就发微信通知。
五、一张图看懂实盘交易流程
下面这张图,是我自己总结的实盘交易全流程。你照着这个框架搭系统,基本不会出大问题。
这张图里,最关键的是风控检查层。我见过太多人跳过这步,直接下单。结果呢?要么仓位过重,要么忘记止损,一把亏光。
我的建议:风控检查一定要放在策略计算之后、执行下单之前。这是最后一道防线。我自己的系统里,风控检查包括:
- 当前仓位是否超过上限
- 本次下单是否会导致保证金不足
- 距离上次同方向下单是否超过最小间隔
- 当前市场波动率是否在可接受范围内
好了,实盘交易的这些注意事项,说白了就是一句话:把你能想到的所有意外,都提前在代码里处理掉。别指望人工干预,行情来了你根本来不及反应。
记住,实盘交易不是写论文,是打仗。你的代码就是你的武器,API就是你的弹药。武器不趁手,弹药跟不上,再好的策略也是白搭。
公众号:蓝海资料掘金营,微信deep3321