Skip to main content

Strategy005: The All-Purpose Parameter Tweaker

Nickname: The Parameter Tuning Master
Job: Customizable trend pullback catcher
Timeframe: 5 minutes


I. What's This Strategy About?

Simply put, Strategy005 is:

  • Uses every indicator: MACD, RSI, Fisher, SAR, Stochastic...
  • Every parameter is tweakable: how to buy, how to sell, all optimizable
  • Two sell modes to choose from: conservative or aggressive
  • Has an oddly named indicator: Fisher RSI Transform

Like a Swiss Army knife, fully equipped, and customizable to your preferences 🛠️


II. Core Configuration: In Plain English - "I Want Everything"

Take-Profit Rules (ROI Table)

Holding 24+ hours → Take 1% profit and run
Holding 80 min - 24 hours → Take 2% profit and run
Holding 40-80 minutes → Take 3% profit and run
Holding 20-40 minutes → Take 4% profit and run
Opens and jumps immediately → Take 5% profit and run

Translation: Added a 24-hour take-profit compared to Strategy004 - meaning "if you can hold for a day, 1% is fine too."

Stop Loss Rules

Fixed stop loss: -10%
Trailing stop: Activates after 2% profit, triggers on 1% pullback

Translation: Same as Strategy004, gives plenty of error room, protects profits once made.


III. Buy Conditions: Seven Gates, Difficulty Adjustable

This strategy has seven gates for buying, and the difficulty of each gate can be adjusted:

🎯 Gate 1: Price Filter

dataframe['close'] > 0.00000200

Plain English:

"Close price must exceed 0.00000200, not touching super cheap coins."

💧 Gate 2: Volume Surge (Adjustable Parameter)

dataframe['volume'] > dataframe['volume'].rolling(buy_volumeAVG).mean() * 4
# buy_volumeAVG defaults to 150, adjustable range 50-300

Plain English:

"Volume must be 4x or more of average! Default looks at 150 candles average, but you can adjust between 50 and 300. What we want - 'This coin suddenly got active!'"

📉 Gate 3: Price Below Moving Average

dataframe['close'] < dataframe['sma']  # SMA40

Plain English:

"Price must be below 40-period moving average, meaning at relative low position. Wait for pullback to enter, don't chase highs!"

🔀 Gate 4: Stochastic Golden Cross

dataframe['fastd'] > dataframe['fastk']

Plain English:

"D line jumped above K line? Golden cross confirmed!"

📊 Gate 5: RSI Confirmation (Adjustable Parameter)

dataframe['rsi'] > buy_rsi  # Default 26, adjustable range 1-100

Plain English:

"RSI must be above some value (default 26). This isn't looking for oversold, it's confirming rebound momentum exists - 'RSI shouldn't be too low, needs some energy.'"

🎲 Gate 6: FastD Threshold (Adjustable Parameter)

dataframe['fastd'] > buy_fastd  # Default 1, adjustable range 1-100

Plain English:

"FastD must be above some value (default 1, basically no restriction). This parameter is too loose, might get raised during backtest optimization."

🐟 Gate 7: Fisher RSI Normalized (Adjustable Parameter)

dataframe['fisher_rsi_norma'] < buy_fishRsiNorma  # Default 5, adjustable range 1-100

Plain English:

"What is this? Fisher RSI normalized, it's just a mathematical transformation of RSI. Must be below some value (default 5), indicating oversold. Sounds fancy, it's just another way to look at oversold."


IV. Sell Logic: Two Modes to Choose From

4.1 Mode 1: Conservative (rsi-macd-minusdi, Default)

# All three conditions must be met to sell
(RSI crosses above 74) & (MACD < 0) & (Minus DI > 4)

Plain English:

"Sell conditions:

  1. RSI breaks above 74 - overbought
  2. MACD is still negative - insufficient upside momentum
  3. Negative directional indicator above 4 - downside momentum starting to increase

All three conditions must be met to exit? That's pretty conservative!"

4.2 Mode 2: Aggressive (sar-fisherRsi)

# Only two conditions needed to sell
(SAR above price) & (Fisher RSI > 30)

Plain English:

"Sell conditions:

  1. Parabolic SAR jumped above price - trend reversal signal
  2. Fisher RSI above 30 - overbought confirmed

Just two conditions and you're out, faster reaction than Mode 1!"

4.3 Mode Comparison

ModeCondition CountResponse SpeedApplicable Scenario
Conservative3SlowBull market, don't want to sell too early
Aggressive2FastRanging market, take profits while you can

V. This Strategy's "Personality"

