mcpField
C
custom-indicators

custom-indicators

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

关于 custom-indicators

面向加密货币市场分析的技能,提供 9 种链上与衍生品指标的公式、解读指南和 Python 计算脚本,适合研究交易信号的分析者。

主要功能

  1. 01计算 9 种加密货币原生指标
  2. 02提供公式与信号解读指南
  3. 03支持多指标综合评分与背离识别
  4. 04通过免费 API 或演示数据计算指标

适用场景

  1. 01评估链上活动与市场估值
  2. 02分析交易所资金流和持仓变化
  3. 03跟踪代币持有者增长及流动性
  4. 04结合多个指标筛选交易信号

安装

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

$npx skills add https://github.com/agiprolabs/claude-trading-skills --skill custom-indicators

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

包含的文件

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

references/
indicator_formulas.md
signal_interpretation.md
scripts/
compute_crypto_indicators.py
holder_momentum.py

详细介绍

自定义加密货币指标

为什么标准技术分析不适用于加密货币

传统技术分析是为股票和外汇市场设计的——这些市场具有固定的供应量、受监管的交易所,以及以机构为主导的订单流。 加密货币市场具有独特的属性,因此需要专门设计的指标:

  • 链上透明度:每笔交易都是公开的。我们可以衡量真实的经济活动,而不仅仅是单一交易所的价格和交易量。
  • 供应机制:固定或按程序设定的供应计划,使供应侧分析(流通速度、持有者分布)具有意义。
  • 衍生品主导:永续期货的资金费率和未平仓合约量往往会推动现货价格,而非相反。
  • 巨鲸集中度:少数钱包持有了大量供应。追踪它们的行为,可以获得股票市场技术分析无法提供的超额收益。
  • 交易所资金流:链上向中心化交易所存入或提取资产,表明了卖出或积累的意图。

本技能涵盖九种原生于加密货币的指标。每个章节都包含公式、解读指南、数据源和可运行的代码片段。

文件

文件描述
references/indicator_formulas.md全部 9 种指标的完整公式、参数表和信号范围
references/signal_interpretation.md综合评分、背离检测、错误信号过滤
scripts/compute_crypto_indicators.py使用免费 API 或演示数据计算全部 9 种指标
scripts/holder_momentum.py持有者数量追踪及动量信号

指标 1:NVT 比率

网络价值与交易量比率——相当于加密货币领域的市盈率。

NVT = Market Cap / Daily On-Chain Transaction Volume (USD)
  • NVT 高(> 65):相对于其经济吞吐量,网络被高估。看跌信号。
  • NVT 低(< 25):网络被低估,或实际使用量很大。看涨信号。
  • 数据源:CoinGecko(市值)、区块链浏览器或 DeFiLlama(交易量)。
def nvt_ratio(market_cap: float, daily_tx_volume_usd: float) -> float:
    """Compute NVT ratio.

    Args:
        market_cap: Current market capitalization in USD.
        daily_tx_volume_usd: 24h on-chain transaction volume in USD.

    Returns:
        NVT ratio value.
    """
    if daily_tx_volume_usd <= 0:
        return float("inf")
    return market_cap / daily_tx_volume_usd

平滑处理:对 NVT 应用 14 天或 28 天移动平均线(称为 NVT 信号),以减少每日交易量激增造成的噪声。


指标 2:MVRV 比率

市场价值与已实现价值比率——比较当前市值与所有持有者的总体成本基础。

MVRV = Market Cap / Realized Cap
Realized Cap = Sum of (each UTXO * price when it last moved)
  • MVRV > 3.5:大多数持有者都获得了丰厚利润,可能出现派发。
  • MVRV < 1.0:大多数持有者都处于亏损状态。历史上,这通常意味着市场触底。
  • 数据源:Glassnode、CryptoQuant(Bitcoin/Ethereum)。对于 Solana 代币,可根据大额持有者的平均买入价格进行估算。
def mvrv_ratio(market_cap: float, realized_cap: float) -> float:
    """Compute MVRV ratio.

    Args:
        market_cap: Current market capitalization in USD.
        realized_cap: Realized capitalization (aggregate cost basis).

    Returns:
        MVRV ratio value.
    """
    if realized_cap <= 0:
        return float("inf")
    return market_cap / realized_cap

