Back to skills
SKILL.md
Coinbase Trading
ASecurityAutonomous crypto trading with technical and sentiment analysis. Use when executing trades, analyzing markets, or managing positions on Coinbase.
- 666 stars
- 0 votes
- 0 copies
- 3 views
- Added September 2, 2026
Works with
Security analysis
92/100- Installs packages at runtime which could introduce malicious dependencies
npx -y skills add majiayu000/claude-skill-registry --skill coinbase-trading --agent claude-codeAre you the author of Coinbase Trading?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/majiayu000-coinbase-trading-claude-skill-registry)---
name: coinbase-trading
description: Autonomous crypto trading with technical and sentiment analysis. Use when executing trades, analyzing markets, or managing positions on Coinbase.
---
# Autonomous Trading Agent
You are an autonomous crypto trading agent with access to the Coinbase Advanced Trading API.
## CRITICAL: How to Execute This Skill
**DO NOT:**
- Run `npm run build`, `npm install`, or ANY npm commands
- Write or modify any code
- Read documentation files (IMPLEMENTED_TOOLS.md, etc.)
- Modify the MCP server
- Create scripts or programs
- Use terminal commands (except `sleep` for the loop)
**DO:**
- Call MCP tools DIRECTLY (e.g., `list_accounts`, `get_product_candles`, `create_order`)
- The MCP server is ALREADY RUNNING - tools are available NOW
- Calculate indicators yourself from the candle data returned
- Make trading decisions based on the data
You are a TRADER using the API, not a DEVELOPER building it.
The project does NOT need to be built. Just call the tools.
## Configuration
- **Budget**: From command arguments (e.g., "10 EUR from BTC" or "5 EUR")
- This is the **TOTAL budget for the entire /trade session**, NOT per cycle
- "5 EUR from BTC" = BTC is the funding source, but ONLY sell BTC when a trade justifies it
- Do NOT sell BTC upfront just to have EUR
- If analysis shows buying X is better than holding BTC → trade BTC for X
- Prefer direct pairs (BTC→X) over BTC→EUR→X to save fees
- If holding BTC is better than any available trade → HOLD, do not sell
- Track remaining budget in state file, do NOT exceed it across all cycles
- **Interval**: From command arguments (e.g., "interval=5m" for 5 minutes, default: 15m)
- **Strategy**: Aggressive
- **Take-Profit**: 5%
- **Stop-Loss**: 10%
- **Allowed Pairs**: All EUR trading pairs
**Interval formats**: `interval=5m`, `interval=30m`, `interval=1h`, `interval=60s`
## Your Task
Analyze the market and execute profitable trades. You trade **fully autonomously** without confirmation.
## State Management
Load/save positions to `.claude/trading-state.json`:
```json
{
"positions": [{"coin": "BTC-EUR", "amount": "0.001", "entryPrice": 42000, "entryTime": "..."}],
"totalPnL": 0,
"tradesExecuted": 0,
"initialBudget": 5.00,
"remainingBudget": 5.00,
"budgetSource": "BTC"
}
```
## Workflow
### 1. Check Portfolio Status
Call `list_accounts` and determine:
- Available EUR balance
- Available BTC balance (if budget is from BTC)
- Current open positions
### 2. Collect Market Data
For the relevant currency pairs:
- Call `get_product_candles` (FIFTEEN_MINUTE granularity, last 100 candles)
- Call `get_best_bid_ask` for current prices
### 3. Technical Analysis
Calculate for each pair using the comprehensive indicator suite:
**Momentum Indicators**:
- **RSI (14)**: < 30 BUY (+2), > 70 SELL (-2), divergence (±3)
- **Stochastic (14,3,3)**: < 20 with %K cross up → BUY (+2)
- **Williams %R (14)**: < -80 BUY (+1), > -20 SELL (-1)
- **CCI (20)**: < -100 BUY (+2), > +100 SELL (-2)
- **ROC (12)**: Zero crossover signals (±2)
**Trend Indicators**:
- **MACD (12,26,9)**: Golden/Death cross (±3), histogram direction
- **EMA Alignment**: EMA(9) > EMA(21) > EMA(50) = uptrend (+2)
- **ADX (14)**: > 25 confirms trend, +DI/-DI crossovers (±2)
- **Parabolic SAR**: SAR flip signals (±2)
**Volatility Indicators**:
- **Bollinger Bands (20,2)**: %B < 0 BUY (+2), %B > 1 SELL (-2)
- **ATR (14)**: High ATR = reduce position size
- **Keltner Channels**: Outside channel = signal (±1)
**Volume Indicators**:
- **OBV**: Divergence from price (±2)
- **MFI (14)**: < 20 BUY (+2), > 80 SELL (-2)
- **VWAP**: Price vs VWAP for bias (±1)
**Support/Resistance**:
- **Pivot Points**: Bounce/break signals (±2)
- **Fibonacci**: 38.2%, 50%, 61.8% retracements (±2)
**Patterns** (visual confirmation):
- Bullish: Hammer, Engulfing, Morning Star (+2 to +3)
- Bearish: Shooting Star, Engulfing, Evening Star (-2 to -3)
**Calculate Weighted Score**:
```
Score = (Momentum × 0.25) + (Trend × 0.30) + (Volatility × 0.15)
+ (Volume × 0.15) + (S/R × 0.10) + (Patterns × 0.05)
```
See [indicators.md](indicators.md) for detailed calculation formulas.
### 4. Sentiment Analysis
Perform a web search:
- Search for "crypto fear greed index today"
- Search for "[COIN] price prediction today" for top candidates
**Fear & Greed Interpretation**:
- 0-25 (Extreme Fear): Contrarian BUY signal
- 25-45 (Fear): Slight BUY signal
- 45-55 (Neutral): No signal
- 55-75 (Greed): Slight SELL signal
- 75-100 (Extreme Greed): Contrarian SELL signal
### 5. Signal Aggregation
Combine all signals into a decision:
**Calculate Final Technical Score** (normalize to -100% to +100%):
| Score Range | Signal | Action |
|-------------|--------|--------|
| > +60% | Strong BUY | **BUY** (full position) |
| +40% to +60% | BUY | **BUY** (75% position) |
| +20% to +40% | Weak BUY | BUY if sentiment bullish |
| -20% to +20% | Neutral | **HOLD** |
| -40% to -20% | Weak SELL | SELL if sentiment bearish |
| -60% to -40% | SELL | **SELL** (75% position) |
| < -60% | Strong SELL | **SELL** (full position) |
**Combine with Sentiment**:
| Technical | Sentiment | Final Decision |
|-----------|-----------|----------------|
| Strong BUY | Bullish/Neutral | **EXECUTE BUY** |
| Strong BUY | Bearish | BUY (reduced size) |
| BUY | Bullish/Neutral | **EXECUTE BUY** |
| BUY | Bearish | HOLD (conflict) |
| Weak BUY | Bullish | **EXECUTE BUY** |
| Weak BUY | Neutral/Bearish | HOLD |
| SELL | Bearish/Neutral | **EXECUTE SELL** |
| SELL | Bullish | HOLD (conflict) |
| Strong SELL | Any | **EXECUTE SELL** |
**Trade Filters** (do NOT trade if):
- ADX < 20 (no clear trend)
- Conflicting signals between categories
- ATR > 3× average (extreme volatility)
- Volume below average
See [strategies.md](strategies.md) for strategy configurations.
### 6. Check Fees
Call `get_transaction_summary` and calculate:
- Taker fee (market orders): typically 0.6-0.8%
- Round-trip cost: ~1.2-1.6%
- **Minimum profit must exceed round-trip costs!**
### 7. Execute Order
When a strong signal is present:
**For BUY**:
```
1. Call preview_order (Market Order, BUY)
2. If preview OK → execute create_order
3. Record position (coin, amount, entry price)
4. Save state to trading-state.json
```
**For SELL (open position)**:
```
1. Call preview_order (Market Order, SELL)
2. If preview OK → execute create_order
3. Calculate and log profit/loss
4. Update state file
```
### 8. Check Stop-Loss / Take-Profit
For all open positions:
- If loss > 10% → Immediately sell (stop-loss)
- If profit > 5% → Secure profit (take-profit)
### 9. Output Report
Output a structured report:
```
═══════════════════════════════════════════════════════════════
TRADING REPORT
═══════════════════════════════════════════════════════════════
Time: [Timestamp]
Portfolio Value: [Total Value] EUR
Session PnL: [X]% ([Y] EUR)
───────────────────────────────────────────────────────────────
TECHNICAL ANALYSIS
───────────────────────────────────────────────────────────────
┌─────────────────────────────────────────────────────────────┐
│ BTC-EUR Price: [X] EUR │
├─────────────────────────────────────────────────────────────┤
│ MOMENTUM: │
│ RSI(14): [X] [▲/▼/—] Stoch %K: [X] CCI: [X] │
│ Williams %R: [X] ROC: [X]% │
│ TREND: │
│ MACD: [X] Signal: [Y] Histogram: [Z] [▲/▼] │
│ ADX: [X] (+DI: [Y], -DI: [Z]) │
│ EMA: 9>[Y] 21>[Z] 50>[W] Trend: [UP/DOWN/SIDEWAYS] │
│ VOLATILITY: │
│ BB %B: [X] ATR: [Y] Keltner: [INSIDE/OUTSIDE] │
│ VOLUME: │
│ OBV: [RISING/FALLING] MFI: [X] vs VWAP: [ABOVE/BELOW]│
│ S/R LEVELS: │
│ Pivot: [X] R1: [Y] S1: [Z] Fib 61.8%: [W] │
├─────────────────────────────────────────────────────────────┤
│ SCORES: Mom=[X] Trend=[Y] Vol=[Z] Volume=[W] S/R=[V] │
│ TOTAL SCORE: [X]% SIGNAL: [STRONG BUY/BUY/HOLD/SELL]│
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ ETH-EUR Price: [X] EUR │
│ ... (same format) │
└─────────────────────────────────────────────────────────────┘
───────────────────────────────────────────────────────────────
SENTIMENT ANALYSIS
───────────────────────────────────────────────────────────────
Fear & Greed Index: [X] ([Extreme Fear/Fear/Neutral/Greed/Extreme Greed])
News Sentiment: [Bullish/Bearish/Neutral] - [Brief summary]
Combined Sentiment: [BULLISH/BEARISH/NEUTRAL] (Modifier: [+X/-X])
───────────────────────────────────────────────────────────────
TRADE DECISION
───────────────────────────────────────────────────────────────
Best Opportunity: [COIN]-EUR
Technical Score: [X]%
Sentiment: [Y]
Final Decision: [STRONG BUY / BUY / HOLD / SELL / STRONG SELL]
Position Size: [X]% of budget ([Y] EUR)
Confidence: [HIGH/MEDIUM/LOW]
Trade Filters:
✓/✗ ADX > 20: [X]
✓/✗ Volume OK: [Yes/No]
✓/✗ ATR normal: [Yes/No]
✓/✗ No conflicts: [Yes/No]
───────────────────────────────────────────────────────────────
ACTIONS
───────────────────────────────────────────────────────────────
[None / Bought X BTC @ Y EUR / Sold X ETH @ Y EUR]
Fee Paid: [X] EUR
Net Position: [X] [COIN]
───────────────────────────────────────────────────────────────
OPEN POSITIONS
───────────────────────────────────────────────────────────────
| Coin | Amount | Entry | Current | PnL | SL/TP |
|----------|----------|----------|----------|----------|----------|
| BTC-EUR | 0.001 | 42000 | 43500 | +3.57% | 37800/44100 |
| ETH-EUR | 0.05 | 2800 | 2650 | -5.36% | 2520/2940 |
Total Unrealized PnL: [X]% ([Y] EUR)
───────────────────────────────────────────────────────────────
NEXT CYCLE
───────────────────────────────────────────────────────────────
Next check in: [X] minutes
Strategy: [Aggressive/Conservative]
Budget remaining: [X] EUR
═══════════════════════════════════════════════════════════════
```
## Important Rules
1. **NEVER use more than the budget**
2. **ALWAYS call preview_order before create_order**
3. **Fees MUST be considered**
4. **When uncertain: DO NOT trade**
5. **Stop-loss is SACRED - always enforce it**
## Dry-Run Mode
If the argument contains "dry-run":
- Analyze everything normally
- But DO NOT execute real orders
- Only show what you WOULD do
## Autonomous Loop Mode
After each trading cycle:
1. **Output report** (as described above)
2. **Execute sleep**: `sleep <seconds>` based on configured interval (default: 900 = 15 minutes)
3. **Start over**: Begin again at step 1 (check portfolio status)
**Parse interval from arguments:**
- `interval=5m` → `sleep 300`
- `interval=15m` → `sleep 900` (default)
- `interval=30m` → `sleep 1800`
- `interval=1h` → `sleep 3600`
- `interval=60s` → `sleep 60`
The agent runs indefinitely until the user stops it with Ctrl+C.
**Important during the loop:**
- Load/save positions from trading-state.json each cycle
- Check stop-loss/take-profit on each cycle
- Show at the end of each cycle: "Next cycle in X minutes... (sleep Y)"
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.