OPEN-SOURCE SCRIPT
Wick Asymmetry Ratio (WAR)

Wick Asymmetry Ratio (WAR)
WAR is a bounded oscillator (−1 to +1) that measures which candle wick dominates — in other words, where price was rejected.
How it's calculated
Pine Script®
Most wick tools compare each wick against the body. WAR instead subtracts the two wicks and normalizes by the full bar range. Two consequences: it never breaks on doji candles (zero body, no division blow-up), and it produces a single symmetric value comparable across symbols and timeframes.
How to read it
The signal filter — this is the point
A single strong wick means little in the middle of a range. WAR only marks a signal when a strong rejection coincides with the bar being the highest/lowest of the lookback window, plus a cooldown to prevent clusters. This is what separates it from "an arrow on every wick".
Visual layers
Limitations — read this
WAR is a context / exhaustion tool, not a standalone entry trigger. It tells you who absorbed price on a given bar; it does not predict direction by itself. Use it as confluence with structure, support/resistance, or your own system. On sub-cent assets raise ε. The signal fires on bar close at the threshold cross.
— Español —
WAR es un oscilador acotado (−1 a +1) que mide qué mecha de la vela domina, es decir, dónde fue rechazado el precio. A diferencia de los ratios mecha/cuerpo, WAR resta ambas mechas y normaliza por el rango total: no se rompe en doji y da un valor simétrico comparable entre activos y temporalidades.
El filtro solo marca señal cuando un rechazo fuerte coincide con un extremo de la ventana, con cooldown para evitar racimos. Es una herramienta de contexto / agotamiento, no un gatillo de entrada por sí sola — úsala como confluencia. Toda la interfaz en inglés está traducida en esta descripción.
WAR is a bounded oscillator (−1 to +1) that measures which candle wick dominates — in other words, where price was rejected.
How it's calculated
upper = high − max(open, close)
lower = min(open, close) − low
WAR = (lower − upper) / (high − low + ε)
Most wick tools compare each wick against the body. WAR instead subtracts the two wicks and normalizes by the full bar range. Two consequences: it never breaks on doji candles (zero body, no division blow-up), and it produces a single symmetric value comparable across symbols and timeframes.
How to read it
- WAR > 0 → lower wick dominates → buyers defended the low (bullish rejection)
- WAR < 0 → upper wick dominates → sellers capped the high (bearish rejection)
- WAR ≈ 0 → clean body or symmetric wicks → no clear rejection
The signal filter — this is the point
A single strong wick means little in the middle of a range. WAR only marks a signal when a strong rejection coincides with the bar being the highest/lowest of the lookback window, plus a cooldown to prevent clusters. This is what separates it from "an arrow on every wick".
Visual layers
- Colored histogram (sign + strength)
- Optional price-overlay pressure ribbon that shifts green↔red — read pressure without numbers
- Signal dots with a halo at filtered extremes
- Subtle background aura in strong zones
Limitations — read this
WAR is a context / exhaustion tool, not a standalone entry trigger. It tells you who absorbed price on a given bar; it does not predict direction by itself. Use it as confluence with structure, support/resistance, or your own system. On sub-cent assets raise ε. The signal fires on bar close at the threshold cross.
Open-source. Wick analysis is a well-known concept; what's specific here is the subtractive, range-normalized oscillator plus the extreme + cooldown filter and the price-overlay ribbon. Feedback and forks welcome.
— Español —
WAR es un oscilador acotado (−1 a +1) que mide qué mecha de la vela domina, es decir, dónde fue rechazado el precio. A diferencia de los ratios mecha/cuerpo, WAR resta ambas mechas y normaliza por el rango total: no se rompe en doji y da un valor simétrico comparable entre activos y temporalidades.
- WAR > 0 → mecha inferior domina → rechazo comprador
- WAR < 0 → mecha superior domina → rechazo vendedor
- WAR ≈ 0 → cuerpo limpio o mechas simétricas → sin rechazo claro
El filtro solo marca señal cuando un rechazo fuerte coincide con un extremo de la ventana, con cooldown para evitar racimos. Es una herramienta de contexto / agotamiento, no un gatillo de entrada por sí sola — úsala como confluencia. Toda la interfaz en inglés está traducida en esta descripción.
Скрипт с открытым кодом
В истинном духе TradingView, создатель этого скрипта сделал его открытым исходным кодом, чтобы трейдеры могли проверить и убедиться в его функциональности. Браво автору! Вы можете использовать его бесплатно, но помните, что перепубликация кода подчиняется нашим Правилам поведения.
Get access to our exclusive tools: caminoalfondeo.com
Join our 4k+ community: t.me/popeyacademy
All content provided by PoPey Group is for informational & educational purposes only. Past performance does not guarantee future results.
Join our 4k+ community: t.me/popeyacademy
All content provided by PoPey Group is for informational & educational purposes only. Past performance does not guarantee future results.
Отказ от ответственности
Информация и публикации не предназначены для предоставления и не являются финансовыми, инвестиционными, торговыми или другими видами советов или рекомендаций, предоставленных или одобренных TradingView. Подробнее читайте в Условиях использования.
Скрипт с открытым кодом
В истинном духе TradingView, создатель этого скрипта сделал его открытым исходным кодом, чтобы трейдеры могли проверить и убедиться в его функциональности. Браво автору! Вы можете использовать его бесплатно, но помните, что перепубликация кода подчиняется нашим Правилам поведения.
Get access to our exclusive tools: caminoalfondeo.com
Join our 4k+ community: t.me/popeyacademy
All content provided by PoPey Group is for informational & educational purposes only. Past performance does not guarantee future results.
Join our 4k+ community: t.me/popeyacademy
All content provided by PoPey Group is for informational & educational purposes only. Past performance does not guarantee future results.
Отказ от ответственности
Информация и публикации не предназначены для предоставления и не являются финансовыми, инвестиционными, торговыми или другими видами советов или рекомендаций, предоставленных или одобренных TradingView. Подробнее читайте в Условиях использования.