You could look at the donchian channel. The donchian is a measure of new highs or lows taking place. if there are no new highs or lows within a certain time period, that I find is a really good indication of a range. it doesnt look at swings, just whether a new high or low has taken place
You can easily use that within technical screeners also.