BBRSIS Strategy Analysis
Strategy Number: #3 (3rd of 465 strategies)
Strategy Type: Multi-Timeframe RSI + Bollinger Bands Trend Following
Timeframe: 5 minutes (5m)
1. Strategy Overview
BBRSIS is a trend following strategy based on multi-timeframe RSI and Bollinger Bands. The core feature is using resampling technology to overlay 15-minute, 30-minute, and 50-minute RSI indicators from three longer timeframes on the 5-minute main timeframe, achieving multi-dimensional trend judgment.
Core Features
| Feature | Description |
|---|---|
| Entry Conditions | 1 composite condition (Bollinger lower band + SMA bullish alignment + multi-period RSI) |
| Exit Conditions | 1 composite condition (Bollinger middle band + multi-period RSI confirmation) |
| Protection | No independent protection parameters, relies on hard stoploss |
| Timeframe | 5m main + 15/30/50 minute resampling |
| Dependencies | TA-Lib, technical (qtpylib, resample) |
2. Configuration Analysis
2.1 Base Risk Parameters
# ROI exit table
minimal_roi = {
"0": 0.30 # Immediate exit: 30% profit
}
# Stoploss setting
stoploss = -0.10 # -10% hard stoploss
Design Logic:
- Single ROI threshold: Only 30% level exit, indicating strategy expects to capture large trends
- Standard stoploss: -10% hard stoploss is common Freqtrade strategy configuration
- No trailing stop: Strategy relies on technical signals for exit
2.2 Order Type Configuration
order_types = {
"entry": "limit", # Limit order entry
"exit": "limit", # Limit order exit
"stoploss": "limit", # Limit stoploss order
"stoploss_on_exchange": False,
}
order_time_in_force = {
"entry": "GTC", # Good Till Cancelled
"exit": "GTC",
}
3. Entry Conditions Explained
3.1 Entry Logic
# Entry conditions
dataframe.loc[
(
(dataframe["close"] < dataframe["bb_lowerband"]) # Price below lower Bollinger Band
& (dataframe["sma5"] >= dataframe["sma75"]) # SMA5 >= SMA75
& (dataframe["sma75"] >= dataframe["sma200"]) # SMA75 >= SMA200
& (
dataframe["rsi"]
< (dataframe["resample_15_rsi"] - 5) # Current RSI < 15m RSI - 5
)
& (dataframe["volume"] > 0) # Volume greater than 0
),
"entry",
] = 1
Logic Analysis:
- Lower Bollinger Band Break: Price breaks below 3 standard deviation Bollinger lower band (note 3x not 2x)
- SMA Bullish Alignment: SMA5 >= SMA75 >= SMA200, ensuring long-term trend is upward
- RSI Multi-Period Confirmation: Current RSI significantly below 15-minute RSI (5+ points lower), confirming short-term oversold
- Volume Filter: Excludes abnormal candles with zero volume
3.2 Indicator Calculation
# SMA calculation
dataframe["sma5"] = ta.SMA(dataframe, timeperiod=5)
dataframe["sma75"] = ta.SMA(dataframe, timeperiod=75)
dataframe["sma200"] = ta.SMA(dataframe, timeperiod=200)
# Multi-timeframe RSI
dataframe_short = resample_to_interval(dataframe, 15) # 5m × 3 = 15m
dataframe_medium = resample_to_interval(dataframe, 30) # 5m × 6 = 30m
dataframe_long = resample_to_interval(dataframe, 50) # 5m × 10 = 50m
dataframe_short["rsi"] = ta.RSI(dataframe_short, timeperiod=20)
dataframe_medium["rsi"] = ta.RSI(dataframe_medium, timeperiod=20)
dataframe_long["rsi"] = ta.RSI(dataframe_long, timeperiod=20)
# Merge resampled data
dataframe = resampled_merge(dataframe, dataframe_short)
dataframe = resampled_merge(dataframe, dataframe_medium)
dataframe = resampled_merge(dataframe, dataframe_long)
# Main timeframe RSI
dataframe["rsi"] = ta.RSI(dataframe, timeperiod=20)
# Bollinger Bands (3 standard deviations)
bollinger = qtpylib.bollinger_bands(
qtpylib.typical_price(dataframe), window=20, stds=3
)
4. Exit Logic Explained
4.1 Exit Conditions
# Exit conditions
dataframe.loc[
(
(dataframe["close"] > dataframe["bb_middleband"]) # Price above middle Bollinger Band
& (
dataframe["rsi"]
> dataframe["resample_15_rsi"] + 5 # Current RSI > 15m RSI + 5
)
& (
dataframe["rsi"]
> dataframe["resample_30_rsi"] # Current RSI > 30m RSI
)
& (
dataframe["rsi"]
> dataframe["resample_50_rsi"] # Current RSI > 50m RSI
)
& (dataframe["volume"] > 0)
),
"exit",
] = 1
Logic Analysis:
- Middle Bollinger Band Break: Price breaks above Bollinger middle band (20-period SMA), indicating weakening upward momentum
- RSI Multi-Period Confirmation: Current RSI must exceed all three longer timeframe RSI values
- Volume Filter: Ensures valid trading volume
5. Technical Indicator System
5.1 Core Indicators
| Indicator Category | Specific Indicator | Parameters | Usage |
|---|---|---|---|
| Trend | SMA | 5, 75, 200 periods | Trend direction judgment |
| Momentum | RSI | 20 periods | Overbought/oversold + multi-timeframe confirmation |
| Volatility | Bollinger Bands | 20 periods, 3 std dev | Price boundary judgment |
5.2 Resampling Technology
How Resampling Works:
- Aggregate 5-minute candles into longer timeframes (15m, 30m, 50m)
- Calculate RSI on each aggregated timeframe
- Merge back to main 5-minute dataframe
- Enables multi-timeframe analysis on single chart
6. Risk Management Features
6.1 Hard Stoploss Protection
stoploss = -0.10 # -10%
Note: Standard stoploss suitable for trend following strategy.
6.2 Single ROI Exit
minimal_roi = {"0": 0.30} # 30% profit exit
Design Logic: High threshold indicates strategy aims to capture large trending moves.
7. Strategy Strengths and Limitations
✅ Strengths
- Multi-Timeframe Analysis: Incorporates 15m, 30m, 50m RSI for comprehensive trend judgment
- Trend Filter: SMA5/75/200 bullish alignment ensures trading with the trend
- Strict Entry Conditions: Multiple conditions reduce false signals
- Resampling Technology: Advanced technique for multi-timeframe analysis
- 3x Standard Deviation: Wider Bollinger Bands reduce false breakouts
⚠️ Limitations
- Complex Logic: Multiple conditions and resampling increase complexity
- No Trailing Stop: Relies solely on technical exits and hard stoploss
- High ROI Threshold: 30% may be too high for some market conditions
- Lag from Resampling: Longer timeframe indicators introduce lag
- No BTC Correlation: Does not account for Bitcoin market direction
8. Recommended Usage Scenarios
| Market Environment | Recommended Configuration | Notes |
|---|---|---|
| Strong Uptrend | Default configuration | Trend following excels in trending markets |
| Ranging Market | Reduce SMA periods | May generate fewer signals in ranging conditions |
| Downtrend | Pause or avoid | Strategy is long-only, avoid in downtrends |
| High Volatility | Keep default | 3x Bollinger Bands handle volatility well |
9. Summary
BBRSIS is an advanced trend following strategy featuring multi-timeframe RSI analysis. Its core value lies in:
- Multi-Timeframe Integration: Combines 5m, 15m, 30m, 50m timeframes
- Trend Confirmation: SMA alignment ensures trading with the trend
- Advanced Technique: Uses resampling for sophisticated analysis
- Strict Conditions: Multiple filters reduce false signals
For quantitative traders, this demonstrates advanced multi-timeframe analysis techniques. Recommendations:
- Study the resampling implementation for learning
- Can adjust SMA periods for different timeframes
- Consider adding trailing stop for profit protection
- Test on various pairs to find optimal settings