Skills

Elliott Wave

Elliott Wave Theory signal engine.

Install

npx skills add HKUDS/Vibe-Trading --skill elliott-wave -g -a claude-code -y
Repository
HKUDS/Vibe-Trading37.4k
Category
Data and ML
Updated
3d ago
License
MIT
Context cost
Lightabout 435 tokens
Runs scripts
Yes, review before use

What it does

Elliott Wave Theory signal engine. Detects swing points through Zigzag, matches 5-wave impulse and 3-wave corrective structures, validates them with Fibonacci wave relationships, and generates trend-top / correction-complete signals. Pure in-house pandas implementation.

Elliott Wave Theory

Purpose

Classic wave theory based on the core assumption that markets move in fractal wave structures:

StructureWave CountDirectionMeaning
Impulse wave5 waves (1-2-3-4-5)Trend-followingMain trend direction
Corrective wave3 waves (A-B-C)Counter-trendPullback correction

Core Rules

Three Iron Rules for Impulse Waves

  1. Wave 2 cannot retrace beyond the start of wave 1
  2. Wave 3 cannot be the shortest impulse wave
  3. Wave 4 cannot enter the price territory of wave 1

Fibonacci Relationships Between Waves

  • Wave 2 retraces 0.5-0.618 of wave 1
  • Wave 3 = wave 1 × 1.618 (most common)
  • Wave 4 retraces 0.382 of wave 3
  • Wave 5 ≈ the length of wave 1

Signal Logic

  • 5-wave advance completed → sell (trend top)
  • ABC pullback completed → buy (correction finished)
  • Wave 3 in progress → stay with the trend (no reversal signal is generated)

Parameters

ParameterDefaultDescription
swing_window10Rolling window for swing-point detection
fib_tolerance0.15Tolerance for Fibonacci ratios
min_wave_bars5Minimum number of candles per wave

Notes

Wave theory is highly subjective, and automatic counting can yield multiple interpretations. This implementation uses a "simplest effective single interpretation" strategy and would rather miss signals than misclassify them.

Dependencies

pip install pandas numpy requests

Signal Convention

  • 1 = long, -1 = short, 0 = stand aside
  • A swing point is only known swing_window bars after it forms, so the signal is stamped on that confirmation bar, not on the swing bar itself

More in Data and ML