对于没有基于 UTXO 的已实现市值的代币,可根据 DEX 交易历史中的平均买入价格乘以流通供应量进行估算。


指标 3:交易所资金流

交易所净存入量减去净提取量——表明卖出或积累的意图。

Exchange Netflow = Deposits to Exchanges - Withdrawals from Exchanges
  • 净流入为正(大量存入):持有者将代币转入交易所,可能准备卖出。看跌。
  • 净流入为负(提取):代币从交易所转入冷存储。看涨的积累信号。
  • 数据源:CryptoQuant、Glassnode。对于 Solana SPL 代币,可通过 Helius 或 Solana RPC 追踪转入已知交易所钱包的资产。
def exchange_netflow(
    deposits_usd: float, withdrawals_usd: float
) -> tuple[float, str]:
    """Compute exchange netflow and interpret.

    Returns:
        Tuple of (netflow_value, signal_label).
    """
    netflow = deposits_usd - withdrawals_usd
    if netflow > 0:
        signal = "bearish"
    elif netflow < 0:
        signal = "bullish"
    else:
        signal = "neutral"
    return netflow, signal

按市值归一化,以便跨代币比较: Netflow Ratio = Netflow / Market Cap。


指标 4:资金费率信号

永续期货合约使用资金费率,使价格锚定现货价格。

Funding Rate = (Perp Mark Price - Spot Price) / Spot Price
             (paid every 8 hours on most exchanges)
  • 资金费率极高且为正(> 0.05%):多头向空头支付资金费。市场多头杠杆过高。反向看跌。
  • 资金费率极低且为负(< -0.05%):空头向多头支付资金费。市场空头杠杆过高。反向看涨。
  • 数据源:Binance、Bybit、dYdX API。汇总各交易所数据,计算成交量加权平均值。
def funding_rate_signal(
    rates: list[float], weights: list[float] | None = None
) -> tuple[float, str]:
    """Volume-weighted average funding rate with signal.

    Args:
        rates: Funding rates from multiple exchanges.
        weights: Optional volume weights per exchange.
    """
    import numpy as np

    if weights is None:
        weights = [1.0 / len(rates)] * len(rates)
    vw_rate = float(np.average(rates, weights=weights))
    if vw_rate > 0.0005:
        signal = "bearish"
    elif vw_rate < -0.0005:
        signal = "bullish"
    else:
        signal = "neutral"
    return vw_rate, signal

指标 5:未平仓合约量动能

跟踪衍生品交易所未平仓合约总量的变化率。

OI Momentum = (OI_today - OI_n_days_ago) / OI_n_days_ago * 100
  • 未平仓合约量上升 + 价格上涨:新增资金进入多头。确认趋势。
  • 未平仓合约量上升 + 价格下跌:新增空头仓位。看跌压力。
  • 未平仓合约量下降 + 价格上涨:空头挤压/空头平仓。
  • 未平仓合约量下降 + 价格下跌:多头清算。
  • 数据来源:CoinGlass、Binance、Bybit 的未平仓合约量接口。
def oi_momentum(
    oi_series: list[float], lookback: int = 7
) -> float:
    """Compute open interest momentum as percentage change.

    Args:
        oi_series: Daily open interest values (newest last).
        lookback: Number of days for momentum calculation.
    """
    if len(oi_series) < lookback + 1:
        return 0.0
    old = oi_series[-(lookback + 1)]
    new = oi_series[-1]
    if old <= 0:
        return 0.0
    return (new - old) / old * 100.0

指标 6:持有者动能

跟踪独立代币持有者数量随时间的净变化。

Holder Momentum = (Holders_today - Holders_n_days_ago) / Holders_n_days_ago
Holder Acceleration = Holder Momentum_today - Holder Momentum_yesterday
  • 增长加速:病毒式普及阶段。看涨。
  • 增长放缓:普及速度减慢。留意反转。
  • 负向动能:持有者正在离场。看跌。
  • 数据来源:Helius DAS API(Solana)、Etherscan 代币持有者数量、Birdeye 持有者统计数据。
