Skip to main content

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

FeatureDescription
Entry Conditions1 composite condition (Bollinger lower band + SMA bullish alignment + multi-period RSI)
Exit Conditions1 composite condition (Bollinger middle band + multi-period RSI confirmation)
ProtectionNo independent protection parameters, relies on hard stoploss
Timeframe5m main + 15/30/50 minute resampling
DependenciesTA-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 CategorySpecific IndicatorParametersUsage
TrendSMA5, 75, 200 periodsTrend direction judgment
MomentumRSI20 periodsOverbought/oversold + multi-timeframe confirmation
VolatilityBollinger Bands20 periods, 3 std devPrice boundary judgment

5.2 Resampling Technology

How Resampling Works:

  1. Aggregate 5-minute candles into longer timeframes (15m, 30m, 50m)
  2. Calculate RSI on each aggregated timeframe
  3. Merge back to main 5-minute dataframe
  4. 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

  1. Multi-Timeframe Analysis: Incorporates 15m, 30m, 50m RSI for comprehensive trend judgment
  2. Trend Filter: SMA5/75/200 bullish alignment ensures trading with the trend
  3. Strict Entry Conditions: Multiple conditions reduce false signals
  4. Resampling Technology: Advanced technique for multi-timeframe analysis
  5. 3x Standard Deviation: Wider Bollinger Bands reduce false breakouts

⚠️ Limitations

  1. Complex Logic: Multiple conditions and resampling increase complexity
  2. No Trailing Stop: Relies solely on technical exits and hard stoploss
  3. High ROI Threshold: 30% may be too high for some market conditions
  4. Lag from Resampling: Longer timeframe indicators introduce lag
  5. No BTC Correlation: Does not account for Bitcoin market direction

Market EnvironmentRecommended ConfigurationNotes
Strong UptrendDefault configurationTrend following excels in trending markets
Ranging MarketReduce SMA periodsMay generate fewer signals in ranging conditions
DowntrendPause or avoidStrategy is long-only, avoid in downtrends
High VolatilityKeep default3x Bollinger Bands handle volatility well

9. Summary

BBRSIS is an advanced trend following strategy featuring multi-timeframe RSI analysis. Its core value lies in:

  1. Multi-Timeframe Integration: Combines 5m, 15m, 30m, 50m timeframes
  2. Trend Confirmation: SMA alignment ensures trading with the trend
  3. Advanced Technique: Uses resampling for sophisticated analysis
  4. 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