Agent skill

Custom Indicators

by agiprolabs in agiprolabs/claude-trading-skills

Crypto-native indicators including NVT ratio, exchange flow, funding rate signals, holder momentum, and smart money flow

MITAuto-check passed

Install Custom Indicators

skills CLI
$ npx skills add agiprolabs/claude-trading-skills --skill custom-indicators -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install agiprolabs/claude-trading-skills custom-indicators --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/agiprolabs/claude-trading-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/custom-indicators .claude/skills/custom-indicators && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
custom-indicators
GitHub stars
410
Token cost
~3k tokens
SKILL.md length
777 words
Files
5 (incl. scripts, references)
Skills in repo
68
Repo updated
First seen
Licence
MIT

At a glance

Crypto-native indicators including NVT ratio, exchange flow, funding rate signals, holder momentum, and smart money flow

  • SKILL.md covers Why Standard TA Falls Short…, Files, Indicator 1: NVT Ratio and Indicator 2: MVRV Ratio, plus 10 more sections
  • Runs Python scripts from its folder; calls uv

What it does

Custom Indicators is an agent skill from agiprolabs/claude-trading-skills. Crypto-native indicators including NVT ratio, exchange flow, funding rate signals, holder momentum, and smart money flow

Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including scripts and reference files (for example `references/indicator_formulas.md`, `references/signal_interpretation.md` and `scripts/compute_crypto_indicators.py`).

The repository describes itself as: 68 trading, DeFi, and quantitative finance Agent Skills. Works with Claude Code, Cursor, Codex, Gemini CLI, and 30+ other tools. The licence is MIT.

Example prompts

  • “/custom-indicators”

Requirements

  • Python 3

What it can do on your machine

Read from SKILL.md and the folder at commit 981e1d7. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 2 files in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • uv

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use uv, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Custom Indicators loads about 3k tokens when it runs, and up to ~7.2k if it reads all its reference files. Until then it costs about 35 tokens; SKILL.md has 777 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~35
When it runs · the whole SKILL.md, loaded when a task matches
~3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~7.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from agiprolabs/claude-trading-skills at commit 981e1d7, republished under its MIT licence (© agiprolabs). 777 words, ~3,010 tokens.

Download SKILL.mdSave it as .claude/skills/custom-indicators/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
custom-indicators
description
Crypto-native indicators including NVT ratio, exchange flow, funding rate signals, holder momentum, and smart money flow

Custom Crypto Indicators

Why Standard TA Falls Short for Crypto

Traditional technical analysis was built for equities and forex — markets with fixed supply, regulated exchanges, and institutional-dominated order flow. Crypto markets have unique properties that demand purpose-built indicators:

  • On-chain transparency: Every transaction is public. We can measure real economic activity, not just price and volume on a single exchange.
  • Supply mechanics: Fixed or programmatic supply schedules make supply-side analysis (velocity, holder distribution) meaningful.
  • Derivatives dominance: Perpetual futures funding rates and open interest often drive spot price, not the other way around.
  • Whale concentration: A small number of wallets hold outsized supply. Tracking their behavior provides alpha that equity-market TA cannot.
  • Exchange flows: On-chain deposit/withdrawal to centralized exchanges signals intent to sell or accumulate.

This skill covers nine crypto-native indicators. Each section includes the formula, interpretation guide, data sources, and a working code snippet.

Files

FileDescription
references/indicator_formulas.mdFull formulas, parameter tables, signal ranges for all 9 indicators
references/signal_interpretation.mdComposite scoring, divergence detection, false signal filtering
scripts/compute_crypto_indicators.pyComputes all 9 indicators from free APIs or demo data
scripts/holder_momentum.pyHolder count tracking with momentum signals

Indicator 1: NVT Ratio

Network Value to Transactions — the crypto equivalent of a P/E ratio.

NVT = Market Cap / Daily On-Chain Transaction Volume (USD)
  • High NVT (> 65): Network is overvalued relative to its economic throughput. Bearish signal.
  • Low NVT (< 25): Network is undervalued or seeing heavy real usage. Bullish signal.
  • Data sources: CoinGecko (market cap), blockchain explorers or DeFiLlama (transaction volume).