def holder_momentum(
    holder_counts: list[int], lookback: int = 7
) -> tuple[float, float]:
    """Compute holder momentum and acceleration.

    Returns:
        Tuple of (momentum_pct, acceleration).
    """
    if len(holder_counts) < lookback + 2:
        return 0.0, 0.0
    old = holder_counts[-(lookback + 1)]
    new = holder_counts[-1]
    prev_old = holder_counts[-(lookback + 2)]
    prev_new = holder_counts[-2]
    mom = (new - old) / old if old > 0 else 0.0
    prev_mom = (prev_new - prev_old) / prev_old if prev_old > 0 else 0.0
    accel = mom - prev_mom
    return mom, accel

完整的跟踪实现请参见 scripts/holder_momentum.py。


指标 7:流动性评分

综合订单簿深度、买卖价差和 DEX 池深度,估算建立/退出仓位的难易程度。

Liquidity Score = w1 * Depth Score + w2 * Spread Score + w3 * Pool Score

其中:

  • 深度评分 = min(1, total_bids_within_2pct / target_position_size)
  • 价差评分 = max(0, 1 - spread_bps / 100)
  • 池评分 = min(1, pool_tvl / (target_position_size * 10))
  • 默认权重:w1=0.4, w2=0.3, w3=0.3
def liquidity_score(
    depth_usd: float,
    spread_bps: float,
    pool_tvl: float,
    position_size: float,
    weights: tuple[float, float, float] = (0.4, 0.3, 0.3),
) -> float:
    """Composite liquidity score from 0 (illiquid) to 1 (highly liquid)."""
    depth_s = min(1.0, depth_usd / position_size) if position_size > 0 else 0
    spread_s = max(0.0, 1.0 - spread_bps / 100.0)
    pool_s = min(1.0, pool_tvl / (position_size * 10)) if position_size > 0 else 0
    return weights[0] * depth_s + weights[1] * spread_s + weights[2] * pool_s

指标 8:聪明钱流向

被识别为“聪明钱”的钱包(历史上盈利、大额余额、较早入场的模式)所产生的净买入压力。

Smart Money Flow = Sum(smart_wallet_buys_usd) - Sum(smart_wallet_sells_usd)
SMF Ratio = Smart Money Flow / Total Volume
  • SMF 比率 > 0.1:聪明钱正在净买入。看涨。
  • SMF 比率 < -0.1:聪明钱正在分发。看跌。
  • 数据来源:Helius 交易解析和钱包标记、Birdeye 钱包分析、Nansen(Ethereum)。
def smart_money_flow(
    smart_buys_usd: float,
    smart_sells_usd: float,
    total_volume_usd: float,
) -> tuple[float, float, str]:
    """Compute smart money flow and ratio.

    Returns:
        Tuple of (net_flow, smf_ratio, signal).
    """
    net = smart_buys_usd - smart_sells_usd
    ratio = net / total_volume_usd if total_volume_usd > 0 else 0.0
    if ratio > 0.1:
        signal = "bullish"
    elif ratio < -0.1:
        signal = "bearish"
    else:
        signal = "neutral"
    return net, ratio, signal

指标 9:代币周转率

衡量代币相对于其供应量的易手频率。

Token Velocity = Daily Trading Volume (tokens) / Circulating Supply
  • 周转率高(> 0.3):投机交易占主导。代币在被频繁转手,而非持有。可能预示抛售。
  • 周转率低(< 0.05):持有者坚定持有。强势持仓者。
  • 数据来源:CoinGecko(交易量、供应量)、DEX 聚合器交易量。
def token_velocity(
    daily_volume_tokens: float, circulating_supply: float
) -> tuple[float, str]:
    """Compute token velocity.

    Returns:
        Tuple of (velocity, interpretation).
    """
    if circulating_supply <= 0:
        return 0.0, "unknown"
    vel = daily_volume_tokens / circulating_supply
    if vel > 0.3:
        interp = "high_speculation"
    elif vel > 0.1:
        interp = "moderate"
    elif vel > 0.05:
        interp = "low"
    else:
        interp = "very_low_strong_holders"
    return vel, interp

组合指标

没有任何单一指标能独立提供可靠信号。如何进行以下操作,请参见 references/signal_interpretation.md:

  • 根据多个指标构建综合评分
  • 检测背离(例如,价格上涨但 NVT 扩大)
  • 根据市场状态调整解读
  • 过滤错误信号

依赖项

uv pip install httpx pandas numpy

免责声明

本技能提供的所有指标和分析仅用于提供信息和教育目的,不构成财务建议。做出任何投资决策之前,请务必自行研究。

评论

支持 Markdown