Contents
- abs
- add
- all_time_high
- all_time_low
- and
- approx
- aroon_down
- aroon_osc
- aroon_up
- atr
- bb_lower
- bb_upper
- bb_width
- cci
- change
- cond
- count
- cross
- crossover
- crossunder
- cumsum
- days_since
- dev
- deviation
- div
- ema
- eq
- falling
- floordiv
- gain
- gt
- gte
- highest
- highest_bars_ago
- hma
- kc_lower
- kc_middle
- kc_upper
- kcw
- loss
- lowest
- lowest_bars_ago
- lt
- lte
- macd_histogram
- macd_line
- macd_signal
- max
- mean
- median
- mfi
- min
- mod
- mom
- months_since
- mul
- ne
- obv
- offset
- or
- pct_change
- percentrank
- pivothigh
- pivotlow
- pow
- range
- rising
- roc
- rsi
- sma
- sqrt
- stdev
- stoch_d
- stoch_k
- streak
- sub
- sum
- swma
- true_range
- universe_percentile
- variance
- vwma
- weeks_since
- wilderma
- williams_r
- wma
- years_since
No matches
kcw
Keltner Channels Width (percentage)
kcw(source, length, mult, matype="ema", atr_length=..., atr_matype="wilder", bandstyle="atr")
Parameters
| Name | Type | Description |
|---|---|---|
source |
field | Price field for the middle line (typically close) |
length |
int | Period for the middle line MA |
mult |
float | Multiplier for band width |
Formula
KCW = ((kc_upper - kc_lower) / kc_middle) * 100
Examples
kcw_value = kcw(close, 20, 2.0);
kcw_value < 10; # Narrow channels (low volatility, potential breakout)
kcw_value > 30; # Wide channels (high volatility)
# Squeeze detection (compare with Bollinger Bands Width)
kc_width = kcw(close, 20, 2.0);
bb_width = bb_width(close, 20, 2.0);
kc_width < bb_width; # Squeeze condition
Returns
float
Range
length and atr_length follow the same bounds as kc_upper/kc_lower; matype forwards to all three nested calls, atr_length/atr_matype/bandstyle forward only to kc_upper/kc_lower
Notes
Width expressed as a percentage for cross-asset comparisons; often paired with bb_width for squeeze detection
See Also
References
TradingView: ta.kcw(source, length, mult, useTrueRange); derived from Keltner Channels