市场做市技能Skill mm

这是一个自动化市场做市策略,专为预测市场设计,实现双向报价、库存管理、波动性调整价差和风险控制,支持Polymarket和Kalshi平台。提供量化交易、算法交易、市场做市、库存管理、风险控制、预测市场、双向报价和配置监控等关键词。

算法交易 0 次安装 0 次浏览 更新于 3/9/2026

name: mm description: “市场做市 - 带库存管理的双向报价” emoji: “📊” gates: envs: anyOf: - POLY_API_KEY - KALSHI_API_KEY

市场做市技能

在预测市场进行自动化双向报价,包含库存倾斜、波动性调整价差和风险控制。

支持平台

  • Polymarket(仅发单做市订单,零吃单费用)
  • Kalshi

聊天命令

生命周期

/mm start <platform> <marketId> <tokenId> [flags]   启动市场做市
/mm stop <id>                                        停止并取消所有订单
/mm list                                             列出活跃做市商

监控

/mm status                     所有活跃做市商概览
/mm status <id>                单一做市商详细状态

配置

/mm config <id>                以 JSON 格式查看当前配置
/mm config <id> --spread 3     更新配置(下次重报价生效)

启动标志

标志 默认值 描述
--spread N 2 基础半价差(美分)
--min-spread N 1 最小价差下限(美分)
--max-spread N 10 最大价差上限(美分)
--size N 50 每边订单大小(股数)
--max-inventory N 500 激进倾斜前的最大库存
--skew N 0.5 库存倾斜因子(0-1)
--vol-mult N 10 价差扩大波动性乘数
--alpha N 0.3 公平值平滑 EMA 的 alpha 值(0-1)
--fv-method M weighted_mid 公平值方法:mid_price、weighted_mid、vwap、ema
--interval N 5000 重报价间隔(毫秒)
--threshold N 1 触发重报价的最小价格变化(美分)
--max-pos N 1000 最大头寸价值(美元)
--max-loss N 100 自动停止前的最大损失(美元)
--max-orders N 1 每边订单数(层级)
--level-spacing N (=spread) 价格层级间的美分间隔
--level-decay N 0.5 每层级大小衰减(0-1,例如 0.5 = 每层级为前一级的一半)
--neg-risk true false 启用负风险模式(Polymarket 加密货币)
--name "Name" auto 结果的显示名称

示例

# 使用默认值启动
/mm start polymarket 0xabc123 98765

# 自定义价差和大小
/mm start polymarket 0xabc123 98765 --spread 3 --size 100 --max-inventory 1000

# 为流动性市场设置紧凑价差
/mm start polymarket 0xabc123 98765 --spread 1 --min-spread 1 --max-spread 5 --interval 2000

# 三层报价:L1=50 股,L2=25,L3=12 — 间隔 2 美分
/mm start polymarket 0xabc123 98765 --max-orders 3 --level-spacing 2 --level-decay 0.5 --size 50

# 检查所有运行中的做市商
/mm status

# 动态扩大价差
/mm config polymarket_98765678 --spread 4

# 关闭
/mm stop polymarket_98765678

工作原理

  1. 公平值 从订单簿计算(加权中点、VWAP 或 EMA)
  2. 价差 根据近期波动性调整(波动性大的市场价差更大)
  3. 倾斜 将报价移离超重侧以管理库存
  4. 报价 作为仅发单做市订单放置(买单和卖单)
  5. 重报价 循环:取消所有,重新计算,放置新订单
  6. 自动停止 如果实现盈亏超过最大损失阈值

API 使用

import { createMMStrategy, type MMConfig } from '../trading/market-making';

const config: MMConfig = {
  id: 'btc-yes',
  platform: 'polymarket',
  marketId: '0x...',
  tokenId: '12345',
  outcomeName: 'BTC > 100k',
  baseSpreadCents: 2,
  minSpreadCents: 1,
  maxSpreadCents: 10,
  orderSize: 50,
  maxInventory: 500,
  skewFactor: 0.5,
  volatilityMultiplier: 10,
  fairValueAlpha: 0.3,
  fairValueMethod: 'weighted_mid',
  requoteIntervalMs: 5000,
  requoteThresholdCents: 1,
  maxPositionValueUsd: 1000,
  maxLossUsd: 100,
  maxOrdersPerSide: 1,
};

const strategy = createMMStrategy(config, { execution, feeds });
botManager.registerStrategy(strategy);
await botManager.startBot(strategy.config.id);