CombinedBinHAndClucV4 Strategy Analysis
I. Strategy Overview
CombinedBinHAndClucV4 is a multi-factor mean reversion trading strategy that combines the signal logic of two classic strategies—BinHV45 and ClucMay72018—to capture oversold rebound opportunities in sideways markets.
The core idea is: when price deviates from the lower Bollinger Band due to short-term volatility and shows a clear contracting pattern, it is identified as a potential mean reversion signal. At the same time, volume filtering and EMA trend judgment are used to reduce the probability of false breakouts.
The strategy runs on a 5-minute short-term timeframe by default, emphasizing fast entry and exit. Annualized expected returns depend on market volatility and are suitable for traders with a certain level of risk tolerance.
V4's Core Upgrade over V3: Widened stop-loss limit (-99%), lowered trailing stop activation threshold (2.5%), shortened time stop-loss period (5 hours)—designed to let trending markets develop fully and avoid being stopped out prematurely.
II. Strategy Configuration Analysis
2.1 Basic Parameters
| Parameter | Value | Description |
|---|---|---|
timeframe | 5m | 5-minute candles, suitable for short-term trading |
minimal_roi | {"0": 0.019} | Take-profit triggers when cumulative return reaches 1.9% |
stoploss | -0.99 | Stop-loss nearly disabled (-99%), relies on other risk controls |
use_exit_signal | True | Enable exit signal judgment |
exit_profit_only | True | Only trigger sell signals in profitable state |
exit_profit_offset | 0.001 | Only allow selling after profit exceeds 0.1% |
ignore_roi_if_entry_signal | True | Ignore ROI limit when entry signal appears |
2.2 Trailing Stop Configuration
| Parameter | Value | Description |
|---|---|---|
trailing_stop | True | Enable trailing stop |
trailing_only_offset_is_reached | True | Only activate trailing after profit reaches offset |
trailing_stop_positive | 0.01 | Trailing stop distance 1% |
trailing_stop_positive_offset | 0.025 | Activate trailing when profit reaches 2.5% |
V4 Key Change: Trailing stop activation point lowered from V3's 3% to 2.5%, allowing earlier partial profit protection.
2.3 Order Types
order_types = {
'entry': 'limit', # Limit order entry
'exit': 'limit', # Limit order exit
'stoploss': 'market' # Stop-loss uses market order
}
III. Entry Conditions Details
The strategy's buy signals are generated by two independent conditions; meeting either one triggers a buy:
3.1 Condition One: BinHV45 Strategy
(dataframe['lower'].shift().gt(0) &
dataframe['bbdelta'].gt(dataframe['close'] * 0.008) &
dataframe['closedelta'].gt(dataframe['close'] * 0.0175) &
dataframe['tail'].lt(dataframe['bbdelta'] * 0.25) &
dataframe['close'].lt(dataframe['lower'].shift()) &
dataframe['close'].le(dataframe['close'].shift()) &
(dataframe['volume'] > 0))
V4 Change: Added
volume > 0check to exclude zero-volume abnormal candles.
Signal Interpretation:
| Condition | Meaning |
|---|---|
lower.shift() > 0 | Confirm the lower Bollinger Band is valid (exclude calculation errors) |
bbdelta > close * 0.008 | Bollinger Band channel width is at least 0.8% of current price |
closedelta > close * 0.0175 | Closing price differs from previous close by more than 1.75% |
tail < bbdelta * 0.25 | Lower wick length less than 25% of channel width, close near the day's low |
close < lower.shift() | Close breaks below the previous day's lower Bollinger Band |
close <= close.shift() | Close is not higher than the previous day's close |
volume > 0 | Exclude zero-volume abnormal candles |
Combined Logic: Price drops rapidly and pierces the lower Bollinger Band with sufficient volatility and a short lower wick—typical oversold rebound pattern.
3.2 Condition Two: ClucMay72018 Strategy
((dataframe['close'] < dataframe['ema_slow']) &
(dataframe['close'] < 0.985 * dataframe['bb_lowerband']) &
(dataframe['volume'] < (dataframe['volume_mean_slow'].shift(1) * 20)) &
(dataframe['volume'] > 0))
V4 Change: Added
volume > 0check.
Signal Interpretation:
| Condition | Meaning |
|---|---|
close < ema_slow | Price below the 50-day EMA, confirming medium-term downtrend |
close < 0.985 * bb_lowerband | Price clearly below the Bollinger Band lower rail |
volume < volume_mean_slow.shift(1) * 20 | Volume less than 20x the 30-day average (abnormally shrunken) |
volume > 0 | Exclude zero-volume abnormal candles |
Combined Logic: During a downtrend, price rapidly breaks below the lower Bollinger Band, but volume does not expand—this suggests downward momentum is insufficient.
3.3 Entry Signal Trigger Rules
The two conditions have an OR relationship—meeting either one generates a buy signal.
IV. Exit Conditions Details
4.1 Take-Profit Logic
- Take-profit triggers when cumulative return reaches 1.9%
exit_profit_only = Trueensures selling only in profitable stateexit_profit_offset = 0.001requires profit to exceed 0.1% before triggering a sell
V4 Change: Take-profit threshold micro-adjusted from 1.8% to 1.9%.
4.2 Trailing Stop Logic
When open profit reaches 2.5% (trailing_stop_positive_offset), the trailing stop activates:
- Stop-loss line moves up, locking in at least 1% of profit
- If price continues to rise, the stop-loss line follows
- If price drops back to touch the trailing stop line, close at market price
V4 Key Change: Activation threshold lowered from 3% to 2.5%, strategy enters protection mode earlier.
4.3 Exit Signal Conditions
(dataframe['close'] > dataframe['bb_upperband']) &
(dataframe['close'].shift(1) > dataframe['bb_upperband'].shift(1)) &
(dataframe['high'].shift(2) > dataframe['bb_upperband'].shift(2)) &
(dataframe['high'].shift(3) > dataframe['bb_upperband'].shift(3)) &
(dataframe['high'].shift(4) > dataframe['bb_upperband'].shift(4)) &
(dataframe['high'].shift(5) > dataframe['bb_upperband'].shift(5)) &
(dataframe['volume'] > 0)
V4 Change: Changed from 4 consecutive candles to 5 consecutive candles breaking the upper rail—exit conditions are stricter.
Signal Interpretation:
| Condition | Meaning |
|---|---|
close > bb_upperband | Close breaks above the Bollinger Band upper rail |
| 5 consecutive candles above upper rail | Confirm breakout persistence |
volume > 0 | Exclude abnormal volume conditions |
4.4 Custom Stop-Loss Logic
def custom_stoploss(self, pair, trade, current_time, current_rate, current_profit, **kwargs):
if (current_time - timedelta(minutes=300) > trade.open_date_utc) & (current_profit < 0):
return 0.01
return 0.99
V4 Key Change: Time stop-loss shortened dramatically from 2200 minutes (~36.7 hours) to 300 minutes (5 hours).
Special Handling:
- If position is held for more than 300 minutes (5 hours) and is still in loss
- Set stop-loss parameter to 0.01 (actual market price stop)
- Purpose: prevent floating losses while giving trending markets more room to develop
V. Technical Indicator System
5.1 Bollinger Band Indicators
| Indicator | Calculation | Purpose |
|---|---|---|
mid / lower | Custom Bollinger Bands (40, 2) | Core indicator for BinHV45 |
bbdelta | |mid - lower| | Bollinger Band channel width |
bb_lowerband | qtpylib.bollinger_bands (20, 2) | Bollinger Band used by Cluc |
bb_middleband | Bollinger Band middle rail | Trend reference |
bb_upperband | Bollinger Band upper rail | Sell signal trigger |
5.2 Moving Average Indicators
| Indicator | Period | Purpose |
|---|---|---|
ema_slow | 50 | Judge medium-term trend direction |
5.3 Volatility Indicators
| Indicator | Formula | Meaning |
|---|---|---|
closedelta | |close - close.shift(1)| | Intraday closing price volatility |
tail | |close - low| | Lower wick length |
5.4 Volume Indicators
| Indicator | Period | Purpose |
|---|---|---|
volume_mean_slow | 30 | Volume moving average for volume-shrinking filter |
VI. Risk Management Features
6.1 Multi-Layer Risk Control System
- Fixed Stop-Loss: -99% nearly disabled, relies primarily on other risk controls
- Time Stop-Loss: Force exit at market if still in loss after 5 hours
- Trailing Stop: Activate 1% trailing when profit exceeds 2.5%
- Take-Profit Threshold: 1.9% cumulative return triggers automatic take-profit
V4 Core Design Philosophy: Relax hard stop limits, give trends room to develop, while using time stop-loss to prevent long floating losses.
6.2 Take-Profit Restrictions
exit_profit_only = Trueprevents passive selling in a loss stateexit_profit_offset = 0.001ensures sufficient safety margin before exiting
6.3 Volume Filtering
- ClucMay72018 condition requires
volume < volume_mean_slow * 20 - Both entry conditions added
volume > 0check
VII. Strategy Pros & Cons
7.1 Pros
- Dual-Factor Complementarity: BinHV45 catches rapid sell-off rebounds, ClucMay72018 catches volume-shrinking oversold rebounds
- V4 Optimized Time Stop-Loss: 5-hour time stop-loss gives trending markets more room to develop, reduces being shaken out
- Trailing Protection: 2.5% profit activates trailing stop, locking in gains earlier
- V4 Lower Trailing Threshold: Lowered from 3% to 2.5%, enters protection mode earlier
- Clear Signals: Entry conditions are specific and quantifiable
7.2 Cons
- 5-Minute Period Noise: High-frequency trading susceptible to short-term fluctuations
- V4 Low Take-Profit: 1.9% target may be too conservative in sideways markets
- Volatility-Dependent: Strategy is mean reversion, performs limitedly in trending markets
- Strict Exit Conditions: 5 consecutive candles must break upper rail to sell
- V4 Loose Stop-Loss: -99% stop-loss nearly disabled, may endure large floating losses in extreme one-directional drops
VIII. Applicable Scenarios
8.1 Recommended Scenarios
- Sideways Markets: Price fluctuates around Bollinger Band rails
- High-Volatility Pairs: High volatility more easily triggers entry conditions
- Trend Continuation Pullbacks: V4's loose stop-loss design suits pullback entries in trends
8.2 Not Recommended Scenarios
- One-Directional Uptrend: May sell too early, missing the main wave
- One-Directional Downtrend: Consecutive time stop-loss triggers, losses accumulate
- Low-Volatility Markets: Entry conditions hard to meet
- Long-Term Investment: 5-minute timeframe unsuitable
IX. Applicable Market Environment Details
9.1 Best Market Environment
| Market Characteristic | Strategy Performance |
|---|---|
| Wide-Range Sideways | ⭐⭐⭐⭐⭐ |
| High Volatility | ⭐⭐⭐⭐ |
| Rapid Sell-off Then Rebound | ⭐⭐⭐⭐⭐ |
| Trend Continuation Pullback | ⭐⭐⭐⭐ (V4 optimized) |
9.2 Average-Performing Markets
| Market Characteristic | Strategy Performance |
|---|---|
| Sustained Uptrend (Bull) | ⭐⭐ |
| Sustained Downtrend (Bear) | ⭐⭐ |
| Low-Volatility Consolidation | ⭐⭐ |
9.3 Risk Warning
- V4's -99% stop-loss nearly disabled, may endure large floating losses in one-directional drops
- Time stop-loss shortened to 5 hours, may be stopped out prematurely in trending markets
- Recommended to use trend filters (such as EMA200 direction)
X. Important Reminders
- Backtesting Verification: Complete at least 3 months of backtesting before live trading
- Fee Impact: 5-minute period frequent trading, choose low-fee platforms
- Parameter Tuning:
minimal_roiandtrailing_stop_positive_offsetcan be adjusted - Liquidity Risk: Small-cap tokens may have slippage
- V4 Risk Warning: -99% stop-loss nearly disabled, rely on time stop-loss and trailing stop
- Extreme Markets: V4 may endure larger drawdowns due to loose stop-loss
XI. Summary
CombinedBinHAndClucV4 is a hybrid mean reversion strategy combining BinHV45 and ClucMay72018 to capture oversold rebound opportunities.
V4's Core Upgrades:
- Stop-loss widened from -10% to -99%, reducing being shaken out by market noise
- Trailing stop activation point lowered from 3% to 2.5%, locking in profits earlier
- Time stop-loss shortened from 36.7 hours to 5 hours, giving trends more room
- Exit conditions changed from 4 to 5 consecutive candles, stricter
This strategy performs well in high-volatility sideways markets and trend continuation pullbacks, suitable for short-term traders. It has certain market condition requirements and performs limitedly in one-directional trends. The loose stop-loss design requires traders to have strong risk management ability.
Key Takeaways:
- ✅ Suitable for sideways markets, oversold rebound scenarios
- ✅ V4 optimized for trend continuation adaptability
- ⚠️ Loose stop-loss design, risk control relies on time stop-loss and trailing stop
- ⚠️ High-frequency trading, costs require close attention
- ⚠️ Poor performance in one-directional trending markets