Breakout/breakdown
"Kites rise highest against the wind—not with it."
– Winston Churchill
This is the oldest and simplest trend-following method. It works for both bull and bear markets. If the price makes a new high over x number of periods, the regime is bullish. If the price makes a fresh low over x number of periods, the regime is bearish. This method is computationally easy to implement.
Popular durations are 252 trading days (which works out as 52 weeks), and 100 and 50 trading days. Below, here is a simple rendition of this regime methodology:
def regime_breakout(df,_h,_l,window):
hl = np.where(df[_h] == df[_h].rolling(window).max(),1,
np.where(df[_l] == df[_l]. rolling(window).min(), -1,np.nan))
roll_hl = pd.Series(index= df.index, data= hl).fillna(method= 'ffill')
return roll_hl
ticker = '9984.T' # Softbank ticker...