mcpField
M
market-microstructure

market-microstructure

github.com/agiprolabs数据与数据库456522 次安装8 周前更新
代码仓库

关于 market-microstructure

用于分析 Solana DEX 的交易流,聚焦以 AMM 池取代订单簿的市场。内容涵盖交易分类、成交量与买卖压力指标、动量信号、代币周转率及刷量检查。

主要功能

  1. 01将兑换交易分类为买入或卖出
  2. 02构建按时间和规模划分的成交量分布
  3. 03衡量买卖双方压力
  4. 04计算动量与周转率指标
  5. 05识别疑似刷量行为

适用场景

  1. 01评估代币的买卖资金流
  2. 02区分大额交易与散户规模交易
  3. 03调查成交量激增和疑似刷量

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/agiprolabs/claude-trading-skills --skill market-microstructure

安装后在 Claude Code 中输入/market-microstructure确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
flow_signals.md
trade_classification.md
wash_trading.md
scripts/
trade_flow_analysis.py
volume_profile.py

详细介绍

市场微观结构 — DEX 订单流分析

概述

Solana DEX 上的市场微观结构与传统金融有着根本区别。 AMM 上没有订单簿——每笔交易都是与流动性池进行的交换。尽管如此, 交易流分析仍然很有价值:交换的顺序、规模和方向可以揭示 吸筹、派发、巨鲸活动和刷量交易模式。

此技能涵盖:

  • 交易分类——根据交换方向识别买入与卖出
  • 成交量分布——按时间和规模进行细分
  • 买卖压力——比率指标、净流量、交易笔数不对称性
  • 交易规模分布——巨鲸检测、散户与机构资金流
  • 资金流动量信号——加速度、成交量激增、综合评分
  • 代币周转率——将换手率作为情绪代理指标
  • 刷量交易检测——识别虚假成交量和机器人模式

DEX 上的微观结构为何重要

在 CEX 上,微观结构指的是订单簿深度、买卖价差和队列位置。 在 AMM 上,流动性位于池曲线中——没有价差或队列。但交易记录 (按时间顺序排列的交换列表)包含丰富的信号:

  1. 谁在交易?——巨鲸钱包与散户,聪明资金与机器人
  2. 他们如何交易?——单笔大额交换与 DCA 式拆分交易
  3. 他们何时交易?——围绕事件或时区聚集的成交量
  4. 交易方向是什么?——滚动窗口内的净买入或卖出压力

这些信号有助于确定入场/离场时机、仓位规模和代币质量评分。

交易分类

买入与卖出的识别

在 Solana DEX 上,每笔交换都有一个输入代币和一个输出代币:

交换方向分类含义
SOL → Token买入交易者花费 SOL 买入代币
USDC → Token买入交易者花费稳定币买入代币
Token → SOL卖出交易者将代币换回 SOL
Token → USDC卖出交易者将代币换成稳定币
Token A → Token B视情况而定根据你正在分析的代币进行分类
API 数据来源

Birdeye 交易历史(/defi/txs/token):

  • 返回 side 字段:"buy" 或 "sell"
  • 包含 from(输入代币)和 to(输出代币)的数量

DexScreener 交易对交易:

  • 返回 type 字段,表示相对于该交易对的交换方向

Helius 解析后的交易:

  • 解析交换指令,提取输入/输出 mint 和数量
  • 根据哪个 mint 与目标代币匹配进行分类

有关详细分类逻辑和规模分档,请参阅 references/trade_classification.md。

成交量分布

按时间划分的分布

将交易成交量汇总到固定时间段,以识别模式:

# Hourly volume profile
hourly_volume = {}
for trade in trades:
    hour = trade["timestamp"] // 3600 * 3600
    hourly_volume.setdefault(hour, {"buy_vol": 0, "sell_vol": 0})
    if trade["side"] == "buy":
        hourly_volume[hour]["buy_vol"] += trade["volume_usd"]
    else:
        hourly_volume[hour]["sell_vol"] += trade["volume_usd"]

