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.
Crypto-native indicators including NVT ratio, exchange flow, funding rate signals, holder momentum, and smart money flow
$ npx skills add agiprolabs/claude-trading-skills --skill custom-indicators -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install agiprolabs/claude-trading-skills custom-indicators --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "custom-indicators" agent skill from https://github.com/agiprolabs/claude-trading-skills/tree/main/skills/custom-indicators into .claude/skills/custom-indicators/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "custom-indicators", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/agiprolabs/claude-trading-skills/tree/main/skills/custom-indicatorsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add agiprolabs/claude-trading-skills --skill custom-indicators -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install agiprolabs/claude-trading-skills custom-indicators --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/agiprolabs/claude-trading-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/custom-indicators .agents/skills/custom-indicators && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "custom-indicators" agent skill from https://github.com/agiprolabs/claude-trading-skills/tree/main/skills/custom-indicators into .agents/skills/custom-indicators/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "custom-indicators", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add agiprolabs/claude-trading-skills --skill custom-indicators -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install agiprolabs/claude-trading-skills custom-indicators --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/agiprolabs/claude-trading-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/custom-indicators .cursor/skills/custom-indicators && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "custom-indicators" agent skill from https://github.com/agiprolabs/claude-trading-skills/tree/main/skills/custom-indicators into .cursor/skills/custom-indicators/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "custom-indicators", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/agiprolabs/claude-trading-skills.git --path skills/custom-indicators--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add agiprolabs/claude-trading-skills --skill custom-indicators -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install agiprolabs/claude-trading-skills custom-indicators --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/agiprolabs/claude-trading-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/custom-indicators .gemini/skills/custom-indicators && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "custom-indicators" agent skill from https://github.com/agiprolabs/claude-trading-skills/tree/main/skills/custom-indicators into .gemini/skills/custom-indicators/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "custom-indicators", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install agiprolabs/claude-trading-skills custom-indicatorsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add agiprolabs/claude-trading-skills --skill custom-indicators -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/agiprolabs/claude-trading-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/custom-indicators .github/skills/custom-indicators && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "custom-indicators" agent skill from https://github.com/agiprolabs/claude-trading-skills/tree/main/skills/custom-indicators into .github/skills/custom-indicators/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "custom-indicators", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add agiprolabs/claude-trading-skills --skill custom-indicators -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install agiprolabs/claude-trading-skills custom-indicators --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/agiprolabs/claude-trading-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/custom-indicators .opencode/skills/custom-indicators && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "custom-indicators" agent skill from https://github.com/agiprolabs/claude-trading-skills/tree/main/skills/custom-indicators into .opencode/skills/custom-indicators/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "custom-indicators", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
custom-indicatorsCrypto-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. 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.
Read from SKILL.md and the folder at commit 981e1d7. It shows what the files ask for, not the result of running them.
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.
Ships 2 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
uvFrom the folder's file list and the shell code blocks in SKILL.md.
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.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from agiprolabs/claude-trading-skills at commit 981e1d7, republished under its MIT licence (© agiprolabs). 777 words, ~3,010 tokens.
.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.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:
This skill covers nine crypto-native indicators. Each section includes the formula, interpretation guide, data sources, and a working code snippet.
| File | Description |
|---|---|
references/indicator_formulas.md | Full formulas, parameter tables, signal ranges for all 9 indicators |
references/signal_interpretation.md | Composite scoring, divergence detection, false signal filtering |
scripts/compute_crypto_indicators.py | Computes all 9 indicators from free APIs or demo data |
scripts/holder_momentum.py | Holder count tracking with momentum signals |
Network Value to Transactions — the crypto equivalent of a P/E ratio.
NVT = Market Cap / Daily On-Chain Transaction Volume (USD)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_usdSmoothing: Apply a 14-day or 28-day moving average to NVT (called NVT Signal) to reduce noise from daily volume spikes.
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)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_capFor tokens without UTXO-based realized cap, estimate using average purchase price from DEX trade history multiplied by circulating supply.
Net exchange deposits minus withdrawals — signals selling or accumulation intent.
Exchange Netflow = Deposits to Exchanges - Withdrawals from Exchangesdef 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, signalNormalize by market cap for cross-token comparison:
Netflow Ratio = Netflow / Market Cap.
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)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, signalTracks the rate of change in total open interest across derivatives exchanges.
OI Momentum = (OI_today - OI_n_days_ago) / OI_n_days_ago * 100def 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.0Tracks 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_yesterdaydef 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, accelSee scripts/holder_momentum.py for a full tracking implementation.
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 ScoreWhere:
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.3def 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_sNet 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 Volumedef 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, signalMeasures how frequently a token changes hands relative to its supply.
Token Velocity = Daily Trading Volume (tokens) / Circulating Supplydef 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, interpNo single indicator is reliable in isolation. See
references/signal_interpretation.md for guidance on:
uv pip install httpx pandas numpyAll 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
SKILL.md and 4 other files (scripts, references) in skills/custom-indicators of agiprolabs/claude-trading-skills.
Open the folder on GitHubat commit 981e1d7
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Custom Indicators this skillagiprolabs/claude-trading-skills | 410 | — | ~3k | Automated safety check: Pass | MIT | |
| CCXT Crypto Exchange Library2025Emma/vibe-coding-cn | 23k | 1 repos | ~4.4k | Automated safety check: Pass | MIT | |
| Crypto Derivatives StrategiesHKUDS/Vibe-Trading | 35k | — | ~2.4k | Automated safety check: Pass | MIT | |
| Emblemai Crypto Walletsickn33/agentic-awesome-skills | 47k | 2 repos | ~669 | Automated safety check: Pass | MIT | |
| Loading Indicatorsthedaviddias/Front-End-Checklist | 74k | — | ~434 | Automated safety check: Pass | MIT | |
| Analyzing Ransomware Network Indicatorsmukul975/Anthropic-Cybersecurity-Skills | 34k | — | ~796 | Automated safety check: Pass | Apache-2.0 |
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.
HKUDS/Vibe-Trading
Covers three crypto-derivatives approaches: perpetual funding-rate arbitrage, futures term-structure trading in contango and backwardation, and options volatility and Greeks analysis.
sickn33/agentic-awesome-skills
Crypto wallet management across 7 blockchains via EmblemAI Agent Hustle API.
thedaviddias/Front-End-Checklist
A skill your agent uses when auditing slow page loads, heavy assets, or rendering delays related to Show loading 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…
ComposioHQ/awesome-claude-skills
Automate Stack Exchange tasks via Rube MCP (Composio). An agent skill from ComposioHQ/awesome-claude-skills.
agiprolabs/claude-trading-skills
Event-driven backtesting with bar-by-bar execution, complex order types, multiple analyzers, and custom indicators
agiprolabs/claude-trading-skills
Solana token market data via Birdeye — prices, OHLCV, trades, token metadata, security checks, and trader activity
agiprolabs/claude-trading-skills
Broad crypto market data from CoinGecko covering 13,000+ tokens.
agiprolabs/claude-trading-skills
Cointegration testing for pairs trading using Engle-Granger, Johansen, and rolling stability analysis
agiprolabs/claude-trading-skills
Wallet evaluation, monitoring, and copy-trade strategy design for Solana DEX trading
agiprolabs/claude-trading-skills
Cross-asset correlation analysis including rolling correlation, hierarchical clustering, tail dependence, and regime-dependent correlation
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.