NFI46Offset Strategy Analysis
Strategy ID: #264 (264th of 465 strategies)
Strategy Type: Multi-condition Trend Following + Multi-layer Protection + Dynamic Take-Profit
Timeframe: 5 Minutes (5m) + 1 Hour (1h) Informational Layer
I. Strategy Overview
NFI46Offset is a member of the NostalgiaForInfinity series strategy, inheriting the series' consistent style of "rich conditions, tight protection." It is a typical multi-signal resonance strategy that constructs entry logic through a large number of independent buy conditions, paired with multi-tiered exit mechanisms to lock in profits.
Core Features
| Feature | Description |
|---|---|
| Entry Conditions | 17 independent buy signals + 5 MA offset conditions, 22 total entry logics |
| Exit Conditions | 8 basic sell signals + 12-level dynamic take-profit + multi-scenario exit logic |
| Protection Mechanisms | Dip Protection (3 intensities) + Pump Protection (9 configurations) + EWO Filter |
| Timeframe | 5m primary + 1h informational |
| Dependencies | freqtrade, talib, numpy, pandas, qtpylib |
II. Strategy Configuration Analysis
2.1 Basic Risk Parameters
# ROI Exit Table
minimal_roi = {
"0": 0.013, # Triggers at 1.3% profit
}
# Stop Loss
stoploss = -0.10 # 10% fixed stop loss
Design Philosophy:
- ROI is relatively loose (1.3%), the strategy primarily relies on dynamic take-profit and sell signal exits
- 10% stop loss as the final defense line, actual exits more dependent on trailing stop and custom sell logic
2.2 Trailing Stop Configuration
trailing_stop = True
trailing_only_offset_is_reached = True
trailing_stop_positive = 0.01 # 1% trailing distance
trailing_stop_positive_offset = 0.03 # 3% trigger threshold
III. Entry Conditions Details
3.1 Protection Mechanisms
Each entry condition is equipped with independent protection parameter groups:
| Protection Type | Description | Default Example |
|---|---|---|
| Dip Protection | Prevents buying during crashes | 4-level thresholds (current/2/12/144 candles) |
| Pump Protection | Prevents chasing post-surge | 3 intensities × 3 time windows (24h/36h/48h) |
| EWO Filter | Elliott Wave Oscillator filter | ewo_low: -20.0, ewo_high: 6.0 |
3.2 MA Offset Buy Conditions
The strategy additionally configures 5 MA type offset buy conditions:
| MA Type | Buy Offset | Calculation |
|---|---|---|
| SMA | 0.958 | Simple Moving Average |
| EMA | 0.958 | Exponential Moving Average |
| TRIMA | 0.958 | Triangular Moving Average |
| T3 | 0.958 | T3 Moving Average |
| KAMA | 0.958 | Kaufman Adaptive Moving Average |
Logic: Price is below MA × offset coefficient, AND EWO is in extreme zone (< -20 or > 6)
3.3 Classification of 22 Entry Conditions
| Condition Group | Condition Numbers | Core Logic |
|---|---|---|
| Trend Pullback | #1, #9, #10, #11 | Confirm major trend up, buy on pullback |
| BB Oversold | #2, #3, #4, #5, #6, #14 | Breaks BB lower band, wait for rebound |
| EMA Deviation | #5, #6, #7, #14, #15 | EMA12/26 negative deviation too large |
| Alligator | #8 | Alligator bullish alignment |
| EWO Filter | #12, #13, #16, #17 | Elliott Wave Oscillator combined |
| MA Offset | 5 additional | Price below MA by some offset percentage |
IV. Exit Conditions Details
4.1 Multi-Level Take-Profit System
The strategy employs a 12-level dynamic take-profit mechanism:
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
8% - 9% < 54 signal_profit_7
7% - 8% < 49 signal_profit_6
6% - 7% < 44 signal_profit_5
5% - 6% < 43 signal_profit_4
4% - 5% < 42 signal_profit_3
3% - 4% < 38 signal_profit_2
2% - 3% < 34 signal_profit_1
1% - 2% < 33 signal_profit_0
4.2 Basic Sell Signals (8)
# Sell Signal 1: RSI + BB Upper Band Continuous Breakout
- RSI > 79.5
- 6 consecutive candles close > BB upper band
# Sell Signal 2: RSI + BB Upper Band Short Breakout
- RSI > 81
- 3 consecutive candles close > BB upper band
# Sell Signal 3: Pure RSI Overbought
- RSI > 82
# Sell Signal 4: Dual Timeframe RSI Overbought
- RSI_5m > 73.4
- RSI_1h > 79.6
# Sell Signal 6: Below EMA200 RSI Overbought
- close < EMA200
- close > EMA50
- RSI > 79
# Sell Signal 7: 1h RSI + EMA Death Cross
- RSI_1h > 81.7
- EMA12 crosses below EMA26
# Sell Signal 8: BB Upper Band Deviation
- close > BB upper band_1h × 1.1
V. Risk Management Highlights
5.1 Dip Protection Mechanism
Three intensity configurations:
safe_dips_normal # Standard protection
safe_dips_strict # Strict protection (more conservative)
safe_dips_loose # Loose protection (more aggressive)
5.2 Pump Protection Mechanism
safe_pump = (range_increase < threshold) | (pullback_sufficient)
VI. Strategy Pros & Cons
✅ Pros
- Multiple Entry Opportunities: 22 entry conditions covering diverse market states
- Tight Protection: Dip + Pump dual protection, avoids chasing highs and selling lows
- Flexible Take-Profit System: 12-level dynamic take-profit adapting to different profit levels
- Multi-Timeframe Verification: 5m + 1h dual timeframe confirming signals
- Highly Optimizable: Large number of hyperparameters supporting Hyperopt optimization
⚠️ Cons
- Extremely High Complexity: Numerous conditions, difficult to understand each condition's role
- Overfitting Risk: Large number of parameters may cause "perfect" historical performance but live failure
- High Computational Load: Requires computing numerous indicators, hardware-demanding
- Long Startup Time: Requires 400 candles of historical data
- Complex Configuration: Newcomers find it difficult to correctly configure all parameters
VII. Summary
NFI46Offset is a multi-signal resonance strategy with extremely rich conditions. Its core value lies in:
- Multi-Entry Logic: 22 entry conditions covering diverse market states, improving entry opportunities
- Tight Risk Control: Dip + Pump dual protection mechanism, avoids chasing highs and selling lows
- Flexible Take-Profit System: 12-level dynamic take-profit adjusting exit strategy based on profit level
- Dual Timeframe Verification: 5m + 1h confirming signals, improving reliability
For quantitative traders, this is a strategy worthy of deep research. However, note:
- Do not blindly use default parameters
- Ensure sufficient backtesting validation
- Test with small positions before scaling up
- Understand each condition's role before enabling