【做市商】币安做市商机器人(ccxt 版)

使用 Avellaneda-Stoikov 策略,币安交易所。

GitHub:yuthavithi/binance-makret-maker-bot: A sophisticated cryptocurrency market making bot for Binance spot trading, implementing the Avellaneda-Stoikov model with comprehensive risk management

初步了解 Avellaneda-Stoikov 策略

要理解 Avellaneda-Stoikov(A-S)策略,不用先看复杂公式,咱们从它的核心场景——“做市商赚钱”说起,用“小卖部卖饮料”的比喻就能讲明白。

第一步:先搞懂“做市商”是干嘛的?

A-S策略是专门给“做市商”设计的工具。那做市商像什么?
比如你开了家小卖部,主打卖可乐:

  • 你得同时做两件事:挂“收可乐”的价(买单)(比如4.9元/瓶,收别人的可乐),和挂“卖可乐”的价(卖单)(比如5.1元/瓶,卖给来买的人);
  • 赚的是“买卖价差”:有人按4.9卖给你,又有人按5.1买走,你中间赚0.2元/瓶;
  • 但有个大麻烦:怕“存货失衡”——比如总有人来卖可乐(你囤了100瓶),但没人买,万一可乐市价跌到4.5元,你囤的货就亏了;或者总有人来买(你卖光了),后面再有人买,你没货可卖,赚不到差价了。

A-S策略的核心目标,就是帮“小卖部老板(做市商)”解决3个关键问题:

  1. 买单/卖单该挂多少价?(比如买单是4.9还是4.8?卖单是5.1还是5.2?)
  2. 每次挂多少量?(比如一次挂10瓶的买单,还是20瓶?)
  3. 存货失衡时,怎么调整价格/量,避免亏太多?

第二步:A-S策略的3个“大白话逻辑”

它不用凭感觉,而是用数学算清楚“怎么平衡赚差价和控风险”,核心就3条:

1. 价差不是固定的,看“市场波动”(波动率)

市场波动大=可乐价格一天内可能从4元涨到6元(风险高);波动小=价格基本在4.9-5.1之间晃(风险低)。
A-S策略会告诉你:

  • 波动大时,拉大价差:比如买单4.8元、卖单5.2元(差价0.4元)。因为万一挂了4.9的买单,刚收完可乐,市价就跌到4.5,你亏得少;
  • 波动小时,缩小价差:比如买单4.95元、卖单5.05元(差价0.1元)。薄利多销,反正价格稳,风险低。

2. 存货失衡时,主动“调价格”平衡

A-S策略会盯着你的“存货量”,一旦偏多/偏少,就让你调价格:

  • 存货太多(比如囤了100瓶可乐,远超正常量):
    • 把买单稍微提高一点(比如从4.9涨到4.95),吸引更多人来买你的存货;
    • 把卖单稍微降低一点(比如从5.1降到5.05),赶紧把囤的货卖掉,减少风险;
  • 存货太少(比如只剩5瓶,不够卖):
    • 把买单压低(比如从4.9降到4.85),少收点货,避免收贵了;
    • 把卖单提高(比如从5.1涨到5.15),少卖点货,等存货补上来再正常卖。

3. 挂单量也看波动,波动大就“少挂点”

比如可乐价格一天能涨1元(波动大):

  • 你别一次挂20瓶的买单——万一刚收完20瓶,市价就跌0.5元,你一下子亏10元(20瓶×0.5);
  • A-S会让你少挂点,比如一次挂5瓶,就算亏,也亏得少。
    如果波动小(价格稳),就可以多挂点(比如一次15瓶),多赚点差价。

第三步:总结A-S策略的本质

简单说,它就是一个“做市商的智能计算器”:

  • 核心目标:在赚买卖价差的同时,控制“存货风险”,别因为囤太多/太少货而亏掉赚的钱;
  • 关键逻辑:跟着市场波动调价差、跟着存货量调价格、跟着波动调挂单量
  • 用在哪?股票、加密货币、期货等需要做市商的市场(比如交易所里的做市商,就靠这个策略稳定挂单、赚钱)。

一句话收尾:A-S策略让做市商从“凭经验挂单”变成“靠模型科学赚钱”,少赌运气,多控风险。