报价策略设计:被动报价与主动报价、报价频率控制、报价深度管理

做报价策略设计,说白了就是回答三个问题:怎么报、报多快、报多深。这三个问题没想清楚,你的策略在实盘里大概率是亏钱的。我见过太多人把精力全花在预测价格上,结果报价逻辑一塌糊涂,最后被市场狠狠教育了一顿。

今天咱们就把这三个核心问题拆开揉碎了讲。嗯,先看一张总览图,帮你快速建立框架。

报价策略设计核心框架 报价方式 被动报价 · 挂单等待成交 · 赚取买卖价差 · 低成交概率 主动报价 · 吃单立即成交 · 付出交易成本 · 高确定性 报价频率 高频模式 · 毫秒级更新 · 适合流动性好 · 系统压力大 低频模式 · 秒级/分钟级 · 适合波动小 · 节省资源 报价深度 浅层报价 · 1-3档价位 · 风险可控 · 适合小资金 深层报价 · 多档位覆盖 · 捕获更多机会 · 暴露风险大 三者相互影响,需要根据市场状态动态调整

被动报价 vs 主动报价:两种活法

先说说被动报价。说白了就是挂单等成交,你报个买价或卖价,然后等着别人来吃你的单子。我个人习惯把这种策略叫做「守株待兔」——你提供流动性,市场给你奖励(价差收益)。

被动报价的好处很明显:交易成本低。你挂买单在买一,挂卖单在卖一,一旦成交,你赚的就是买卖价差。我在做ETF做市的时候,大部分利润都来自被动报价。但问题也很突出——成交概率低,而且容易「被钓鱼」。市场突然波动时,你的挂单可能被吃掉,然后价格继续往不利方向跑。

核心要点: 被动报价适合流动性好、波动相对平缓的品种。如果你做的是冷门币种或小盘股,被动报价可能一天都成交不了几笔。

主动报价就完全不一样了。你直接吃对手盘的单子,立即成交。说白了就是「我就要现在买/卖」,不管什么价差成本。主动报价的确定性高,适合需要快速建仓或平仓的场景。但代价也很实在——你付出了买卖价差,相当于给市场交了「过路费」。

我记得有一次做股指期货的套利策略,基差突然收窄,机会窗口只有几秒钟。这时候根本不可能慢慢挂单等成交,必须主动吃单。虽然每手多花了半个点,但整体套利利润还是正的。这就是主动报价的价值所在。

对比维度 被动报价 主动报价
成交确定性 低(看运气) 高(立即成交)
交易成本 低(赚价差) 高(付价差)
适用场景 做市、流动性提供 套利、紧急建仓
风险特征 方向性风险 成本风险
我的建议: 实盘中不要只用一种方式。我一般按7:3的比例分配——70%的仓位做被动报价,30%留作主动报价的弹药。这样既有稳定的价差收入,又能抓住突发机会。

报价频率控制:快有快的好,慢有慢的妙

报价频率这个问题,很多人容易走极端。要么恨不得每秒报100次,要么挂个单就不管了。其实频率控制的核心就一句话:跟市场节奏走

高频报价适合什么场景?流动性好、波动频繁的市场。比如比特币永续合约,盘口变化极快,你挂单后几秒钟可能就被甩到后面去了。这时候必须高频更新报价,才能保持在最优价位。我做过一个BTC的做市策略,报价频率设在200毫秒一次,基本能跟上盘口变化。

但高频报价有个坑——系统压力和交易所限制。你报得太快,交易所可能给你限流,甚至封IP。而且你的策略逻辑如果不够轻量,CPU和网络带宽都会成为瓶颈。

注意: 我曾经在一个项目里把报价频率设到50毫秒,结果交易所的API限制直接把我拒了。后来改成500毫秒一次,反而成交率更高。为什么?因为交易所的撮合引擎也有自己的节奏,你报得太快,很多订单根本来不及进入撮合队列就被撤了。

低频报价也有它的优势。对于波动小、流动性一般的品种,比如一些冷门股票或ETF,你挂单后可能几分钟甚至几小时才成交一次。这时候高频报价纯粹是浪费资源。我一般把这类品种的报价频率设在5-30秒一次,只做价格偏离时的微调。

怎么确定合适的频率?我个人习惯用盘口变化率来动态调整。盘口变化快就提高频率,变化慢就降低频率。代码实现起来也不复杂:

def calc_quote_frequency(orderbook):
    # 计算过去1秒内盘口变化次数
    changes = orderbook.get_changes_in_last_second()
    if changes > 50:
        return 100  # 毫秒
    elif changes > 10:
        return 500
    else:
        return 2000
避坑指南: 别把报价频率设成固定值。市场是活的,你的策略也得是活的。动态调整频率,既能保证竞争力,又能节省系统资源。

报价深度管理:报几档最合适?

报价深度,就是你愿意在多少个价位上挂单。浅层报价只挂买一卖一,深层报价可能挂到买五卖五甚至更深。

浅层报价的好处是风险可控。你只暴露在最近的价格区间,市场波动对你的影响有限。适合资金量小、风险承受能力低的策略。但问题也很明显——成交机会少。如果价格快速穿过你的挂单区间,你就完全错过了。

深层报价能捕获更多成交机会。比如你在买一到买五都挂了单,价格一路下跌时,你的订单会逐档成交,平均建仓成本更低。但深层报价的风险也大——市场如果出现极端行情,你的所有挂单可能都被吃掉,暴露的风险敞口很大。

我一般根据波动率和资金量来决定深度。波动率高的时候,我会收窄报价深度,只挂1-2档,避免被剧烈波动伤到。波动率低的时候,我会扩大到3-5档,多赚点价差。资金量大的时候,也会适当增加深度,毕竟需要更大的仓位来获取有意义的收益。

市场状态 建议深度 理由
高波动(波动率 > 3%) 1-2档 控制风险,避免被极端行情吞噬
中等波动(1%-3%) 2-3档 平衡风险与收益
低波动(< 1%) 3-5档 最大化价差收益
一个实用的技巧: 报价深度不要均匀分布。我习惯在靠近最优价的位置放更大的量,越往深处量越小。比如买一放40%,买二放30%,买三放20%,买四放10%。这样既保证了主要成交在好价位,又不会在极端行情下暴露太多。

嗯,报价策略设计这块,说白了就是三个维度的平衡。被动和主动的选择、频率的快慢、深度的深浅,没有绝对的对错,只有合不合适。我建议你从模拟盘开始,先跑一个月,看看自己的策略在什么参数下表现最好。别一上来就实盘,学费太贵了。

记住一句话:报价策略不是一成不变的,它应该像水一样,随着市场形态变化而流动。你想想看,市场每分钟都在变,你的策略如果一成不变,那跟刻舟求剑有什么区别?

最后一个小提醒: 每次调整报价参数后,记得做回测验证。我见过太多人凭感觉调参数,结果越调越差。数据不会骗人,让回测结果告诉你答案。