Skip to main content

Cluc5werk Strategy In-Depth Analysis

Strategy ID: #89 (9th in Batch 9) Strategy Type: Bollinger Bands + ROCR Trend Filter + Dual Mode Confirmation Timeframe: 1 Minute (1m)


I. Strategy Overview​

Cluc5werk is an ultra short-cycle trading strategy based on Bollinger Bands and ROCR (Rate of Change Ratio) indicators. The strategy's core feature is combining 1-hour ROCR indicator for trend filtering with a dual confirmation mechanism (two consecutive candles must satisfy buy conditions) to reduce false signals. The strategy includes two complementary buy modes: Bollinger Band rebound mode and EMA volume-shrinking pullback mode.

Key Features​

FeatureDescription
Buy Conditions2 modes (Bollinger Band rebound + EMA volume-shrinking pullback)
Buy ConfirmationTwo consecutive candles satisfy fake_buy conditions
Sell ConditionsPrice touches Bollinger middle band + Three consecutive down candles pattern
ProtectionROCR trend filter + Hard stop-loss + Trailing stop
Timeframe1 Minute (main) + 1 Hour (informative)
DependenciesTA-Lib, technical, qtpylib, numpy
Special FeaturesMulti-timeframe analysis, Dual buy confirmation mechanism

II. Strategy Configuration Analysis​

2.1 Core Risk Parameters​

# ROI Exit Table
minimal_roi = {
"0": 0.02134, # Immediate exit: 2.134% profit
"275": 0.01745, # After 275 minutes: 1.745% profit
"559": 0.01618, # After 559 minutes: 1.618% profit
"621": 0.01310, # After 621 minutes: 1.310% profit
"791": 0.00843, # After 791 minutes: 0.843% profit
"1048": 0.00443, # After 1048 minutes: 0.443% profit
"1074": 0, # After 1074 minutes: 0% (trailing stop only)
}

# Stop-Loss Setting
stoploss = -0.22405 # -22.4% hard stop-loss

# Trailing Stop Configuration
trailing_stop = True
trailing_stop_positive = 0.18622 # Activates at 18.6% profit
trailing_stop_positive_offset = 0.23091 # Triggers at 23.1% profit
trailing_only_offset_is_reached = False

# Exit Signal Configuration
use_exit_signal = True
exit_profit_only = True
ignore_roi_if_entry_signal = True
exit_profit_offset = 0.0

Design Philosophy:

  • ROI Table: Uses an aggressive exit strategy; sets 2.1% target profit immediately upon entry, gradually lowering targets as holding time extends — suitable for high-volatility crypto markets
  • Stop-Loss -22.4%: Very loose stop-loss setting; strategy tolerates significant drawdowns; relies mainly on trailing stop for profit protection
  • Trailing Stop: Activates at 18.6% profit; final stop-loss moves to 23.1% profit level; provides ample upside room

2.2 Buy Parameter Configuration​

buy_params = {
'bbdelta-close': 0.01853, # Bollinger delta as % of close price
'bbdelta-tail': 0.78758, # tail to bbdelta ratio
'close-bblower': 0.00931, # Close to Bollinger lower band ratio
'closedelta-close': 0.00169, # Close delta as % of close price
'rocr-1h': 0.8973, # 1-hour ROCR threshold
'volume': 35 # Volume multiple
}

2.3 Sell Parameter Configuration​

sell_params = {
'sell-bbmiddle-close': 0.97103 # Close price as % of Bollinger middle band
}

III. Entry Conditions Details​

3.1 Core Filter Condition (Must Satisfy)​

1-Hour ROCR Filter:

dataframe['proch'].gt(params['roch-1h'])  # rocr_1h > 0.8973
  • Uses 1-hour period ROCR (168 candles) for trend confirmation
  • ROCR > 0.8973 means price shows an uptrend in the past 168 hours
  • This is the strategy's first layer of protection; only buys in uptrends

3.2 Mode 1: Bollinger Band Rebound Buy​

# Condition A: Bollinger Band rebound pattern
(
dataframe['lower'].shift().gt(0) &
dataframe['bbdelta'].gt(dataframe['close'] * params['bbdelta-close']) &
dataframe['closedelta'].gt(dataframe['close'] * params['closedelta-close']) &
dataframe['tail'].lt(dataframe['bbdelta'] * params['bbdelta-tail']) &
dataframe['close'].lt(dataframe['lower'].shift()) &
dataframe['close'].le(dataframe['close'].shift())
)

Conditions:

  1. lower.shift() > 0: Ensures Bollinger lower band valid (non-zero)
  2. bbdelta > close × 0.01853: Distance between middle and lower band > 1.853% of close; Bollinger has meaningful width
  3. closedelta > close × 0.00169: Close price has obvious absolute rise vs previous candle (0.169%)
  4. tail < bbdelta × 0.78758: Lower shadow length < 78.758% of Bollinger bandwidth; lower shadow relatively tight
  5. close < lower.shift(): Close below previous candle's Bollinger lower band; forms "breakdown" pattern
  6. close <= close.shift(): Close not higher than previous candle's close; confirms weak price action

