I'll hint on several things that can be done. Peter introduced the concept to quantconnect, I personally would like him to submit it as an alpha. Here are a few things I've tried:
1) If you look at the IN-OUT Plot function, it is possible to disentangle each signal's individual contribution to the algorithm's decision to exit the market. I see at least 3 ways each signal can contribute:
#1 in the extreme_b filter function that sets a hard boundary
#2 the individual contribution of each ETF to their signal
#3 in the covariance matrix to assess whether the recent signal falls with the 1%.
If you create a second plot similar to IN-OUT but have each ETF represent a line, you can see these weights.
2) if you were to omit other signals besides SHY and at each level in the decision-making process mentioned in #1, you'll find find something interesting.
3) as everyone have mentioned, yes, the model is overfitted. What can we do to resolve model overfit issues besides simply removing variables based on PSR, Sharpe Ratios, and return %?
If we can solve the below two issues, we'd be a step closer to a better model:
#1 Are there methods to set the weights of each ETFs' impact on both the 'IN' and 'OUT' strategy, while addressing the model's flexibility to adjust to future events (i.e., out of sample data)?
#2 Can we further use these weights to create a more refined strategy to include different IN/OUT Market scenarios? For example, are there instances there it's better to use TQQQ instead of QQQ when going back into the market, or to use GLD/UGL and TLT/UGL when going out of the market or you're already out of the market?