按时间划分的分布中的关键指标:

  • 高峰时段——代币交易最活跃的时间是什么时候?
  • 成交量趋势——成交量是在增加、减少还是保持稳定?
  • 成交量异常——超过滚动平均值 3 倍的激增
按规模划分的分布

将交易划分到不同规模档位,以区分巨鲸活动与散户活动:

档位SOL 范围典型参与者
微额< 0.1 SOL尘埃交易/测试交易
小额0.1 – 1 SOL散户交易者
中额1 – 10 SOL活跃交易者
大额10 – 50 SOL大额仓位交易者
巨鲸50+ SOL巨鲸/机构

买卖压力指标

核心比率
def compute_pressure(trades: list[dict], period_seconds: int = 3600) -> dict:
    """Compute buy/sell pressure metrics over a time period."""
    buy_vol = sum(t["volume_usd"] for t in trades if t["side"] == "buy")
    sell_vol = sum(t["volume_usd"] for t in trades if t["side"] == "sell")
    total_vol = buy_vol + sell_vol

    buy_trades = sum(1 for t in trades if t["side"] == "buy")
    sell_trades = sum(1 for t in trades if t["side"] == "sell")
    total_trades = buy_trades + sell_trades

    return {
        "buy_sell_ratio": buy_vol / sell_vol if sell_vol > 0 else float("inf"),
        "buy_volume_pct": buy_vol / total_vol if total_vol > 0 else 0.5,
        "net_flow_usd": buy_vol - sell_vol,
        "trade_count_ratio": buy_trades / total_trades if total_trades > 0 else 0.5,
    }
信号解读
指标看涨中性看跌
买入成交量占比> 60%40–60%< 40%
净流量为正且增加接近零为负且增加
交易笔数比率> 0.550.45–0.55< 0.45
大额交易比率买入方占比高均衡卖出方占比高

完整的信号目录和综合评分,请参阅 references/flow_signals.md。

交易规模分布

分析交易规模的分布,可以揭示市场结构:

import statistics

def analyze_trade_sizes(trades: list[dict]) -> dict:
    """Analyze trade size distribution."""
    sizes = [t["volume_usd"] for t in trades]
    if not sizes:
        return {}

    return {
        "mean": statistics.mean(sizes),
        "median": statistics.median(sizes),
        "stdev": statistics.stdev(sizes) if len(sizes) > 1 else 0,
        "skew_indicator": statistics.mean(sizes) / statistics.median(sizes),
        "max_trade": max(sizes),
        "whale_pct": sum(s for s in sizes if s > 5000) / sum(sizes),
    }

偏斜解读: skew_indicator(均值/中位数)远高于 1.0,表示分布呈厚尾特征——少数大额交易占据主导。这在有巨鲸参与的代币中很常见,但也可能是操纵信号。

从交易流量中获取动量信号

成交量加速

将当前时段的成交量与上一时段进行比较:

acceleration = current_volume / previous_volume if previous_volume > 0 else 0
  • acceleration > 2.0 — 成交量激增,可能即将突破或暴跌
  • acceleration 0.8–1.2 — 活跃度稳定
  • acceleration < 0.5 — 市场兴趣正在消退
买入压力加速

跟踪买入比例随时间的变化:

current_buy_ratio = current_buy_vol / current_total_vol
previous_buy_ratio = prev_buy_vol / prev_total_vol
buy_momentum = current_buy_ratio - previous_buy_ratio

当成交量上升时,正值 buy_momentum 是强烈的吸筹信号。

代币周转率

代币周转率衡量代币易手的频率:

velocity = daily_volume / circulating_supply
周转率解读
< 0.01活跃度低、流动性差或持有者坚定持有
0.01–0.05正常交易活动
0.05–0.20交易活跃,可能存在投机行为
> 0.20周转率极高,可能存在洗售交易

