There are two decision branches the indicator may take to trigger a buy signal. I've copied the most relevant lines of code below and added comments. I added a visual representation for every single element that exists in those lines of code.
The different indicators I add here have educational purposes only. The original script already does an excellent job presenting the most relevant information. The coloured spring (circles) leading to a buy signal has everything I want to know.
Publishing this idea has the main objective of serving as a cheatsheet for myself if I forget all the underlying context later.
first buy condition (blue circle and dotted line)
price momentum just turned positive, and
hash rate growth has recovered after
price momentum turned negative and miners capitulated
crossover(s10,s20) and // simple moving average checkmark
barssince(recovered) < barssince(crossunder(s10,s20)) and // red range on the price chart
barssince(recovered) < barssince(capitulation) // red range on the price chart
or
second buy condition (purple circle and dotted line)
price momentum is currently positive, and
shorter term hash rate growth is higher than the longer term hash rate growth
s10>s20 and // green range on the price chart
crossover(HR_short,HR_long) // hash rate growth checkmark