It's quite simple; instead of trying to detect chop, just measure the weakness of a trend.
This is done by essentially taking two moving averages, measuring their relative difference and then take a moving average of this difference of 'n' periods (Lookback)
The result can be measured against a threshold 'floor' which determines the weakness of the trend and thus, chop.
I use portions from NGBaltic's work: https://www.tradingview.com/u/NGBaltic so the responsiveness of the detection is slightly higher than bog standard EMAs.
Might be of some interest to bot developers, play with the settings!