周转率高且独立交易者数量少,是洗售交易的危险信号。

洗售交易检测

洗售交易会虚增成交量,让代币看起来比实际更活跃。 主要检测信号:

  1. 独立交易者比例低 — unique_wallets / trade_count < 0.3
  2. 成交量/TVL 异常 — daily_volume / tvl > 10(成交量远超流动性)
  3. 交易规模均一 — 交易规模分布的熵较低
  4. 自我交易 — 短时间内同一钱包同时出现在交易双方
  5. 共同注资集群 — 多个钱包由同一来源注资

详细的检测方法和评分,请参阅 references/wash_trading.md。

数据来源

Birdeye API

Solana 代币交易历史的主要来源:

  • GET /defi/txs/token — 代币近期交易
  • GET /defi/ohlcv — 包含成交量的 K 线数据
  • GET /defi/price/volume — 聚合成交量数据

需要 API 密钥。端点详情请参阅 birdeye-api 技能。

DexScreener API

免费且无需身份验证的交易对级数据替代方案:

  • GET /latest/dex/tokens/{address} — 包含成交量的代币交易对
  • GET /latest/dex/pairs/solana/{pairAddress} — 交易对详情
Helius API

用于钱包级交易分析和已解析的交易:

  • 解析兑换交易以提取交易详情
  • 将交易归属到特定钱包
  • 交易解析方法请参阅 helius-api 技能。

综合动量评分

将多个流量信号合并为单一评分(范围:-100 至 +100):

def compute_momentum_score(
    buy_ratio: float,
    volume_accel: float,
    whale_buy_pct: float,
    unique_trader_trend: float,
) -> float:
    """Compute composite momentum score from flow signals.

    Args:
        buy_ratio: Buy volume / total volume (0 to 1).
        volume_accel: Current vol / previous vol.
        whale_buy_pct: Whale buy volume / total whale volume (0 to 1).
        unique_trader_trend: Change in unique traders vs previous period.

    Returns:
        Score from -100 (strong sell pressure) to +100 (strong buy pressure).
    """
    # Buy ratio component: 0.5 = neutral, maps to [-40, +40]
    buy_component = (buy_ratio - 0.5) * 80

    # Volume acceleration: >1 = growing, maps to [-20, +20]
    vol_component = min(max((volume_accel - 1.0) * 20, -20), 20)

    # Whale direction: 0.5 = neutral, maps to [-25, +25]
    whale_component = (whale_buy_pct - 0.5) * 50

    # Unique trader growth: positive = healthy, maps to [-15, +15]
    trader_component = min(max(unique_trader_trend * 15, -15), 15)

    score = buy_component + vol_component + whale_component + trader_component
    return max(-100, min(100, score))
评分范围解读
+60 至 +100强劲吸筹 — 买入压力大
+20 至 +60温和买入 — 谨慎吸筹
-20 至 +20中性/流量均衡
-60 至 -20温和卖出 — 正在进行派发
-100 至 -60强劲派发 — 卖出压力大

与其他技能集成

技能关联方式
birdeye-api交易历史和成交量的主要数据来源
helius-api从已解析的交易中获取归属到钱包的交易数据
liquidity-analysis成交量/TVL 比率,以及流量信号的流动性背景
whale-tracking识别巨鲸钱包,以便将大额交易归属到具体钱包
token-holder-analysis为周转率指标提供供应分布背景
position-sizing使用流量信号调整入场规模
regime-detection将流量动量与市场状态分类结合

文件

参考资料
  • references/trade_classification.md — 买入/卖出分类逻辑、规模分档和聚合
  • references/flow_signals.md — 完整信号目录,包含公式和解读
  • references/wash_trading.md — 检测方法、指标和风险评分
脚本
  • scripts/trade_flow_analysis.py — 获取交易数据、分类、计算资金流信号和动量
  • scripts/volume_profile.py — 按小时统计成交量分布、检测趋势、识别异常

评论

支持 Markdown