Pattern Interpretation: This mode captures "false breakout" rebound opportunities. Price briefly breaks below Bollinger lower band then quickly rebounds; forms a hammer-like pattern.

3.3 Mode 2: EMA Volume-Shrinking Pullback Buy​

# Condition B: EMA volume-shrinking pullback pattern
(
(dataframe['close'] < dataframe['ema_slow']) &
(dataframe['close'] < params['close-bblower'] * dataframe['bb_lowerband']) &
(dataframe['volume'] < (dataframe['volume_mean_slow'].shift(1) * params['volume']))
)

Conditions:

  1. close < ema_slow: Close below 50-period EMA; below long-term MA
  2. close < bb_lowerband × 0.00931: Close below Bollinger lower band by 0.931%; price deeply breaks below BB
  3. volume < volume_mean_slow.shift(1) × 35: Volume below previous 30-day average × 35 (volume shrinkage)

Pattern Interpretation: This mode captures panic drop oversold rebound opportunities. Price is below EMA and significantly breaks Bollinger lower band, with shrinking volume — indicating selling pressure exhaustion.

3.4 Dual Confirmation Mechanism​

# fake_buy signal: satisfies either mode above
dataframe.loc[... , 'fake_buy'] = 1

# Actual buy signal: two consecutive candles both satisfy fake_buy
dataframe.loc[
(dataframe['fake_buy'].shift(1).eq(1)) &
(dataframe['fake_buy'].eq(1)) &
(dataframe['volume'] > 0)
,
'buy'
] = 1

Design Intent: Only triggers actual buy after two consecutive candles both satisfy buy conditions. This filters out single-candle random signals and improves signal reliability.


IV. Exit Logic Details​

4.1 Sell Conditions​

dataframe.loc[
(dataframe['high'].le(dataframe['high'].shift(1))) &
(dataframe['high'].shift(1).le(dataframe['high'].shift(2))) &
(dataframe['close'].le(dataframe['close'].shift(1))) &
((dataframe['close'] * params['sell-bbmiddle-close']) > dataframe['bb_middleband']) &
(dataframe['volume'] > 0)
,
'sell'
] = 1

Conditions:

  1. Three consecutive down pattern: high ≤ high.shift(1) ≤ high.shift(2); three consecutive candles' highs gradually decrease or stay flat
  2. Close weakness: close ≤ close.shift(1); close below or equal to previous candle
  3. Touching Bollinger middle band: close × 0.97103 > bb_middleband; close reaches 97.103%+ of Bollinger middle band
  4. Valid volume: Volume > 0

Pattern Interpretation: Sell combines price pattern (consecutive high decline) and technical indicator (touching Bollinger middle band). This ensures exit when price starts weakening and approaches important resistance.


V. Technical Indicator System​

5.1 Main Timeframe Indicators (1 Minute)​

Indicator NameCalculationPurpose
lowerCustom BB lower band (40 periods, 2x std dev)Buy: price rebound after breaking lower band
bbdelta|mid - lower|Buy: Bollinger bandwidth filter
closedelta|close - close.shift()|Buy: price volatility strength
tail|close - low|Buy: lower shadow length
bb_lowerbandqtpylib BB lower band (20 periods)Buy: price vs BB relationship
bb_middlebandqtpylib BB middle band (20 periods)Sell: price vs middle band relationship
ema_slow50-period EMABuy: price vs MA relationship
volume_mean_slow30-period volume MABuy: volume filter
rocr28-period ROCRBackup trend indicator

5.2 Informative Timeframe Indicators (1 Hour)​

Indicator NameCalculationPurpose
roch_1h168-period ROCR (7 days)Trend filter: ensures long-term uptrend

5.3 Indicator Relationship Diagram​

1-hour timeframe: ┌─────────────────────────────────────────┐
│ rocr_1h > 0.8973 (uptrend filter) │
└─────────────────────────────────────────┘
↓
1-minute timeframe: ┌─────────────────────────────────────────┐
│ Mode A: Bollinger Band rebound │
│ - bbdelta > close × 1.853% │
│ - close < lower.shift() │
│ - tail < bbdelta × 78.758% │
│ │
│ Mode B: EMA volume-shrinking pullback │
│ - close < ema_slow │
│ - close < bb_lower × 0.931% │
│ - volume < avg × 35 │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ Dual confirmation: fake_buy × 2 candles │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ Sell: Three down + touching BB middle │
└─────────────────────────────────────────┘

VI. Risk Management Features​

6.1 Multi-Layer Protection​

  1. Trend Filter Layer: 1-hour ROCR ensures buying only in uptrends
  2. Pattern Filter Layer: Dual buy confirmation (two consecutive candles) reduces false signals
  3. Hard Stop-Loss Layer: -22.4% stop-loss; tolerates large drawdowns
  4. Trailing Stop Layer: Activates at 18.6% profit; protects floating profits

6.2 Profit-Taking Strategy​

  • ROI Progressive Exit: Gradually lowers profit targets as holding extends
  • Trailing Stop Protection: Retains more profit when trend continues
  • Middle Band Resistance Exit: Exits when price meets resistance at Bollinger middle band

