Bitcoin Hashrate Dips (Miner Capitulation)

What it does

  • Gives buy signals for Bitcoin on a long (investor) timeframe
  • Generates signals based on on-chain metrics (hashrate)

Why it’s great

It’s great because:

  • The buy signals are incredibly profitable, if you can hold and then sell somewhere towards the top of a macro Bitcoin cycle.
  • The signals are based on miner capitulation, which is considered a very reliable metric.
  • It’s open source, so you can tweak it and customise it to your liking. The default settings are already very good.
  • You can choose to include or exclude minor signals.

It’s different to the famous Hash Ribbons indicator by capriole_charles:

  • It has an overlay mode, so you can see signals on the main chart.
  • The logic is completely different. While Hash Ribbons uses a 30/60 day EMA cross, which is elegantly simple, I think measuring the severity of a drop in hashrate relative to the average is more robust.
  • The signals are similar to those from Hash Ribbons, because there are only so many significant dips in hashrate, and both indicators catch them. But you can configure this one to give more or less signals than Hash Ribbons.

It also has an alert condition included:

  • .Buy Signal: Alerts when there’s a buy signal. If you exclude weak signals from displaying, they’re also excluded from this alert.

How to get it

It’s free. Just click this button from the script page on TradingView: Add to favorite Scripts button in TradingView


Only works for Bitcoin. It only makes sense to display this indicator on a daily chart (although the hashrate is hardcoded to daily, it will give inaccurate price confirmations if you use any other timeframe).

Hashrate signals are not suitable for use with leverage. They have historically given great entries on a scale of months and years, but price can drop significantly, albeit briefly, after a Buy.

This indicator doesn’t give exit signals.

How to trade with it

The main usage of this indicator would be to confirm that a macro (measured in months and years) downcycle has finished, and your bias should be long-term bullish. Subsequent Buy signals are just extra opportunities where it can make sense to add to long-term investment positions. Spend a few minutes looking over the whole history of Bitcoin with this indicator (there are only a handful of signals) and it will become clear what its purpose and limitations are.


These are all the user-configurable settings and what they do.

  • Include Extra (Weaker) Signals (Recommended) – Include signals resulting from smaller drops in hashrate in calculations and alerts.
  • Show Unconfirmed (Early) Signals – Show signals before price has (likely) finished dipping. Advanced traders might use early signals and try to snipe the best price.
  • Show Confirmed Signals – Show (the same) signals only after they’ve been confirmed when the price rises.
  • Choose Average for Hashrate – Choose how the average hashrate is calculated.
  • Display on Main Chart – To switch modes, edit script to use overlay=true/false, remove, re-add to chart, and flip this value.
  • Show Raw Hashrate (Only Displays in Separate Pane) – Display the raw hashrate data. Now you see why we have to make a nice average from it.
  • Show Average Hashrate (Only Displays in Separate Pane) – Display the selected average of the hashrate.
  • Show Trailing Average Hashrate (Only Displays in Separate Pane) – Display the trailing average. It’s Williams Lows of this trailing average that give us the signals.
  • Show Trailing ATR for Price Confirmation (Only Displays on Main Chart) – Display the line for trailing ATR of price.
  • ATR Lookback Period – ATR is used for price to confirm the hashrate setups. This is the standard ATR period. You could try shorter periods, but the default settings are pretty good.
  • ATR Multiplier – How far the price confirmation line trails above price. Larger multipliers give later confirmations.
  • Williams Fractal Bars Back – The Williams range for bars back. Unlike normal Williams fractals, which are symmetrical, the forwards range is always 1.
  • Multiple for Filtering Out Small Fractals – Tweaks what counts as a signal in some cases.
  • Multiple for Large Fractals – Tweaks what counts as a strong signal.
  • Multiple for Medium Fractals (Weaker Signal) – Tweaks what counts as a weaker signal in some cases.
  • RMA Length – Length for the Rolling Moving Average of hashrate.
  • HMA Length – Length for the Hull Moving Average of hashrate.
  • SMA Length – Length for the Simple Moving Average of hashrate.
  • RMA Length of Composite Average of Hashrate – Length for the Rolling Moving Average of the Composite Average (which is a mean of all the other averages) of hashrate.


Thanks to capriole_charles for the classic Hash Ribbons indicator, which inspired this one.

All code is my own.

Support and questions

For any questions about using this indicator, or to report a bug, please leave a comment on the script page on TradingView rather than sending messages.

Technical details

For the Pinescripters, I’ve commented everything and left in the debug.

🌍 Share this:

Get an email when I release new stuff.