Roth01 Strategy In-Depth Analysis
Strategy Number: #351 (351st of 465 strategies)
Strategy Type: Bollinger Band Mean Reversion + Oversold Reversal Capture
Time Frame: 5 minutes (5m)
I. Strategy Overview
Roth01 is an oversold bounce strategy based on Bollinger Band lower band breakouts, combining MFI (Money Flow Index) and CCI (Commodity Channel Index) to identify entry opportunities in extreme oversold zones. The core logic is "be greedy when others are fearful" — when price breaks below the Bollinger Band lower band and capital is heavily flowing out, the strategy captures the opportunity for price mean reversion.
Core Features
| Feature | Description |
|---|---|
| Buy Condition | 1 buy signal, based on Bollinger Band lower band breakout + MFI oversold + CCI oversold |
| Sell Condition | 1 sell signal, based on SAR reversal + RSI overbought + Bollinger Band upper band breakout |
| Protection Mechanism | Tiered ROI take-profit + Fixed stop-loss |
| Time Frame | 5 minutes |
| Dependencies | talib, qtpylib |
II. Strategy Configuration Analysis
2.1 Basic Risk Parameters
# ROI Exit Table
minimal_roi = {
"0": 0.14696, # Immediate: 14.696%
"29": 0.06698, # After 29 minutes: 6.698%
"75": 0.02449, # After 75 minutes: 2.449%
"181": 0 # After 181 minutes: No limit
}
# Stop-loss Setting
stoploss = -0.29585 # -29.585%
Design Rationale:
- Initial ROI target is relatively high (14.696%), giving the strategy ample room to capture significant rebounds
- The time-decaying ROI design encourages profitable exits within shorter timeframes
- Stop-loss is set quite loosely (-29.585%), suitable for capturing larger price swings
2.2 Order Type Configuration
The strategy uses default order type configuration, suitable for most exchanges.
III. Buy Condition Analysis
3.1 Buy Condition Breakdown
Roth01 employs a single-path buy logic where all conditions must be satisfied simultaneously:
# Single Buy Condition
dataframe.loc[
(
(dataframe['mfi'] < 24) & # MFI below 24, extreme capital outflow
(dataframe['close'] < dataframe['bb_low']) & # Price breaks below Bollinger lower band
(dataframe['cci'] <= -57.0) # CCI below -57, oversold confirmation
),
'buy'] = 1
3.2 Buy Condition Interpretation
| Condition | Indicator | Threshold | Meaning |
|---|---|---|---|
| Capital Outflow | MFI | < 24 | Money flow extremely contracted, market panic |
| Price Breakout | Close | < BB_Low | Price breaks below Bollinger lower band, deviation from mean |
| Oversold Confirmation | CCI | <= -57 | Commodity Channel Index confirms oversold state |
Logic Analysis:
- MFI < 24: Money Flow Index below 24 indicates significant capital outflow, extremely pessimistic market sentiment
- Close < BB_Low: Price breaking below the Bollinger lower band represents a statistically extreme deviation
- CCI <= -57: Commodity Channel Index below -57 confirms the price is in oversold territory
These three conditions form a "triple confirmation" mechanism to avoid entering on false breakouts.
IV. Sell Logic Analysis
4.1 Multi-Tier Take-Profit System
The strategy employs a tiered ROI take-profit mechanism:
Time (minutes) Target Profit Description
─────────────────────────────────────────────
0 14.696% Highest target set at position open
29 6.698% Lower expectation after 29 minutes
75 2.449% Conservative target after 75 minutes
181 0% Any profit acceptable after 3 hours
4.2 Sell Signal
# Single Sell Condition
dataframe.loc[
(
(dataframe['sar'] > dataframe['close']) & # SAR reverses downward
(dataframe['rsi'] > 75) & # RSI overbought
(dataframe['close'] > dataframe['bb_upper']) & # Price breaks above Bollinger upper band
(dataframe['cci'] >= 83.0) & # CCI overbought confirmation
(dataframe['mfi'] < 92) & # MFI not at extreme
(dataframe['sar']) # SAR valid value check
),
'sell'] = 1
4.3 Sell Condition Interpretation
| Condition | Indicator | Threshold/Logic | Meaning |
|---|---|---|---|
| Trend Reversal | SAR | > Close | Parabolic SAR reverses above price |
| Overbought State | RSI | > 75 | Relative Strength Index enters overbought zone |
| Price Breakout | Close | > BB_Upper | Price breaks above Bollinger upper band |
| Overbought Confirmation | CCI | >= 83 | Commodity Channel Index confirms overbought |
| Capital Status | MFI | < 92 | Money flow has not yet peaked |
Design Features:
- Sell conditions form a mirror image of buy conditions (overbought vs oversold)
- SAR acts as the primary trend reversal signal
- Multiple indicator confirmations avoid false breakouts
V. Technical Indicator System
5.1 Core Indicators
| Indicator Category | Specific Indicators | Purpose |
|---|---|---|
| Trend Indicators | MACD, SAR | Trend direction judgment |
| Volatility Indicators | Bollinger Bands (BB) | Price channel and overbought/oversold |
| Momentum Indicators | RSI, CCI, MFI | Overbought/oversold determination |
| Trend Strength | ADX | Trend strength (not actively used) |
| Oscillator | Stoch Fast | Fast stochastic indicator |
5.2 Technical Indicator Calculations
# MACD
macd = ta.MACD(dataframe)
dataframe['macd'] = macd['macd']
dataframe['macdsignal'] = macd['macdsignal']
dataframe['macdhist'] = macd['macdhist']
# Bollinger Bands
bollinger = qtpylib.bollinger_bands(qtpylib.typical_price(dataframe), window=20, stds=2)
dataframe['bb_low'] = bollinger['lower']
dataframe['bb_mid'] = bollinger['mid']
dataframe['bb_upper'] = bollinger['upper']
dataframe['bb_perc'] = (dataframe['close'] - dataframe['bb_low']) / (
dataframe['bb_upper'] - dataframe['bb_low'])
# RSI, CCI, MFI, SAR, ADX, Stoch Fast
dataframe['rsi'] = ta.RSI(dataframe)
dataframe['cci'] = ta.CCI(dataframe)
dataframe['mfi'] = ta.MFI(dataframe)
dataframe['sar'] = ta.SAR(dataframe)
dataframe['adx'] = ta.ADX(dataframe)
stoch_fast = ta.STOCHF(dataframe)
dataframe['fastd'] = stoch_fast['fastd']
dataframe['fastk'] = stoch_fast['fastk']
VI. Risk Management Features
6.1 Tiered Take-Profit Mechanism
The strategy uses time-decaying ROI targets with different take-profit points at various holding times:
| Holding Time | Target Profit | Risk Characteristics |
|---|---|---|
| 0-29 minutes | 14.696% | High target, capturing significant rebounds |
| 29-75 minutes | 6.698% | Moderate target, reasonable profit |
| 75-181 minutes | 2.449% | Conservative target, securing small gains |
| >181 minutes | 0% | Any profit acceptable for exit |
6.2 Fixed Stop-Loss Protection
- Stop-Loss Level: -29.585%
- Design Philosophy: Relatively wide stop-loss allows for significant price fluctuation before the rebound
6.3 Technical Signal Confirmation
Both buy and sell employ multi-indicator confirmation mechanisms to reduce false signal risk:
- Buy: MFI + Bollinger Band + CCI triple confirmation
- Sell: SAR + RSI + Bollinger Band + CCI + MFI five-fold confirmation
VII. Strategy Advantages and Limitations
✅ Advantages
- Clear Logic: Buy and sell conditions are symmetrical — buy at oversold, sell at overbought, consistent with mean reversion logic
- Multiple Confirmations: Each signal has multiple technical indicator confirmations, reducing false signal probability
- Transparent Parameters: All thresholds are clearly defined in the code, easy to understand and adjust
- Time-Friendly: Tiered ROI design encourages shorter holding periods
⚠️ Limitations
- One-Sided Market Risk: The strategy primarily captures rebounds and may trigger frequent stop-losses in sustained downtrends
- Wide Stop-Loss: -29.585% stop-loss means single-trade losses can be significant
- Range-Bound Market Issues: May result in frequent entries and exits, increasing trading costs
- Dependence on Extreme Conditions: Requires price to genuinely break below the Bollinger lower band to trigger buys
VIII. Suitable Market Scenarios
| Market Environment | Recommended Configuration | Description |
|---|---|---|
| Post-Decline Rebound | Default configuration | Suitable for capturing mean reversion after sharp drops |
| Oscillating Decline | Adjust stop-loss | Consider tightening stop-loss to reduce losses |
| Sustained Downtrend | Disable | Strategy is not adapted for continuous declining markets |
| Strong Uptrend | Disable | Cannot capture upward trends |
IX. Applicable Market Environment Details
Roth01 is a classic mean reversion strategy, suitable for capturing rebounds when the market experiences extreme oversold conditions. Based on its code architecture, it is best suited for sharp decline rebound scenarios, while performing poorly in sustained downtrends or one-sided uptrends.
9.1 Strategy Core Logic
- Oversold Capture: When MFI < 24 and price breaks below the Bollinger lower band, the market is considered to be in extreme panic
- Mean Reversion: Based on statistical principles, extreme deviations tend to revert to the mean
- Mirror Exit: Profit-taking when in overbought conditions (Bollinger upper band breakout)
9.2 Performance in Different Market Environments
| Market Type | Performance Rating | Reason Analysis |
|---|---|---|
| 📈 Sharp Decline Rebound | ⭐⭐⭐⭐⭐ | Core design scenario, capturing oversold reversals |
| 🔄 Range-Bound Market | ⭐⭐⭐☆☆ | May result in frequent entries/exits, fees eroding profits |
| 📉 Sustained Downtrend | ⭐⭐☆☆☆ | Frequent stop-loss triggers, accumulating losses |
| ⚡️ One-Sided Uptrend | ⭐☆☆☆☆ | Cannot trigger buy conditions |
9.3 Key Configuration Recommendations
| Configuration Item | Recommended Value | Description |
|---|---|---|
| Stop-Loss | -0.25 ~ -0.30 | Adjust based on risk tolerance |
| Time Frame | 5m | Default setting, not recommended to modify |
| ROI Initial Target | 0.10 ~ 0.15 | Can be adjusted based on market volatility |
X. Important Note: The Cost of Complexity
10.1 Learning Curve
Roth01's strategy logic is relatively simple, suitable for traders with some technical analysis foundation. Requires understanding of common technical indicators such as Bollinger Bands, MFI, CCI, RSI, and SAR.
10.2 Hardware Requirements
| Number of Trading Pairs | Minimum Memory | Recommended Memory |
|---|---|---|
| 1-10 pairs | 2GB | 4GB |
| 10-50 pairs | 4GB | 8GB |
Strategy computation is moderate, with modest hardware requirements.
10.3 Backtesting vs Live Trading Differences
Backtesting may show excellent performance, but in live trading be aware of:
- Slippage Impact: Liquidity may be insufficient during extreme market conditions
- False Breakout Risk: Bollinger Band breakouts may be false signals
- Stop-Loss Execution: Wide stop-losses may face execution difficulties during extreme volatility
10.4 Manual Trader Recommendations
Manual traders can reference strategy signals:
- Watch for assets with MFI < 24 and price below Bollinger lower band
- Confirm oversold state with CCI
- Set reasonable stop-loss to control per-trade risk
XI. Summary
Roth01 is a simple yet focused mean reversion strategy. Its core value lies in:
- Triple Confirmation Mechanism: MFI, Bollinger Band, and CCI triple confirmation reduces false signal risk
- Mirror-Symmetric Logic: Buy and sell conditions form a symmetrical pattern, logically consistent
- Tiered Take-Profit: Tiered ROI design balances profit expectations with holding time
For quantitative traders, Roth01 serves as a suitable template for a base strategy, with parameters that can be optimized based on actual market conditions. Its simple design makes it easy to understand and debug, suitable for beginners learning mean reversion strategy design principles.