Skip to main content

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

FeatureDescription
Entry Conditions17 independent buy signals + 5 MA offset conditions, 22 total entry logics
Exit Conditions8 basic sell signals + 12-level dynamic take-profit + multi-scenario exit logic
Protection MechanismsDip Protection (3 intensities) + Pump Protection (9 configurations) + EWO Filter
Timeframe5m primary + 1h informational
Dependenciesfreqtrade, 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 TypeDescriptionDefault Example
Dip ProtectionPrevents buying during crashes4-level thresholds (current/2/12/144 candles)
Pump ProtectionPrevents chasing post-surge3 intensities × 3 time windows (24h/36h/48h)
EWO FilterElliott Wave Oscillator filterewo_low: -20.0, ewo_high: 6.0

3.2 MA Offset Buy Conditions

The strategy additionally configures 5 MA type offset buy conditions:

MA TypeBuy OffsetCalculation
SMA0.958Simple Moving Average
EMA0.958Exponential Moving Average
TRIMA0.958Triangular Moving Average
T30.958T3 Moving Average
KAMA0.958Kaufman 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 GroupCondition NumbersCore Logic
Trend Pullback#1, #9, #10, #11Confirm major trend up, buy on pullback
BB Oversold#2, #3, #4, #5, #6, #14Breaks BB lower band, wait for rebound
EMA Deviation#5, #6, #7, #14, #15EMA12/26 negative deviation too large
Alligator#8Alligator bullish alignment
EWO Filter#12, #13, #16, #17Elliott Wave Oscillator combined
MA Offset5 additionalPrice 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

  1. Multiple Entry Opportunities: 22 entry conditions covering diverse market states
  2. Tight Protection: Dip + Pump dual protection, avoids chasing highs and selling lows
  3. Flexible Take-Profit System: 12-level dynamic take-profit adapting to different profit levels
  4. Multi-Timeframe Verification: 5m + 1h dual timeframe confirming signals
  5. Highly Optimizable: Large number of hyperparameters supporting Hyperopt optimization

⚠️ Cons

  1. Extremely High Complexity: Numerous conditions, difficult to understand each condition's role
  2. Overfitting Risk: Large number of parameters may cause "perfect" historical performance but live failure
  3. High Computational Load: Requires computing numerous indicators, hardware-demanding
  4. Long Startup Time: Requires 400 candles of historical data
  5. 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:

  1. Multi-Entry Logic: 22 entry conditions covering diverse market states, improving entry opportunities
  2. Tight Risk Control: Dip + Pump dual protection mechanism, avoids chasing highs and selling lows
  3. Flexible Take-Profit System: 12-level dynamic take-profit adjusting exit strategy based on profit level
  4. 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