The ‘Smooth Scalp’ strategy. Is it profitable or not? (Patreon)
Downloads
Content
Intro
In this blog series I will be searching for the best trading strategy for cryptocurrency trading with a trading bot. These posts are complementary to the video’s I make on Youtube, which you can watch below.
The trading bot I use is the Freqtrade (https://www.freqtrade.io/en/latest/) trading bot which not only has good options for bot trading, but also is excellent in backtesting and optimization of trading parameters. Therefore I will use this program to not only trade automatically, but also look for the best strategies and setups.
The strategy I investigate in this post is freely available in the Freqtrade github repository on the following location: https://github.com/freqtrade/freqtrade-strategies/tree/master/user_data/strategies/berlinguyinca
All credits go to the original author of this code.
Strategy
In this post I will show you the results of the backtests I did on the “Smooth Scalp strategy”.
This strategy is part of a ‘trilogy’ of scalping strategies from the author that make use of the same indicators. Each variant of this strategy however is a slightly different and more advanced approach on how these indicators are used. This Smooth scalp strategy is a slightly more advanced form of the previous Scalp strategy that I investigated in my last post.
This strategy was also intended to work on the 1 minute timeframe!
The following indicators are configured and will be part of the dataframe to determine the buy and sell signals:
- The exponential moving average of the close price over the last 5 candles.
- Two other 5 day moving averages that will form a band around the closeprice EMA. One that uses the high price of the day and one ema that uses the low price of the day.
- The fast stochastics with settings of five, three and three.
- The ADX
Next there will be some additional indicators added to the dataframe that will likely determine the buy or sell signals.
- The first added indicator is the commodities channel index,
- the second one is the RSI indicator and
- the third one is the Money Flow Indicator.
The buy signal will be given when:
- the open price of the candle is lower than the lower EMA band,
- The ADX indicator is higher than 30,
- The MFI indicator is lower than 30,
- The stochastics fastk and fastd indicators are both lower than 30 and at the same time fastk crosses above fasted
- And finally the CCI indicator is lower than -150
The Sell signal is given when:
- The open price of the candle is equal or higher than the exponential moving average of the high of the last five candles.
- Or the fast stochastics FASTK should have a crossover above the 70 level or the fast stochastics FASTD would cross over the 70 level.
- Finally a sell signal only occurs if one of the earlier indicators meet their criteria at the same moment the CCI indicator is higher than 150.
The RSI nor Bollinger or MACD are actually used here to create buy or sell signals. These are probably just here for graphing purposes and do not interact with the strategy.
Stoploss and takeprofit
This strategy makes use of the ROI and Stop loss functionality of the bot and uses the following rules:
- The ROI of this strategy is also 1%. This means that the strategy will sell then the trade reaches 1% profit. And this was the same as the earlier tested Scalp strategy.
- The strategy has a stop loss of 5%. This tells me that the strategy should at least have a win rate of 5 to 1 to get break even.
Initial backtest results
After backtesting, the initial backtest results are as follows:
- Best timeframe: 30 minutes
- Total profit of strategy: 10 %
- Drawdown of strategy: 242 %
- Winrate 84 %
- Risk of ruin of strategy: less than 1 %
The smooth scalp strategy is one of the few strategies that performs better on lower timescales than the daily timeframe.
It has a very good winrate of 84% according to the backtests. However the profit from all these trades is only a measly 10% after over more than 2700 trades.
The amount of sell signals does take a large toll on the profit of this strategy because it drains the profit almost totally in less of a quarter of the amount of wins. So there is definitely work to do on the exit indicators if you want to use this strategy.
But maybe we can improve this by improving the winrate of the ROI and the stop loss setting to stop out quicker or maybe slower…
Hyperparameter optimisation
For this strategy, hyperparameter optimization only were done on the ROI and Stop loss parts of the strategy with the following command:
freqtrade hyperopt -c user_data/backtest-config.json –epochs 1000 –spaces stoploss roi –hyperopt-loss SharpeHyperOptLoss –timeframe 30m -s SmoothScalp
Conclusions
As with the scalp strategy, the hyperopt changed the ROI to a higher percentage with the lowest of 2 % takeprofit after an amount of time. Further the stop loss was also widened for more breathing space for trades.
So for a timeframe of 30 minutes a larger takeprofit percentage also is improving the profitability of a scalping strategy.
Furthermore the win rate will go down because the amount of exit signals goes higher in comparison to the amount of trades that are happening.
The amount of pairs that are profitable also goes up, so this strategy is also applicable to a wider range of trading pairs.
And finally, the risk of ruin is higher than previous but I wish some other strategies had such a low ROR.
Strategy League
Because of the added profit weight, this strategy performs as one of the worst until now. But in my opinion this reflects the nature of these kinds of strategies better than before.
Now I have to say that every strategy that could potentially could give you more gains than leaving your money on the bank, is per definition not a bad one. But you have to consider the risk of trading and investing as well.
On this timeframe the strategy performs quite good if you compare it to other strategies that could only perform well on the daily timeframe. So there is nothing to be ashamed of if you look at the performance.
The reason that is performed worse than the scalp strategy is that it has a much higher drawdown, but that’s also the risk on this timeframe. Maybe after hyperopting it on the daily it could perform even better.
Files
Download all files with code, backtest results and more from this post.
The strategy code
Note: this is NOT MY CODE !
The hyperopt json results
{
"strategy_name": "SmoothScalp",
"params": {
"trailing": {
"trailing_stop": false,
"trailing_stop_positive": null,
"trailing_stop_positive_offset": 0.0,
"trailing_only_offset_is_reached": false
},
"buy": {},
"sell": {},
"protection": {},
"roi": {
"0": 0.068,
"98": 0.04,
"441": 0.02,
"656": 0
},
"stoploss": {
"stoploss": -0.286
}
},
"ft_stratparam_v": 1,
"export_time": "2022-03-26 10:07:53.827672+00:00"
}