OPEN-SOURCE SCRIPT
LTH/STH SOPR Ratio | Astral Vision

LTH/STH SOPR Ratio | Astral Vision 🌠💠
The Spent Output Profit Ratio measures whether coins being moved on-chain are doing so at a profit or a loss relative to their acquisition price.
Separating this metric between long-term and short-term holders reveals a structural divergence in market behavior: long-term holders tend to spend at profit during distribution phases and hold through downturns, while short-term holders are more reactive, spending at loss during capitulation and at profit during momentum-driven rallies.
This indicator computes the ratio between the short-term and long-term EMA of SOPR, expressing how aggressively short-term holder spending behavior is diverging from the long-term baseline.
When short-term holders are realizing significantly more profit than the long-term average, the ratio rises above 1, a condition historically associated with overheated momentum and distribution. When short-term holders are realizing losses while long-term holders remain in profit, the ratio compresses below 1, historically marking capitulation and accumulation floors.
Calculation ⚙️
`LTH SOPR = EMA(SOPR, lthlength)`
`STH SOPR = EMA(SOPR, sthlength)`
`Ratio = STH SOPR / LTH SOPR`
`Signal = SMA(Ratio, smooth_len)`
A single raw SOPR series is smoothed at two different EMA lengths to approximate long-term and short-term holder behavior.
Dividing the faster by the slower produces a ratio oscillating around 1.0, parity between the two cohorts. A final SMA smoothing pass reduces noise before threshold evaluation and coloring.
Plots 📊
Inputs 🎛️
Colors 🎨
5 Astral Vision presets + custom override. Default: Hermes.
In discrete mode, positive color applies above parity and negative below. In gradient mode, color transitions continuously between the oversold and overbought thresholds. Background and candle coloring follow the same logic.
Purpose 🎯
Raw SOPR indicators plot a single aggregated series that blends long and short-term holder behavior into one number, obscuring the divergence between the two cohorts that carries the most analytical signal.
A market where both groups are spending at profit looks identical to one where short-term holders are panic-selling while long-term holders quietly accumulate, yet the two conditions have opposite implications.
This indicator isolates that divergence directly as a ratio, making the relative behavior of the two cohorts the signal rather than their blended average.
The 1.0 parity level becomes a structural anchor: sustained readings above it identify periods where short-term momentum is running ahead of the long-term baseline, while readings below it identify periods of short-term stress against a stable long-term foundation.
The gradient coloring option provides a continuous read of the divergence intensity across the entire ratio range without binary threshold jumps.
Disclaimer ⭕️
It is not financial advice, not an investment recommendation, and not affiliated with any financial institution, research firm, or organization of any kind. All content is provided for educational and informational purposes only. Always conduct your own research before making any financial decision.
The Spent Output Profit Ratio measures whether coins being moved on-chain are doing so at a profit or a loss relative to their acquisition price.
Separating this metric between long-term and short-term holders reveals a structural divergence in market behavior: long-term holders tend to spend at profit during distribution phases and hold through downturns, while short-term holders are more reactive, spending at loss during capitulation and at profit during momentum-driven rallies.
This indicator computes the ratio between the short-term and long-term EMA of SOPR, expressing how aggressively short-term holder spending behavior is diverging from the long-term baseline.
When short-term holders are realizing significantly more profit than the long-term average, the ratio rises above 1, a condition historically associated with overheated momentum and distribution. When short-term holders are realizing losses while long-term holders remain in profit, the ratio compresses below 1, historically marking capitulation and accumulation floors.
Calculation ⚙️
`LTH SOPR = EMA(SOPR, lthlength)`
`STH SOPR = EMA(SOPR, sthlength)`
`Ratio = STH SOPR / LTH SOPR`
`Signal = SMA(Ratio, smooth_len)`
A single raw SOPR series is smoothed at two different EMA lengths to approximate long-term and short-term holder behavior.
Dividing the faster by the slower produces a ratio oscillating around 1.0, parity between the two cohorts. A final SMA smoothing pass reduces noise before threshold evaluation and coloring.
Plots 📊
- Smoothed ratio line in the indicator panel, colored by regime or continuous gradient
- Fill between the ratio line and the 1.0 parity level
- Parity line (1.0), overbought threshold, and oversold threshold
- Candle coloring on the price chart by active regime or gradient
- Background highlight on the price chart when either threshold is breached
Inputs 🎛️
- `Length LTH SOPR`: EMA period approximating long-term holder spending behavior (default 200)
- `Length STH SOPR`: EMA period approximating short-term holder spending behavior (default 20)
- `Smoothing Window`: SMA applied to the ratio before all output (default 10)
- `Oversold Threshold`: ratio level marking short-term holder capitulation (default 0.989)
- `Overbought Threshold`: ratio level marking short-term holder excess (default 1.017)
- `Use Gradient Color`: toggles continuous gradient coloring between thresholds instead of discrete regime coloring
- `Overlay BG Transparency`: opacity of the price chart background highlight at extremes (default 60)
Colors 🎨
5 Astral Vision presets + custom override. Default: Hermes.
In discrete mode, positive color applies above parity and negative below. In gradient mode, color transitions continuously between the oversold and overbought thresholds. Background and candle coloring follow the same logic.
Purpose 🎯
Raw SOPR indicators plot a single aggregated series that blends long and short-term holder behavior into one number, obscuring the divergence between the two cohorts that carries the most analytical signal.
A market where both groups are spending at profit looks identical to one where short-term holders are panic-selling while long-term holders quietly accumulate, yet the two conditions have opposite implications.
This indicator isolates that divergence directly as a ratio, making the relative behavior of the two cohorts the signal rather than their blended average.
The 1.0 parity level becomes a structural anchor: sustained readings above it identify periods where short-term momentum is running ahead of the long-term baseline, while readings below it identify periods of short-term stress against a stable long-term foundation.
The gradient coloring option provides a continuous read of the divergence intensity across the entire ratio range without binary threshold jumps.
Disclaimer ⭕️
It is not financial advice, not an investment recommendation, and not affiliated with any financial institution, research firm, or organization of any kind. All content is provided for educational and informational purposes only. Always conduct your own research before making any financial decision.
开源脚本
秉承TradingView的精神,该脚本的作者将其开源,以便交易者可以查看和验证其功能。向作者致敬!您可以免费使用该脚本,但请记住,重新发布代码须遵守我们的网站规则。
My premium indicators are available on Whop:
whop.com/astralvision
Astral Vision 🌠💠
whop.com/astralvision
Astral Vision 🌠💠
免责声明
这些信息和出版物并非旨在提供,也不构成TradingView提供或认可的任何形式的财务、投资、交易或其他类型的建议或推荐。请阅读使用条款了解更多信息。
开源脚本
秉承TradingView的精神,该脚本的作者将其开源,以便交易者可以查看和验证其功能。向作者致敬!您可以免费使用该脚本,但请记住,重新发布代码须遵守我们的网站规则。
My premium indicators are available on Whop:
whop.com/astralvision
Astral Vision 🌠💠
whop.com/astralvision
Astral Vision 🌠💠
免责声明
这些信息和出版物并非旨在提供,也不构成TradingView提供或认可的任何形式的财务、投资、交易或其他类型的建议或推荐。请阅读使用条款了解更多信息。