ChannelFollowingUpdateRule is the logic for calculating the new weights of a QuantAMM pool using the channel following strategy.
When calculating the TrendPortion in _getWeights(), we scale the price_gradient like this:
abs(price_gradient) / (2 * preExpScaling)
If we look at the whitepaper:

The scaledAbsGradient should not be done for trend calculation which is a redundant and undefined step done in the calculation of the weights. We just need the price_gradient in the trend portion formula.
ChannelFollowingUpdateRule will update the weights wrongly as if differs from the whitepaper specification.
Manual Review.
We recommend to change necessary formula according to the whitepaper only.
The formula here is the one in Whitepaper page 11, which is right and the division is explained on the last line : "Finally note …".
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.