Skip to main content
ClaudeWave
Skill17.8k repo starsupdated 1mo ago

trader-hand-skill

# trader-hand-skill This Claude Code skill provides technical analysis reference materials and trading frameworks for autonomous market intelligence systems. It contains detailed formulas, interpretation guides, and worked examples for indicators including RSI, MACD, and risk management principles, alongside integration guidance for the Alpaca API and financial data sources. Use this skill when building trading bots, backtesting strategies, or analyzing market signals that require precise technical calculation methodology and best practice trading guidelines.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/RightNow-AI/openfang /tmp/trader-hand-skill && cp -r /tmp/trader-hand-skill/crates/openfang-hands/bundled/trader ~/.claude/skills/trader-hand-skill
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# Trading Expert Knowledge

## Reference Knowledge

## 1. Technical Analysis Indicators Reference

### RSI (Relative Strength Index)
```
Formula: RSI = 100 - (100 / (1 + RS))
Where:  RS = Average Gain / Average Loss over N periods (default N = 14)

Step-by-step calculation:
  1. For each period, compute change = Close(t) - Close(t-1)
  2. Gains = max(change, 0), Losses = abs(min(change, 0))
  3. First average: simple mean of first 14 gains/losses
  4. Subsequent: AvgGain = (PrevAvgGain * 13 + CurrentGain) / 14  (Wilder smoothing)
  5. RS = AvgGain / AvgLoss
  6. RSI = 100 - (100 / (1 + RS))

Worked example (14-period):
  Avg Gain over 14 periods = 1.02
  Avg Loss over 14 periods = 0.68
  RS = 1.02 / 0.68 = 1.50
  RSI = 100 - (100 / (1 + 1.50)) = 100 - 40 = 60.0
```

**Interpretation:**
- RSI < 30: Oversold territory (potential buy signal)
- RSI > 70: Overbought territory (potential sell signal)
- RSI = 50: Neutral — price momentum balanced

**Advanced RSI Signals:**
| Signal | Description | Strength |
|--------|-------------|----------|
| Bearish divergence | Price makes new high, RSI makes lower high | Strong reversal warning |
| Bullish divergence | Price makes new low, RSI makes higher low | Strong reversal warning |
| Bullish failure swing | RSI drops below 30, bounces, pulls back above 30, breaks prior RSI high | Very strong buy |
| Bearish failure swing | RSI rises above 70, drops, bounces below 70, breaks prior RSI low | Very strong sell |
| Range shift | RSI oscillates 40-80 in uptrend, 20-60 in downtrend | Trend confirmation |

**Best practices:** Never use RSI as a sole signal. Combine with trend direction (moving averages) and volume. In strong trends, RSI can stay overbought/oversold for extended periods.

---

### MACD (Moving Average Convergence Divergence)
```
MACD Line   = EMA(12) - EMA(26)
Signal Line = EMA(9) of MACD Line
Histogram   = MACD Line - Signal Line

EMA formula: EMA(t) = Price(t) * k + EMA(t-1) * (1 - k)
Where: k = 2 / (N + 1)
  For EMA(12): k = 2/13 = 0.1538
  For EMA(26): k = 2/27 = 0.0741

Worked example:
  EMA(12) = 155.20
  EMA(26) = 152.80
  MACD Line = 155.20 - 152.80 = 2.40
  Previous Signal Line = 1.80
  Signal Line = 2.40 * (2/10) + 1.80 * (8/10) = 0.48 + 1.44 = 1.92
  Histogram = 2.40 - 1.92 = 0.48 (positive = bullish momentum increasing)
```

**Interpretation:**
| Signal | Condition | Strength |
|--------|-----------|----------|
| Bullish crossover | MACD crosses above Signal Line | Moderate buy |
| Bearish crossover | MACD crosses below Signal Line | Moderate sell |
| Zero-line bullish cross | MACD crosses above zero | Trend change to bullish |
| Zero-line bearish cross | MACD crosses below zero | Trend change to bearish |
| Histogram expansion | Bars growing taller | Momentum accelerating |
| Histogram contraction | Bars shrinking | Momentum weakening, reversal may come |
| Bullish divergence | Price new low, MACD higher low | Strong reversal signal |
| Bearish divergence | Price new high, MACD lower high | Strong reversal signal |