python
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

Smoothing: Apply a 14-day or 28-day moving average to NVT (called NVT Signal) to reduce noise from daily volume spikes.


Indicator 2: MVRV Ratio

Market Value to Realized Value — compares the current market cap to the aggregate cost basis of all holders.

MVRV = Market Cap / Realized Cap
Realized Cap = Sum of (each UTXO * price when it last moved)
  • MVRV > 3.5: Most holders are in deep profit. Distribution likely.
  • MVRV < 1.0: Most holders are underwater. Historically marks bottoms.
  • Data sources: Glassnode, CryptoQuant (Bitcoin/Ethereum). For Solana tokens, approximate via average entry price of top holders.
python
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

For tokens without UTXO-based realized cap, estimate using average purchase price from DEX trade history multiplied by circulating supply.


Indicator 3: Exchange Flow

Net exchange deposits minus withdrawals — signals selling or accumulation intent.

Exchange Netflow = Deposits to Exchanges - Withdrawals from Exchanges
  • Positive netflow (large deposits): Holders moving tokens to exchanges, likely to sell. Bearish.
  • Negative netflow (withdrawals): Tokens leaving exchanges to cold storage. Bullish accumulation signal.
  • Data sources: CryptoQuant, Glassnode. For Solana SPL tokens, track transfers to known exchange wallets via Helius or Solana RPC.
python
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

Normalize by market cap for cross-token comparison: Netflow Ratio = Netflow / Market Cap.


Indicator 4: Funding Rate Signal

Perpetual futures contracts use funding rates to anchor price to spot.

Funding Rate = (Perp Mark Price - Spot Price) / Spot Price
             (paid every 8 hours on most exchanges)
  • Highly positive (> 0.05%): Longs pay shorts. Market is overleveraged long. Contrarian bearish.
  • Highly negative (< -0.05%): Shorts pay longs. Overleveraged short. Contrarian bullish.
  • Data sources: Binance, Bybit, dYdX APIs. Aggregate across exchanges for a volume-weighted average.
python
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

Show full SKILL.md (325 more words)Show less

Indicator 5: Open Interest Momentum

Tracks the rate of change in total open interest across derivatives exchanges.

OI Momentum = (OI_today - OI_n_days_ago) / OI_n_days_ago * 100
  • Rising OI + Rising Price: New money entering longs. Trend confirmation.
  • Rising OI + Falling Price: New shorts opening. Bearish pressure.
  • Falling OI + Rising Price: Short squeeze / closing shorts.
  • Falling OI + Falling Price: Long liquidation.
  • Data sources: CoinGlass, Binance, Bybit open interest endpoints.
python
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

Indicator 6: Holder Momentum

Tracks the net change in unique token holders over time.

Holder Momentum = (Holders_today - Holders_n_days_ago) / Holders_n_days_ago
Holder Acceleration = Holder Momentum_today - Holder Momentum_yesterday
  • Accelerating growth: Viral adoption phase. Bullish.
  • Decelerating growth: Adoption slowing. Watch for reversal.
  • Negative momentum: Holders leaving. Bearish.
  • Data sources: Helius DAS API (Solana), Etherscan token holder count, Birdeye holder stats.
python
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

See scripts/holder_momentum.py for a full tracking implementation.


Indicator 7: Liquidity Score

A composite metric combining order book depth, bid-ask spread, and DEX pool depth to estimate how easily a position can be entered/exited.

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

Where:

  • Depth Score = min(1, total_bids_within_2pct / target_position_size)
  • Spread Score = max(0, 1 - spread_bps / 100)
  • Pool Score = min(1, pool_tvl / (target_position_size * 10))
  • Default weights: w1=0.4, w2=0.3, w3=0.3
python
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

Indicator 8: Smart Money Flow

Net buying pressure from wallets identified as "smart money" (historically profitable, large balances, early entry patterns).