✅ Pros (Praise Time)

  1. All Parameters Tweakable: How to buy, how to sell, all parameters can be optimized
  2. Two Sell Modes: Conservative or aggressive, you choose
  3. Multi-indicator Confirmation: MACD, RSI, Fisher, SAR... multiple verifications
  4. Volume Surge Filter: 4x average volume, ensures market is active
  5. Fisher Transform: Advanced version of RSI, smoother signals

⚠️ Cons (Roast Time)

  1. Too Many Indicators: MACD, RSI, Fisher, SAR, Stochastic, SMA... makes you dizzy
  2. Parameter Overfitting Risk: Optimizing too hard might just be memorizing historical answers
  3. Too Strict Conditions: All seven conditions must be met to enter
  4. Volume Surge Hard to Trigger: 4x average volume, not every pullback has it
  5. SAR Jumps Around in Ranging Markets: Parabolic indicator keeps reversing during sideways

VI. Applicable Scenarios: When to Use It?

Market EnvironmentRecommendationReason
📈 Bull Market Pullback⭐⭐⭐⭐⭐ Strongly recommendedBuy when price below SMA40, perfect!
🔄 Ranging Market⭐⭐☆☆☆ Not recommendedSAR and volume surge both don't work well
📉 Bear Market⭐⭐☆☆☆ Don't usePrice keeps below SMA, but no rebound
⚡ High Volatility⭐⭐⭐⭐☆ Can tryVolume surge easily triggered

VII. Summary: How's This Strategy Really?

One-Line Review

"A multi-indicator strategy that needs parameter tuning to be effective, don't use it without optimization."

Who Should Use It?

  • ✅ People who know Hyperopt
  • ✅ Those with time for backtest optimization
  • ✅ Those who like multi-indicator confirmation
  • ✅ Those who can handle complex logic

Who Shouldn't Use It?

  • ❌ Those too lazy to tune parameters
  • ❌ Those who just want to "set and forget"
  • ❌ Those seeking simple strategies
  • ❌ Those with insufficient computing power (optimization takes time)

My Recommendations

  1. Use Hyperopt first: Without optimization you're just blindly running it
  2. Choose sell mode wisely: Based on backtest results, pick conservative or aggressive
  3. Tune parameters per coin: Different coins have different optimal parameters
  4. Don't use defaults: Those are just examples, not optimal

VIII. What Markets Can This Strategy Make Money In?

8.1 Core Logic: Low Position + Volume Surge + Multi-Indicator Confirmation

Strategy005 is a parameterized customizable pullback strategy. Its profit philosophy:

"Wait for price to pull back below the moving average, volume suddenly surges, multiple indicators all say 'buy', then buy. When selling, either conservatively wait for triple confirmation, or aggressively watch SAR reversal."

  • SMA40 Filter: Only buy at relative low positions
  • 4x Volume: Ensures popularity, not a dead coin
  • Multi-indicator Resonance: RSI + FastD + Fisher triple confirmation
  • Dual Sell Modes: Conservative or aggressive, you choose

8.2 Performance in Different Markets (Plain English Version)

Market TypePerformance RatingPlain English Explanation
📈 Bull Market Pullback⭐⭐⭐⭐⭐Price below SMA40 + volume surge = perfect entry!
🔄 Ranging Market⭐⭐☆☆☆SAR jumps around, volume surge doesn't mean it'll go up
📉 Bear Market⭐⭐☆☆☆Price keeps below SMA, volume surge might be dumping
⚡ High Volatility⭐⭐⭐⭐☆Volume surge easily triggered, but stop loss might get hit

One-line Summary: Optimize parameters well, use in bull market pullbacks, best results.


IX. Want to Run This Strategy? Check These Configurations First

9.1 Trading Pair Configuration

Configuration ItemRecommended ValueComment
Number of pairs5-15Each pair needs optimization, too many can't handle
Coin selectionMajor coinsVolume surge triggers needed, don't run dead coins
Timeframe5-minute defaultCan try 15 minutes to reduce noise

9.2 Key Config File Settings

# config.json key configurations
"max_open_trades": 3, # Max 3 simultaneous trades
"stake_currency": "USDT", # Use USDT as base
"stake_amount": "unlimited", # Each trade uses 1/N of total funds
"dry_run": true, # Run simulation first!

9.3 Hyperopt Optimization Commands

# Optimize buy parameters (recommend 300+ epochs)
freqtrade hyperopt --hyperopt-loss SharpeHyperOptLoss --strategy Strategy005 --spaces buy --epochs 500

# Optimize sell parameters
freqtrade hyperopt --hyperopt-loss SharpeHyperOptLoss --strategy Strategy005 --spaces sell --epochs 500

