# Money Line

A dynamic support/resistance line derived from volume-weighted price action.
The 20-period rolling VWAP acts as a "money line" — price crossing above it
with volume confirmation indicates institutional buying interest.

## Versions

| Version | File    | Notes                                                  |
|---------|---------|--------------------------------------------------------|
| v2      | v2.json | VWAP(20) crossover with volume spike confirmation      |

## Logic

**Money line**: `VWAP(20) = sum(close × volume, 20) / sum(volume, 20)`

**Entry**: close `cross_over` VWAP(20) AND volume > 1.5 × SMA(volume, 20).
**Exit**: close `cross_under` VWAP(20).

## Indicators

- Rolling VWAP (20-bar window) built from `apply_func(sum)` and `bin_op`
- `SMA(volume, 20)` — average volume for spike detection

## Data requirements

- 1h candles recommended (volume data required).
- Minimum warmup: 20 candles for VWAP and volume SMA.

## Known limitations

- Rolling VWAP resets every 20 bars; it is not a session VWAP (which resets at
  the start of each trading day). Session VWAP requires a reset condition not
  expressible in the DSL.
- Volume spikes (1.5× average) can trigger false entries during liquidation events.
