NostalgiaForInfinityV5MultiOffsetAndHO2 — Strategy Analysis
I. Strategy Overview
NostalgiaForInfinityV5MultiOffsetAndHO2 is a multi-condition quantitative trading strategy for the Freqtrade platform, designed by iterativ. The strategy's name reflects its core philosophy: inheriting classic technical analysis methods while pursuing infinite possibilities. This strategy synthesizes the NostalgiaForInfinity V5 series with the MultiOffsetLamboV0 system, representing an advanced evolution in the NFI strategy family.
1.1 Design Philosophy
The strategy follows the principle of "Multi-layer Protection, Multi-source Signals, Dynamic Adaptation". Rather than relying on a single indicator or condition, it constructs a complete signal ecosystem that verifies trade opportunity validity across multiple dimensions. This design embodies the "redundant verification" concept in modern quantitative trading—using cross-validation from multiple independent signal sources to reduce misjudgment risk.
The strategy employs a modular condition design, organically combining 26 independent buy conditions and 8 sell conditions. Each condition has its own independent switch control, enabling flexible strategy behavior adjustment based on market conditions.
1.2 Timeframe Configuration
| Timeframe | Role | Description |
|---|---|---|
| 5 minutes | Main timeframe | Entry/exit signal generation |
| 1 hour | Informative timeframe | Trend confirmation, protection checks |
1.3 Recommended Configuration
| Parameter | Recommended Value | Notes |
|---|---|---|
| Trading pairs | 40–80 | Volume-sorted whitelist |
| Max open trades | 4–6 | Concurrent positions |
| Stake amount | Unlimited | Auto-allocate by Freqtrade |
| Quote currency | USDT/BUSD | Avoid BTC/ETH-denominated pairs |
| Blacklist | *BULL, *BEAR, *UP, *DOWN | Leveraged tokens prohibited |
| Timeframe | 5 minutes | Mandatory |
II. Strategy Configuration Analysis
2.1 Risk Parameters
# ROI Exit Table
minimal_roi = {
"0": 0.10, # Immediate: 10% profit
"30": 0.05, # After 30 min: 5% profit
"60": 0.02, # After 60 min: 2% profit
}
# Stop Loss
stoploss = -0.10 # 10% fixed stop loss
# Trailing Stop
trailing_stop = True
trailing_only_offset_is_reached = True
trailing_stop_positive = 0.01 # 1% trailing distance
trailing_stop_positive_offset = 0.03 # Activates after 3% profit
2.2 Design Rationale
- ROI Table: Uses progressively lower profit targets as holding time increases, preventing greed-driven profit giveback
- Stoploss: 10% is a relatively wide stop, reflecting recognition of crypto market volatility
- Trailing Stop: Activates only after 3% profit is achieved, protecting gains while leaving room for the trend to develop
III. Entry Conditions Details
3.1 Buy Condition Architecture
The strategy defines 26 independent buy conditions, each with its own independent enable/disable switch. This "signal combination" approach uses a voting mechanism from multiple independent signal sources to improve signal quality.
Each buy condition follows a "protection conditions + logic conditions" pattern:
- Protection Conditions: Ensure the trade occurs in a safe market environment
- Logic Conditions: Define the specific entry trigger moment
3.2 Protection Conditions Explained
EMA Fast/Slow Protection: Checks whether the short-period EMA is above the long-period EMA. Default: EMA26 > EMA100. Purpose: Ensure entries only occur in uptrends.
Close Price Position Protection: Checks whether the close price is above a specific EMA. Two variants:
close_above_ema_fast: Close above fast EMA (5m timeframe)close_above_ema_slow: Close above slow EMA (1h timeframe)
SMA200 Trend Protection: Checks whether SMA200 is rising. The strategy compares the current SMA200 value with its value N candles ago to determine trend direction. Default lookback: 36 candles (~3 hours). Also supports SMA200 trend verification on the 1h timeframe.
Safe Dips Protection: An innovative pullback protection mechanism preventing entries immediately after significant price drops. Three strictness levels are provided (strict/normal/loose):
| Level | Current Candle | 2 Candles | 12 Candles | 144 Candles |
|---|---|---|---|---|
| Normal | < 2% | < 14% | < 32% | < 50% |
| Strict | < 1.5% | < 10% | < 24% | < 42% |
| Loose | < 2.6% | < 24% | < 42% | < 80% |
Safe Pump Protection: Prevents buying at the top after a rapid price surge. Checks price volatility within the past 24/36/48 hours, combined with pullback depth to determine entry safety. Three strictness levels are provided.
3.3 Key Buy Conditions
Buy Condition 1 (Main Signal):
- 36-candle minimum price rise from low > 2.2%
- 1h RSI in the 30–84 range
- 5m RSI < 36
- MFI < 36
- Multiple protection conditions enabled
Core logic: Seeking short-term pullback opportunities within an uptrend, using RSI and MFI oversold confirmation to locate entry points.
Buy Condition 3 (Bollinger Band Mean Reversion):
- Price below lower Bollinger Band
- Bollinger Band width sufficient (bbdelta > close × 5.7%)
- Close price change sufficient (closedelta > close × 2.3%)
- Short lower wick (tail < bbdelta × 41.8%)
- Close price near or below previous candle's close
Core logic: Capturing "false breakouts" or "overextensions" at the lower Bollinger Band, anticipating mean reversion.
Buy Condition 8 (Bottom Reversal):
- RSI < 20 (extreme oversold)
- Volume > 2× previous candle
- Close > Open (bullish candle)
- Long lower wick (> certain proportion of body)
Core logic: Identifying "volume-confirmed reversal" patterns with buying pressure appearing after extreme oversold conditions.
Buy Condition 24 (Trend Conversion):
- 1h EMA12 crosses above EMA35 (golden cross)
- 1h CMF shifts from negative to positive (fund flow reversal)
- 5m RSI < 60, 1h RSI > 66.9
- SMA200 rising trend protection enabled
Core logic: Capturing mid-to-long-term trend conversion moments, with dual confirmation from EMA golden cross and CMF positive shift.
IV. Exit Conditions Details
4.1 Exit Condition Architecture
The strategy uses 8 base sell conditions plus a dynamic profit-taking system implemented through the custom_sell function. The sell system follows the principle of "taking profits when available, tracking profits dynamically."
4.2 Technical Sell Conditions
Sell Conditions 1–2: Bollinger Upper Band Breakout Sell. Triggers when price is above the Bollinger upper band for multiple candles with RSI above threshold (79.5 or 81).
Sell Condition 3: Pure RSI Overbought. Triggers immediately when RSI > 82, regardless of other conditions.
Sell Condition 4: Dual Timeframe RSI Verification. Requires 5m RSI > 73.4 AND 1h RSI > 79.6. Cross-timeframe verification improves signal reliability.
Sell Condition 6: RSI Overbought Below EMA. When price is below EMA200 but above EMA50, triggers sell if RSI > 79. Handles "rebound sell" scenarios in downtrends.
Sell Condition 7: EMA Death Cross with RSI. Triggers when 1h RSI > 81.7 AND EMA12 crosses below EMA26. Captures trend reversal points.
Sell Condition 8: Extreme Bollinger Band Breakout. Triggers when close price exceeds 1h Bollinger upper band by 1.1×. A rapid profit-taking mechanism.
4.3 Custom Sell Dynamic Profit-Taking System
The custom_sell function implements a sophisticated multi-level profit-taking system, arguably the strategy's most distinctive design feature.
Standard Multi-level Profit-Taking: The system defines 12 profit tiers, each corresponding to different RSI thresholds:
| Profit Range | RSI Threshold | Signal Name |
|---|---|---|
| > 20% | < 34 | signal_profit_11 |
| 12%–20% | < 42 | signal_profit_10 |
| 10%–12% | < 50 | signal_profit_9 |
| 9%–10% | < 54 | signal_profit_8 |
| 5%–6% | < 43 | signal_profit_5 |
| ... | ... | ... |
| 1%–2% | < 34 | signal_profit_1 |
| 0%–1% | < 34 | signal_profit_0 |
Design Logic: Higher profits warrant more patience for better exit timing (lower RSI threshold required); lower profits require quicker exits (RSI overbought signals immediate exit).
Special Handling Below EMA200: When the close price is below EMA200, the system uses an independent profit-RSI combination set. Since being below the main moving average implies a potentially weaker overall trend, more aggressive profit-taking is applied.
Pump State Special Handling: The system detects significant price volatility within the past 24/36/48 hours to identify "pumped" states. For trading pairs in a pumped state, dedicated profit-taking parameters are used—typically more aggressive, since pumped prices tend to be volatile.
Trailing Stop: Three trailing stop modes are implemented, combining highest profit and current profit drawdown with RSI state to determine exit timing.
V. Risk Management
5.1 Static Stop Loss
The strategy sets a -10% fixed stop loss. This relatively wide stop reflects the strategy's recognition of crypto market volatility. The strategy believes that short-term 10% drawdowns are common in crypto and should not trigger premature exit.
5.2 Dynamic Trailing Stop
| Parameter | Value | Description |
|---|---|---|
| trailing_stop | True | Enable trailing stop |
| trailing_stop_positive | 0.01 | 1% positive trailing |
| trailing_stop_positive_offset | 0.03 | Activates after 3% profit |
| trailing_only_offset_is_reached | True | Only activate after threshold reached |
5.3 ROI Settings
The ROI table is designed with relatively wide margins, serving as a last line of defense. In actual trading, the custom_sell mechanism typically triggers exits at more appropriate timing.
5.4 Protection Mechanisms
Safe Dips: Ensures the strategy does not "catch a falling knife" after significant price drops. The strategy checks pullback magnitudes across multiple time periods, only allowing entries when pullbacks are manageable. This effectively avoids the risk of premature entries during market panic selloffs.
Safe Pump: Ensures the strategy does not chase at the top after rapid price increases. The strategy checks volatility amplitudes over the past 24/36/48 hours. If volatility is excessive, it requires sufficient price pullback before allowing entries. This effectively avoids the risk of "chasing and getting trapped at the top."
VI. Multi-Timeframe Coordination
6.1 5-Minute and 1-Hour Coordination
1-Hour Timeframe
├── Trend Direction Confirmation
│ ├── EMA50 > EMA200
│ ├── SMA200 Uptrend
│ └── EMA100 > EMA200
├── Pump Protection
│ ├── safe_pump_24_1h
│ ├── safe_pump_36_1h
│ └── safe_pump_48_1h
└── RSI Confirmation
└── rsi_1h range filtering
5-Minute Timeframe
├── Precise Entry Points
│ ├── Bollinger Band Position
│ ├── MA Offset Price
│ └── RSI Oversold Confirmation
└── Precise Exit Points
├── RSI Overbought
├── Upper Bollinger Band
└── MA Offset Sell
6.2 Timeframe Coordination Example — Buy Condition #1
- 1-hour: EMA50 > EMA200 (confirms major uptrend)
- 1-hour: safe_pump_24 (confirms no recent pump)
- 5-minute: safe_dips_strict (confirms no excessive dip)
- 5-minute: RSI < 36 (confirms short-term oversold)
- 5-minute: MFI < 26 (confirms fund outflow bottoming)
VII. Strategy Pros & Cons
✅ Advantages
- Diverse Entry Opportunities: 26 buy conditions cover various market environments
- Comprehensive Protection: Dual insurance of dip protection and pump protection
- Multi-Timeframe Verification: 1-hour trend confirmation + 5-minute precise entry
- Multi-Offset MA System: Five MA types provide diversified reference
- Gradient Profit-Taking: More aggressive profit locking as returns increase
⚠️ Limitations
- High Complexity: 26 buy conditions are difficult to individually optimize
- High Computation Load: Requires 300 candles of startup data
- Numerous Parameters: Large hyperparameter optimization space but high overfitting risk
- Relies on Multiple Conditions: May miss fast-moving markets
VIII. Applicable Scenarios
| Market Environment | Recommended Configuration | Notes |
|---|---|---|
| Uptrend | All conditions enabled | Leverage all buy opportunities |
| Oscillating upward | Selectively enable | Focus on EWO and RSI conditions |
| Oscillating market | Reduce conditions | Use strict protection |
| Downtrend | Use with caution | Only use extreme RSI conditions |
IX. Parameter Optimization
9.1 Trading Pair Configuration
# Recommended configuration
pair_count: 40-80
stake_amount: unlimited
max_open_trades: 4-6
9.2 Blacklist Recommendations
# Avoid leveraged tokens
exchange:
pair_blacklist:
- "*BULL*"
- "*BEAR*"
- "*UP*"
- "*DOWN*"
9.3 Key Configuration
timeframe: 5m
use_sell_signal: true
sell_profit_only: false
ignore_roi_if_buy_signal: true
X. Summary
NostalgiaForInfinityV5MultiOffsetAndHO2 is a "fully armed" quantitative trading strategy. Its core value lies in:
- Comprehensive Coverage: 26 buy conditions cover all market environments
- Multi-Layer Protection: Triple insurance of dip protection, pump protection, and trailing stop
- Multi-Dimensional Confirmation: Multi-timeframe, multi-indicator, multi-MA system
- Flexible Profit-Taking: Gradient profit-taking, trailing profit-taking, signal profit-taking
For experienced quantitative traders, this is a strategy framework worth in-depth research and optimization. However, attention must be paid to:
- Maintenance costs from high complexity
- Overfitting risks from excessive parameters
- Need for targeted adjustments across different market environments
The strategy originates from the NostalgiaForInfinity V5 series, integrating the MultiOffsetLamboV0 system. Thanks to original strategy author iterativ for the contribution.