January 13


Better RSI Entries

By Curtis White

January 13, 2020

Mean reversion systems, such as those based on RSI, suffer significant performance degradation when stop losses are applied for risk control. In previous posts, I shared how one could create more powerful RSI systems by using adaptive periodicity and multi-state regime classifiers.

The key idea for better RSI entries is that there may be a unique optimal RSI threshold for any given bar size. As to why this might be relevant, it might be capturing some component of the speed of the move, or the type of results might depend on the volatility regime.

We do not need to be concerned with the exact influence the bar size might have. For example, we might reason that a large fast move might be a better buy. On the other hand, it might also be that a large move implies greater risk of future big moves, and that we should be even more selective. The good news is that we do not need to know the precise way that the adjustment should be made. We merely need to know that there is an influence and the optimizer will do the rest.

For this sample long only S&P 500 E-mini system, I classify each trigger bar into 1 of 4 classes based on the bar’s range. For each class, I optimize a specific threshold adjustment factor which will be added to the threshold level (cross under 30) that is used for buys. The adjustment can be positive or negative. For the exit, I use standard overbought level (cross over 70) and 5 bar time-based exit.

First, we examine how the long only base RSI(14) system does. While the trade quality surprised me, the poor sample size and low overall profits were not impressive.

RSI(14) Cross Under 30/Over 70, 5 Bar Exit

The results get worse once we add a 15 point stop loss. There is still promise in the in-sample results. The recent bearish regime is likely having a large impact on the OOS. Also, there are too few trades.

RSI(14) Cross Under 30/Over 70, 5 Bar Exit, 15 Point Stop

Next, I optimize the RSI(14) with a single optimal buy threshold. The results are not very good. But, is there a hint of promise?

RSI(14) Cross Under Optimized / Over 70, 5 Bar Time Exit

While there is really no need too, I apply the stop loss to the above optimized system. The profit factor for the in-sample portion improved but the out-of-sample results are still not even profitable. However, the recent market regime changes would tend to make for poor out-of-sample results for most of these types of systems.

RSI(14) Cross Under Optimized / Over 70, 5 Bar Time Exit, 15 Point Stop

With baselines established, we test how bar range threshold classifier performs. We optimize the buy threshold based on the trigger bar. There are significant improvements in the total net profit and consistent out-of-sample results. The higher number of trades appears to have helped over the recent bearish regime, at least thus far.

RSI(14) Cross Under Class(Optimal)/Over 70, 5 Bar Time Exit

With better RSI entries, the system maintains profitability and similar net profit even with a 15-point stop loss applied. It starts to look like something that might be worth trading with an average winning trade of twice the average losing trade. This win ratio is still a concern which can likely be improved with better exits. In addition, this system might be a worthy of consideration for trading with options spreads.

RSI(14) Cross Under Class(Optimal)/Over 70, 5 Bar Exit, 15 Point Stop

Addendum, after reviewing the results, I went back to look at why the max losses were so large and that is the result of a happy coding accident of the stop not being applied on the first bar. All other examples have the stop applied in the same way. With the stop applied to the first bar, the results are not quite as good. The net profit is around $10,000 less but the largest loss is reduced by about half.

Enjoyed this article? Would you like the opportunity to both support this site, and receive the open source Easylanguage for this system and a bundle of other similar systems? If so please send me an email which will help me gauge the interest level and can be used to inform you when it becomes available. The cost for the strategy bundle would be reasonable, from $150 up to perhaps $600, depending on what systems are packaged.

-- By Curtis White from beyondbacktesting

Curtis White

About the author

Hi, I'm Curtis and I'm passionate about markets and trading.

My mission is to apply machine learning to build better trading systems and to become a better discretionary trader by applying quantitative and machine learning techniques to solve my greatest trading problems. I develop trading systems and graybox trading solutions using Tradestation's Easylanguage, Python, C#, and Ninjatrader.

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

Learn To Code & Build Strategies
Using EasyLanguage.