You have to calculate the period.
The duration, in seconds, of one complete back-and-forth cycle.
Speed = distance / time
So time (period) = speed * distance.
Now distance is in fact the magnitude.
The speed is a constant, thats is what you want, it is some value you choose.
Set period to speed * magnitude
What i dont know is kinda, when to do it. If you change it middle in the cycle, i suppose it will go weird.
I suppose you have set a new cycle when the expression CyclePosition returns zero.
I idid not test this, just writing whats in my head.