The RSIDirectionalWithTrendSlow trading algorithm
Added 2024-09-06 09:00:01 +0000 UTCIntroduction
In this post I will present you the tests of a strategy called “RSIDirectionalWithTrendSlow”. It is a Freqtrade strategy designed by Paul Csapak, aiming for discerning traders who prefer to operate within the hourly timeframe. This strategy leverages a combination of Relative Strength Index (RSI) and Exponential Moving Average (EMA) indicators to identify optimal trading signals in the crypto markets.
Beforehand I have to tell you that the original strategy has the trailing stop loss funtion enabled. This feature can be used when real trading, but during backtests it can present results that are overly optimistic and cause a positive bias for the algo to use. While in reality it can very well underperform.
So I tested this strategy with and without the Trailing stop loss so that you can see the differences in results and are able to better decide on whether you want to build on this strategy or not.
This time you might be in for a surprise (at least I was), since the noTSL had a timeframe that performed way better then expected.
So let’s continue…
The Strategy
The strategy operates on a one-hour (1h) chart. This timeframe balances the need for minimizing market noise found in shorter timeframes while providing more trading opportunities than longer timeframes.
Stop Loss: A stop loss is set at -20% to manage risk, allowing trades enough room to maneuver in volatile market conditions without closing too early.
Trailing Stop: Not enabled in this strategy, which could be a point for future optimization to secure profits during favorable trends. However, as I have said, using this while backtesting can lead to unrealistic overoptimistic results.
The indicators used are:
RSI (Relative Strength Index): Configured with a period of 10 (denoted as rsi_slow), which is relatively short. The RSI is used to gauge momentum and identify potential reversals by measuring the speed and change of price movements.
EMA (Exponential Moving Average): Set at a period of 600, the EMA600 acts as a trend filter. Its primary role is to determine the long-term market trend, ensuring that trades align with the general market direction.
As for the trading Logic, buy signal conditions are:
The buy signal is primarily based on the RSI indicator crossing above the threshold of 25, suggesting a shift in momentum from bearish to bullish.
The price must be trading above the EMA600, ensuring that the buy is placed in an established bullish trend.
A volume filter is applied to confirm that the signal is backed by substantial market activity, mitigating the risk of entering on a false signal due to low liquidity.
Sell signal conditions:
A sell signal is generated when the RSI falls below 20, indicating a loss of bullish momentum.
Alternatively, if the price drops below the EMA600, it suggests a potential trend reversal or weakening of the bullish stance, triggering a sell to exit the position.
Backtest results
After testing this trading Idea on my backtest setup for baselining and comparing the results with other strategies, I got the following results:
With TSL Enabled:
With TSL Disabled:
So you already see here a major improvement in the strategies performance, only by disabling the TSL. However here the best timeframe shifts from the 30 minute TF to the 4 hour TF too because of this.
Because of these different timeframes, comparing the other plots is not really usefull, since each timeframe has its own ‘profile’ so to speak.
But to give you something to compare the performances of these two algo’s I present you the plots that are created by Freqtrade over multiple performance indicators.
With TSL:
Without TSL:
The big difference here is that on the 4 hour there are apparantly one majow pump of Doge catched, that made this timeframe perform much better. The Timeframe enabled version shows a much more controlled rise.
Conclusion
After seeing both these charts I have no real trust in both versions of this algorithm. Therefore I will present you the results and findings of my backtest in Blogpost form. To prevent you from the mistake or investment of time to investigate, this algorithm.
Thank you for reading and I will see you in the next post!
Goodbye