关于 market-microstructure
用于分析 Solana DEX 的交易流,聚焦以 AMM 池取代订单簿的市场。内容涵盖交易分类、成交量与买卖压力指标、动量信号、代币周转率及刷量检查。
主要功能
- 01将兑换交易分类为买入或卖出
- 02构建按时间和规模划分的成交量分布
- 03衡量买卖双方压力
- 04计算动量与周转率指标
- 05识别疑似刷量行为
适用场景
- 01评估代币的买卖资金流
- 02区分大额交易与散户规模交易
- 03调查成交量激增和疑似刷量
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ agiprolabs/ claude-trading-skills --skill market-microstructure安装后在 Claude Code 中输入/market-microstructure确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/flow_signals.mdtrade_classification.mdwash_trading.mdscripts/trade_flow_analysis.pyvolume_profile.py详细介绍
市场微观结构 — DEX 订单流分析
概述
Solana DEX 上的市场微观结构与传统金融有着根本区别。 AMM 上没有订单簿——每笔交易都是与流动性池进行的交换。尽管如此, 交易流分析仍然很有价值:交换的顺序、规模和方向可以揭示 吸筹、派发、巨鲸活动和刷量交易模式。
此技能涵盖:
- 交易分类——根据交换方向识别买入与卖出
- 成交量分布——按时间和规模进行细分
- 买卖压力——比率指标、净流量、交易笔数不对称性
- 交易规模分布——巨鲸检测、散户与机构资金流
- 资金流动量信号——加速度、成交量激增、综合评分
- 代币周转率——将换手率作为情绪代理指标
- 刷量交易检测——识别虚假成交量和机器人模式
DEX 上的微观结构为何重要
在 CEX 上,微观结构指的是订单簿深度、买卖价差和队列位置。 在 AMM 上,流动性位于池曲线中——没有价差或队列。但交易记录 (按时间顺序排列的交换列表)包含丰富的信号:
- 谁在交易?——巨鲸钱包与散户,聪明资金与机器人
- 他们如何交易?——单笔大额交换与 DCA 式拆分交易
- 他们何时交易?——围绕事件或时区聚集的成交量
- 交易方向是什么?——滚动窗口内的净买入或卖出压力
这些信号有助于确定入场/离场时机、仓位规模和代币质量评分。
交易分类
买入与卖出的识别
在 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.55 | 0.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 | 周转率极高,可能存在洗售交易 |
周转率高且独立交易者数量少,是洗售交易的危险信号。
洗售交易检测
洗售交易会虚增成交量,让代币看起来比实际更活跃。 主要检测信号:
- 独立交易者比例低 —
unique_wallets / trade_count < 0.3 - 成交量/TVL 异常 —
daily_volume / tvl > 10(成交量远超流动性) - 交易规模均一 — 交易规模分布的熵较低
- 自我交易 — 短时间内同一钱包同时出现在交易双方
- 共同注资集群 — 多个钱包由同一来源注资
详细的检测方法和评分,请参阅 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— 按小时统计成交量分布、检测趋势、识别异常