6.3 Risk-Return Characteristics​

ParameterValueDescription
Win Rate~90% (331 trades, 305 wins/9 flat/17 losses)Very high win rate
Average Profit1.54%Average return per trade
Median Profit2.13%Typical trade return
Average Holding Time367.3 minutes (~6 hours)Medium holding period
Total Return509.36% (best of 1000 hyperopt rounds)Outstanding backtest performance

VII. Strategy Pros & Cons​

7.1 Advantages​

  1. High Win Rate: 90%+ win rate provides stable trading experience
  2. Trend Filter: Uses 1-hour ROCR to avoid counter-trend trades
  3. Dual Confirmation: Two-consecutive-candle confirmation reduces false signals
  4. Dual Mode Buy: Two complementary buy modes cover different scenarios
  5. Complete Profit/Loss Management: ROI + trailing stop combo provides flexible profit protection

7.2 Limitations​

  1. Too Short Timeframe: 1-minute timeframe susceptible to market noise
  2. Parameter Sensitive: Many parameters rely on hyperopt optimization; overfitting risk
  3. Liquidity Requirement: Needs high-volume trading pairs for normal operation
  4. Lag: Dual confirmation may slightly delay entry timing
  5. Trend Dependent: Poor performance in ranging or downtrending markets

VIII. Applicable Scenarios​

  • High-volatility coins: ALT, SHIB, newly listed tokens
  • Bull or strong-trend markets: ROCR filter effectively captures trending moves
  • Markets with sufficient liquidity: High-volume pairs to avoid slippage
  • Intraday trading: Average holding ~6 hours; suitable for intraday or short-term trades
  • Low-volatility coins: Insufficient volatility to trigger buy conditions
  • Ranging markets: Trend filter misses many opportunities
  • Illiquid trading pairs: Slippage reduces actual returns
  • Around major news events: Extreme volatility may invalidate strategy

8.3 Variant Versions​

Strategy includes three optimized variants for different trading pairs:

VersionTrading PairCharacteristics
Cluc5werkGeneralBalanced parameters
Cluc5werk_ETHETH/StableMore aggressive stop-loss (-33.7%); lower target profit
Cluc5werk_BTCBTC/StableConservative parameters; stricter stop-loss (-14.5%)
Cluc5werk_USDUSD/StableSimilar to ETH version

IX. Applicable Market Environment Details​

9.1 Best Market Environments​

  1. Strong uptrend: 1-hour ROCR consistently above 0.8973
  2. High volatility: Price frequently fluctuates significantly; triggers Bollinger Band breakouts
  3. Sufficient liquidity: Good trading depth; tight bid-ask spread

9.2 Average Performance Markets​

  1. Ranging oscillation: Trend filter filters out most signals
  2. Trend reversal: Strategy designed for trend-following; may enter at tops
  3. Low volatility: Bollinger Bands narrow; difficult to trigger buy conditions

9.3 Market Environment Identification​

Recommendations for judging market environment:

  • 1-hour ROCR value: Reduce trades when below 0.85
  • Bollinger Band width: Reduce trading frequency when narrowing
  • Volume: Stay cautious when shrinking

X. Important Notes: The Cost of Complexity​

10.1 Overfitting Risk​

Cluc5werk has 6 buy parameters and 1 sell parameter, optimized through 1000 rounds of hyperopt. While backtest performance is outstanding (509% return), risks include:

  1. Historical data overfitting: Parameters may over-adapt to historical data
  2. Look-ahead bias: Some indicators (like bbdelta) may contain future information
  3. Market changes: Performance outside the optimization period may significantly decline

10.2 Parameter Stability Recommendations​

  • Use default parameters: Do not arbitrarily modify optimized parameters
  • Validate across time periods: Backtest across different time periods
  • Small-capital live testing: Sufficient paper trading before real capital

10.3 Monitoring Focus​

  1. Win rate changes: Alert when below 80%
  2. Average profit: Check market environment when persistently below 1%
  3. Signal frequency: Too few or too many signals both indicate problems

XI. Summary​

Cluc5werk is a meticulously designed short-cycle trading strategy, integrating multi-timeframe analysis, Bollinger Band pattern recognition, volume filtering, and dual confirmation mechanisms. Its core advantages are high win rate (90%+) and comprehensive risk management.

Key Features:

  • Uses 1-hour ROCR for trend filtering; avoids counter-trend trades
  • Two complementary buy modes (Bollinger Band rebound + EMA volume-shrinking pullback)
  • Dual confirmation mechanism reduces false signals
  • Flexible profit-taking (ROI + trailing stop)

Usage Recommendations:

  • Recommended for bull or strong-trend environments
  • Prioritize high-liquidity trading pairs
  • Keep parameters unchanged; avoid over-optimization
  • Monitor signal quality combined with market environment

The strategy's backtest performance is impressive, but investors should recognize the inherent risks of short-cycle strategies and conduct sufficient live testing before applying real capital.