---

### Bollinger Bands
```
Middle Band = SMA(20)
Upper Band  = SMA(20) + 2 * StdDev(20)
Lower Band  = SMA(20) - 2 * StdDev(20)
Bandwidth   = (Upper - Lower) / Middle
%B          = (Price - Lower) / (Upper - Lower)

Worked example:
  SMA(20) = 150.00
  StdDev(20) = 3.50
  Upper = 150.00 + 2 * 3.50 = 157.00
  Lower = 150.00 - 2 * 3.50 = 143.00
  Bandwidth = (157.00 - 143.00) / 150.00 = 0.0933 (9.33%)
  Current price = 155.00
  %B = (155.00 - 143.00) / (157.00 - 143.00) = 12/14 = 0.857
  Interpretation: Price is 85.7% of the way from lower to upper band — near upper band
```

**Key Bollinger Band Signals:**
| Signal | Condition | Meaning |
|--------|-----------|---------|
| Squeeze | Bandwidth at 6-month low | Volatility contraction, big move imminent |
| Squeeze breakout up | Price breaks above upper band after squeeze | Strong bullish breakout |
| Squeeze breakout down | Price breaks below lower band after squeeze | Strong bearish breakout |
| Walking the upper band | Price hugs upper band with middle band rising | Strong uptrend — do NOT short |
| Walking the lower band | Price hugs lower band with middle band falling | Strong downtrend — do NOT buy |
| Mean reversion touch | Price touches outer band, %B reverses | Potential reversion to middle band |
| W-bottom | Price hits lower band twice, second low has higher %B | Bullish reversal pattern |
| M-top | Price hits upper band twice, second high has lower %B | Bearish reversal pattern |

---

### VWAP (Volume Weighted Average Price)
```
VWAP = Cumulative(Typical Price * Volume) / Cumulative(Volume)
Typical Price = (High + Low + Close) / 3

Worked example (first 3 bars of the day):
  Bar 1: TP = (101+99+100)/3 = 100.00, Vol = 10,000 -> cumTP*V = 1,000,000
  Bar 2: TP = (102+100+101)/3 = 101.00, Vol = 15,000 -> cumTP*V = 2,515,000
  Bar 3: TP = (103+101+102)/3 = 102.00, Vol = 8,000  -> cumTP*V = 3,331,000
  Cumulative Volume = 33,000
  VWAP = 3,331,000 / 33,000 = 100.94
```

**Usage:**
- **Institutional benchmark**: If price > VWAP, buyers dominate; price < VWAP, sellers dominate
- **Intraday S/R**: VWAP acts as dynamic support in uptrends, resistance in downtrends
- **Entry filter**: Buy only when price pulls back to VWAP (not chasing extended moves)
- **Standard deviations**: VWAP +1/-1 and +2/-2 StdDev bands serve as profit targets
- **Resets daily**: Do NOT carry VWAP across sessions — it is an intraday metric

---

### Moving Averages
```
SMA(N) = (Close_1 + Close_2 + ... + Close_N) / N
EMA(N) = Close * (2/(N+1)) + PrevEMA * (1 - 2/(N+1))

Key Moving Averages:
  EMA(9)   — very short-term trend (scalping, day trading)
  EMA(20)  — short-term trend
  EMA(50)  — medium-term trend
  SMA(100) — intermediate trend
  SMA(200) — long-term trend (institutional benchmark)
```

**Critical Cross Signals:**
| Cross | Name | Meaning | Reliability |
|-------|------|---------|-------------|
| 50 MA > 200 MA | Golden Cross | Bullish trend reversal | High (lag ~2 weeks) |
| 50