Smart Money Flow = Sum(smart_wallet_buys_usd) - Sum(smart_wallet_sells_usd)
SMF Ratio = Smart Money Flow / Total Volume
  • SMF Ratio > 0.1: Smart money is net accumulating. Bullish.
  • SMF Ratio < -0.1: Smart money is distributing. Bearish.
  • Data sources: Helius transaction parsing + wallet labeling, Birdeye wallet analytics, Nansen (Ethereum).
python
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

Indicator 9: Token Velocity

Measures how frequently a token changes hands relative to its supply.

Token Velocity = Daily Trading Volume (tokens) / Circulating Supply
  • High velocity (> 0.3): Speculative trading dominates. Token is being flipped, not held. Can precede dumps.
  • Low velocity (< 0.05): Holders are sitting tight. Strong hands.
  • Data sources: CoinGecko (volume, supply), DEX aggregator volumes.
python
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

Combining Indicators

No single indicator is reliable in isolation. See references/signal_interpretation.md for guidance on:

  • Building composite scores from multiple indicators
  • Detecting divergences (e.g., price rising but NVT expanding)
  • Adjusting interpretation by market regime
  • Filtering false signals

Dependencies

bash
uv pip install httpx pandas numpy

Disclaimer

All indicators and analysis provided by this skill are for informational and educational purposes only. They do not constitute financial advice. Always conduct your own research before making any investment decisions.

© agiprolabs, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files (scripts, references) in skills/custom-indicators of agiprolabs/claude-trading-skills.

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

Open the folder on GitHubat commit 981e1d7

Compare with similar skills

Custom Indicators next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Custom Indicators compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Custom Indicators this skillagiprolabs/claude-trading-skills410—~3kAutomated safety check: PassMIT
CCXT Crypto Exchange Library2025Emma/vibe-coding-cn23k1 repos~4.4kAutomated safety check: PassMIT
Crypto Derivatives StrategiesHKUDS/Vibe-Trading35k—~2.4kAutomated safety check: PassMIT
Emblemai Crypto Walletsickn33/agentic-awesome-skills47k2 repos~669Automated safety check: PassMIT
Loading Indicatorsthedaviddias/Front-End-Checklist74k—~434Automated safety check: PassMIT
Analyzing Ransomware Network Indicatorsmukul975/Anthropic-Cybersecurity-Skills34k—~796Automated safety check: PassApache-2.0

Similar skills

  • CCXT Crypto Exchange Library

    2025Emma/vibe-coding-cn

    Reference help for the CCXT library covering crypto exchange APIs, market data, trading and order management across 150+ exchanges in JavaScript, Python and PHP.

    23k GitHub starsUsed in 1 repo~4.4k tokens
    Business, Finance & HRAuto-check passed
  • Covers three crypto-derivatives approaches: perpetual funding-rate arbitrage, futures term-structure trading in contango and backwardation, and options volatility and Greeks analysis.

    35k GitHub stars~2.4k tokensUpdated today
    Business, Finance & HRAuto-check passed
  • Emblemai Crypto Wallet

    sickn33/agentic-awesome-skills

    Crypto wallet management across 7 blockchains via EmblemAI Agent Hustle API.

    47k GitHub starsUsed in 2 repos~669 tokens
    Business, Finance & HRAuto-check passed
  • Loading Indicators

    thedaviddias/Front-End-Checklist

    A skill your agent uses when auditing slow page loads, heavy assets, or rendering delays related to Show loading indicators.

    74k GitHub stars~434 tokensUpdated 2 days ago
    Frontend & DesignAuto-check passed
  • Analyzing Ransomware Network Indicators

    mukul975/Anthropic-Cybersecurity-Skills

    Identify ransomware-related network indicators, including C2 beaconing patterns, TOR exit node connections, data exfiltration flows, and encryption key exchange, by analyzing Zeek conn.log and…

    34k GitHub stars~796 tokensUpdated 1 mo ago
    SecurityAuto-check passed
  • Stack Exchange Automation

    ComposioHQ/awesome-claude-skills

    Automate Stack Exchange tasks via Rube MCP (Composio). An agent skill from ComposioHQ/awesome-claude-skills.

    77k GitHub starsUsed in 3 repos~757 tokens
    Productivity & AutomationAuto-check passed