# Optimize both buy and sell
freqtrade hyperopt --hyperopt-loss SharpeHyperOptLoss --strategy Strategy005 --spaces buy sell --epochs 1000

9.4 Hardware Requirements (Important!)

Trading PairsMinimum MemoryRecommended MemoryOptimization Time Estimate
1-5 pairs4GB8GBA few hours
5-15 pairs8GB16GBHalf a day to a day
15+ pairs16GB32GBMore than a day

Warning: This strategy has many indicators, Hyperopt optimization really eats resources 😅

9.5 Backtest vs Live Trading

Backtests Look Great: Optimized parameters look perfect on historical data

Live Trading Has Pitfalls:

  • Optimized parameters may overfit, just memorizing historical answers
  • Volume surge in live trading might not be as stable as backtests
  • Fisher RSI transform might give distorted values in extreme markets
  • Limit orders might not fill in fast markets

Recommended Process:

  1. Backtest + Hyperopt optimization (at least 500 epochs)
  2. Validate optimization results with out-of-sample data
  3. Run paper trading for at least two weeks
  4. Small capital live test
  5. Continuously observe and adjust

Don't go all-in right away, no matter how good the optimization, you still need to watch what the market thinks!


X. Bonus: The Strategy Author's "Little Secrets"

Look carefully at the code, you'll find some interesting things:

  1. The Mathematical Beauty of Fisher Transform:

    rsi = 0.1 * (dataframe['rsi'] - 50)
    fisher_rsi = (exp(2*rsi) - 1) / (exp(2*rsi) + 1)

    "This formula looks complex, but it's just a nonlinear transformation of RSI, making extreme values more obvious. Mathematician's romance 💕"

  2. Dual Trigger Selection:

    sell_trigger = CategoricalParameter(["rsi-macd-minusdi", "sar-fisherRsi"])

    "Don't know which sell is better? Just write both, let backtesting tell you!"

  3. 4x Volume Requirement:

    volume > volume.rolling(150).mean() * 4

    "4x, not 3x or 5x. Why 4? Probably the best value found through testing."

  4. Interesting Default Parameters:

    • buy_fastd = 1 (basically no restriction)
    • sell_rsi = 74 (close to overbought but not quite overbought)

    "These defaults might be intentionally loose, letting you optimize them."


XI. Final Words

One-Line Review

"A multi-indicator strategy that needs tuning, powerful when optimized well, useless without optimization."

Who Should Use It?

  • ✅ Those with Hyperopt experience
  • ✅ Those willing to spend time optimizing
  • ✅ Those who like multi-indicator confirmation
  • ✅ Those seeking customization

Who Shouldn't Use It?

  • ❌ Those too lazy to tune parameters
  • ❌ Those who just want simple settings
  • ❌ Those without time for backtesting
  • ❌ Those with insufficient computing power

Manual Trader Recommendations

If you want to manually execute this strategy's logic:

  1. Wait for price below 40-period SMA
  2. Confirm volume surge to 4x average volume
  3. Check if RSI is above your set threshold (like 26)
  4. Check if Stochastic has golden cross
  5. Check if Fisher RSI normalized is below your set threshold
  6. All met? Enter!
  7. When selling, choose conservative triple confirmation or aggressive SAR reversal

XII. ⚠️ Risk Emphasis Again (Must Read)

Backtests Look Great, Live Trading Needs Caution

Strategy005 supports Hyperopt optimization, which has a huge pitfall:

Optimizing parameters is just "memorizing answers."

The better you optimize, the more the parameters fit historical data. But history doesn't simply repeat, overfitted parameters might fail badly on new data.

Simply put: Backtest performance like a stock god, live trading loses like a dog.

Hidden Risks of Complex Strategies

In live trading, complex logic can lead to:

  • Parameter Overfitting: Optimize 1000 epochs, parameters all "memorizing answers"
  • Few Signals: All seven conditions hard to satisfy together, might go a day without signals
  • Abnormal Volume: 4x average volume might suddenly appear and disappear in certain periods
  • Fisher Transform Distortion: Might give strange signals in extreme markets

My Recommendations (From the Heart)

1. Use out-of-sample validation when optimizing, don't just look at training set
2. Don't optimize too many epochs, 500-1000 is enough
3. Optimize each coin separately, don't use universal parameters
4. Paper trade test for at least a month
5. Live trade with small capital first, observe if parameters still work
6. Re-optimize periodically, market changes so parameters need to change too

Remember: Strategies that can be optimized might also optimize into nothing. Light position testing, survival is most important! 🙏