第二十三章:做市商工具与平台

做市商这行当,说白了就是跟市场赛跑。你跑得比对手快,就能赚钱;慢了,就得挨打。而工具和平台,就是你的跑鞋和赛道。

我见过不少团队,策略模型写得漂亮,但一到实盘就卡在工具链上。订单发不出去、数据延迟、监控报警失灵……这些坑,我基本都踩过一遍。今天咱们就聊聊,怎么把这些工具选对、用好。

做市商软件对比:选对工具,事半功倍

市面上的做市商软件,我大致分成三类:

  • 交易所原生工具:比如Binance的API管理后台、OKX的WebSocket工具。优点是免费、对接快;缺点是功能单一,没法做复杂策略。
  • 第三方量化平台:像CCXT、Hummingbot这类。支持多交易所,有现成的做市策略模板。我早期做小币种做市时,就用Hummingbot搭过原型,确实省事。
  • 自研系统:大厂和成熟团队的选择。灵活性最高,但开发成本也最高。我现在的团队就是全自研,从行情接入到订单管理,每一行代码都自己写。
对比维度 交易所原生工具 第三方平台 自研系统
开发成本
灵活性
延迟控制 一般 中等 优秀
适合场景 个人/小团队 中型团队 专业做市商
我的建议: 别一上来就自研。先用现成工具跑通流程,等业务量上去了,再逐步替换。我见过太多团队,花半年自研系统,结果市场机会早没了。

API对接实战:从下单到风控

API对接是做市商的命门。你想想看,如果下单接口延迟100毫秒,在高频场景下,这100毫秒可能就是盈亏的分界线。

我个人习惯用REST API做订单管理,WebSocket做行情订阅。下面是一个简单的下单示例(Python + CCXT):

import ccxt
import time

exchange = ccxt.binance({
    'apiKey': 'YOUR_API_KEY',
    'secret': 'YOUR_SECRET',
    'enableRateLimit': True,
})

def place_limit_order(symbol, side, amount, price):
    try:
        order = exchange.create_limit_order(symbol, side, amount, price)
        print(f"订单已提交: {order['id']}")
        return order
    except ccxt.NetworkError as e:
        print(f"网络错误: {e}")
        # 重试逻辑
        time.sleep(1)
        return place_limit_order(symbol, side, amount, price)
    except ccxt.ExchangeError as e:
        print(f"交易所错误: {e}")
        return None

# 示例:挂一个买单
place_limit_order('BTC/USDT', 'buy', 0.01, 30000)
避坑指南: 我曾经因为没处理API限频,导致订单被交易所封了10分钟。那10分钟里,市场剧烈波动,我们损失惨重。记住:一定要加enableRateLimit,并且做好重试和退避策略

另外,WebSocket的断线重连机制也很关键。我一般这样写:

import websocket
import json

def on_message(ws, message):
    data = json.loads(message)
    # 处理行情数据
    update_orderbook(data)

def on_error(ws, error):
    print(f"WebSocket错误: {error}")

def on_close(ws, close_status_code, close_msg):
    print("WebSocket断开,准备重连...")
    time.sleep(5)
    connect_websocket()  # 递归重连

def on_open(ws):
    print("WebSocket已连接")
    # 订阅深度数据
    ws.send(json.dumps({
        "method": "SUBSCRIBE",
        "params": ["btcusdt@depth20@100ms"],
        "id": 1
    }))

def connect_websocket():
    ws = websocket.WebSocketApp(
        "wss://stream.binance.com:9443/ws",
        on_open=on_open,
        on_message=on_message,
        on_error=on_error,
        on_close=on_close
    )
    ws.run_forever()

做市商Dashboard设计:一眼看清全局

Dashboard不是花架子,它是你的驾驶舱。我设计Dashboard的原则就一条:3秒内能判断当前状态是否正常

核心模块包括:

  • 持仓概览:当前各币种持仓、盈亏、风险敞口
  • 订单状态:挂单数量、成交率、撤单率
  • 市场深度:买卖盘口价差、深度分布
  • 性能指标:延迟、吞吐量、错误率
  • 报警面板:异常事件实时滚动

嗯,这里要注意:别把Dashboard做成数据大屏。我见过有人把几十个指标全堆上去,结果根本看不清重点。我的做法是:默认只显示5个核心指标,其他指标通过点击展开

实时监控系统:你的第二双眼睛

做市商最怕什么?不是亏钱,是亏钱了还不知道。实时监控系统就是你的第二双眼睛,24小时盯着市场和你自己的系统。

我设计的监控系统分三层:

  1. 基础设施层:服务器CPU、内存、网络延迟。这些出问题,上层全白搭。
  2. 业务逻辑层:订单成交率、价差偏离度、库存周转率。这些直接反映策略是否正常。
  3. 风控层:最大回撤、单笔亏损上限、异常交易频率。一旦触发,自动暂停策略。
核心逻辑: 监控不是为了看数据,而是为了自动响应。比如,当价差超过阈值时,系统自动调整报价;当网络延迟超过500ms时,自动切换到备用服务器。

我曾经遇到过一次极端行情,比特币1分钟内暴跌5%。我们的监控系统检测到异常波动,自动将所有挂单撤掉,然后切换到保守模式。那次,我们避免了近百万的损失。所以,自动化响应比人工盯盘靠谱得多

知识体系总览

下面这张图,是我对做市商工具与平台的整体理解。你可以把它当作一个检查清单,看看自己的工具链还缺什么。

做市商工具与平台 做市商软件对比 API对接实战 Dashboard设计 实时监控系统 交易所原生 第三方平台 自研系统 REST API WebSocket 重连机制 持仓概览 订单状态 报警面板 基础设施 业务逻辑 风控层

这张图把本章的核心内容串起来了。你可以看到,工具选择是基础,API对接是桥梁,Dashboard是界面,监控系统是保障。四者缺一不可。

最后说一句: 工具和平台是死的,人是活的。别迷信某个工具能解决所有问题。我见过用Excel做做市也能赚钱的人,也见过花几百万买系统却亏得一塌糊涂的团队。关键还是你对市场的理解,以及你驾驭工具的能力。

无相订单流研究社 微信Lucian808555