More from agiprolabs/claude-trading-skills

All 68 skills in this repo
  • Backtrader

    agiprolabs/claude-trading-skills

    Event-driven backtesting with bar-by-bar execution, complex order types, multiple analyzers, and custom indicators

    410 GitHub stars~2.4k tokensUpdated 1 mo ago
    Auto-check passed
  • Birdeye API

    agiprolabs/claude-trading-skills

    Solana token market data via Birdeye — prices, OHLCV, trades, token metadata, security checks, and trader activity

    410 GitHub stars~1.8k tokensUpdated 1 mo ago
    Auto-check passed
  • Coingecko API

    agiprolabs/claude-trading-skills

    Broad crypto market data from CoinGecko covering 13,000+ tokens.

    410 GitHub stars~1.6k tokensUpdated 1 mo ago
    Auto-check passed
  • Cointegration Analysis

    agiprolabs/claude-trading-skills

    Cointegration testing for pairs trading using Engle-Granger, Johansen, and rolling stability analysis

    410 GitHub stars~2.1k tokensUpdated 1 mo ago
    Auto-check passed
  • Copy Trading

    agiprolabs/claude-trading-skills

    Wallet evaluation, monitoring, and copy-trade strategy design for Solana DEX trading

    410 GitHub stars~2.4k tokensUpdated 1 mo ago
    Auto-check passed
  • Correlation Analysis

    agiprolabs/claude-trading-skills

    Cross-asset correlation analysis including rolling correlation, hierarchical clustering, tail dependence, and regime-dependent correlation

    410 GitHub stars~2.4k tokensUpdated 1 mo ago
    Auto-check passed

Questions about Custom Indicators

What does Custom Indicators do?

Crypto-native indicators including NVT ratio, exchange flow, funding rate signals, holder momentum, and smart money flow. Custom Indicators is an agent skill from agiprolabs/claude-trading-skills.

How do I install Custom Indicators in Claude Code?

Run `npx skills add agiprolabs/claude-trading-skills --skill custom-indicators -a claude-code`. Or copy the skill folder (skills/custom-indicators in agiprolabs/claude-trading-skills) into .claude/skills/custom-indicators in your project. Claude Code loads it when a task matches its description.

How do I install Custom Indicators in Codex?

Run `npx skills add agiprolabs/claude-trading-skills --skill custom-indicators -a codex`. Or copy the skill folder (skills/custom-indicators in agiprolabs/claude-trading-skills) into .agents/skills/custom-indicators in your project. Codex loads it when a task matches its description.

Can I use Custom Indicators in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add agiprolabs/claude-trading-skills --skill custom-indicators -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/custom-indicators, .gemini/skills/custom-indicators, .github/skills/custom-indicators and .opencode/skills/custom-indicators in your project.

What does Custom Indicators need to run?

Going by SKILL.md and its folder, Custom Indicators needs Python for the scripts in its folder and the command-line tools its instructions call (uv). Our summary lists: Python 3.

Does Custom Indicators access the network?

SKILL.md contains no URLs. Its commands use uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Custom Indicators safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Custom Indicators use?

Custom Indicators is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Custom Indicators use?

About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.2k tokens, read only when the agent opens those files.

What are the alternatives to Custom Indicators?

Skills that share tags, products or a category with Custom Indicators: CCXT Crypto Exchange Library (2025Emma/vibe-coding-cn, 23k stars), Crypto Derivatives Strategies (HKUDS/Vibe-Trading, 35k stars), Emblemai Crypto Wallet (sickn33/agentic-awesome-skills, 47k stars) and Loading Indicators (thedaviddias/Front-End-Checklist, 74k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Custom Indicators?

agiprolabs (a GitHub user) maintains it in agiprolabs/claude-trading-skills, which has 410 GitHub stars. The repository holds 68 skills in this directory. The repository was last updated on September 3, 2026.

Source: agiprolabs/claude-trading-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.