Just a quick attempt to a more statistical approach wrt the rotation strategy (Antonacci's Dual Momentum and similar).
Most of the times, with these kind of strategies, the best asset (according to some momentum/trend indicator) is selected on a periodic basis (usally monthly - indipendently from the strenght of the indicator) in order to avoid market whipsaw patterns (noise) and/or excessive trading.
A better (and simple way) is to observe the indicator each day, but then decide whether to trade or not based on its statistical significance - e.g. using the t-stat for the difference between the mean of two assets (using past average returns as indicators).
The attempt works well for two uncorrelated assets like MDY and EDV (and self.pr_lvl=0.6), even better than Antonacci's algo (higher returns and fewer trades) - but it fails for more assets: just naively increasing the prob level (self.pr_lvl) does not seem to work it.
Need some extra working before junking it (adaptive vol control, different indicators, ...). Suggestions very welcomed.