PRICEFOLLOWINGX Strategy Analysis
Strategy Number: #11 (11th of 465 strategies)
Strategy Type: Multi-Protection + Heikin Ashi + Order Book Trend Following
Timeframe: 15 minutes (15m)
I. Strategy Overview
PRICEFOLLOWINGX is a complex trend-following strategy combining Heikin Ashi candles, Fisher RSI, Bollinger Bands, and Freqtrade protection mechanisms. The strategy features the use of order book data and advanced technical indicators, configured with multiple trading protection mechanisms.
Core Features
| Feature | Description |
|---|---|
| Entry Conditions | Multi-condition combination (Fisher RSI + TEMA + BB + Heikin Ashi) |
| Exit Conditions | Multi-condition combination (Fisher RSI + TEMA + EMA cross) |
| Protection | 3 protections (Max Drawdown, Stoploss Guard, Low Profit Pairs) |
| Timeframe | 15 minutes |
| Dependencies | TA-Lib, technical, numpy |
| Special Features | Protection mechanisms, order book data, Heikin Ashi |
II. Strategy Configuration Analysis
2.1 Base Risk Parameters
# ROI exit table
minimal_roi = {
"120": 0.015, # After 120 minutes: 1.5% profit
"60": 0.025, # After 60 minutes: 2.5% profit
"30": 0.03, # After 30 minutes: 3% profit
"0": 0.015, # Immediate exit: 1.5% profit
}
# Stoploss setting
stoploss = -0.10 # -10% hard stoploss
# Trailing stop
trailing_stop = True
trailing_only_offset_is_reached = True
trailing_stop_positive = 0.02 # 2% trailing activation
trailing_stop_positive_offset = 0.03 # 3% offset trigger
Design Logic:
- Time-decreasing ROI: Maximum 3% within 30 minutes, then gradually decreases
- Trailing stop: Activates 2% trailing after 3% profit, suitable for trending markets
- Protection mechanisms: 3 protection mechanisms prevent consecutive losses
2.2 Protection Mechanisms (Protections)
@property
def protections(self):
return [
{
"method": "MaxDrawdown",
"lookback_period_candles": 48,
"trade_limit": 5,
"stop_duration_candles": 5,
"max_allowed_drawdown": 0.75,
},
{
"method": "StoplossGuard",
"lookback_period_candles": 24,
"trade_limit": 3,
"stop_duration_candles": 5,
"only_per_pair": True,
},
{
"method": "LowProfitPairs",
"lookback_period_candles": 30,
"trade_limit": 2,
"stop_duration_candles": 6,
"required_profit": 0.005,
},
]
Protection Mechanism Description:
- Max Drawdown Protection: Max 75% drawdown in 5 trades within 48 candles, pauses for 5 candles after trigger
- Stoploss Guard: 3 stoplosses within 24 candles, pauses for 5 candles after trigger (per pair)
- Low Profit Pairs: 2 trades with profit below 0.5% within 30 candles, pauses for 6 candles after trigger
2.3 Hyperparameters
# Buy hyperparameters
rsi_enabled = BooleanParameter(default=True, space="buy", optimize=True)
ema_pct = DecimalParameter(0.001, 0.100, decimals=3, default=0.040, space="buy")
buy_frssi = DecimalParameter(-0.71, 0.50, decimals=2, default=-0.40, space="buy")
frsi_pct = DecimalParameter(0.01, 0.20, decimals=2, default=0.10, space="buy")
# Sell hyperparameters
ema_sell_pct = DecimalParameter(0.001, 0.020, decimals=3, default=0.003, space="sell")
sell_rsi_enabled = BooleanParameter(default=True, space="sell", optimize=True)
sell_frsi = DecimalParameter(-0.30, 0.70, decimals=2, default=0.2, space="sell")
III. Entry Conditions Details
3.1 Entry Logic (RSI Enabled)
# Entry conditions when RSI enabled
conditions = [
qtpylib.crossed_below(dataframe["frsi"], self.buy_frsi.value), # Fisher RSI crosses below threshold
dataframe["tema"] < dataframe["bb_lowerband"], # TEMA < BB lower band
qtpylib.crossed_below(dataframe["tema"], dataframe["emalow"]), # TEMA crosses below EMA low
]
Logic Analysis:
- Fisher RSI oversold: Fisher RSI crosses below threshold, confirms oversold
- BB breakout: TEMA breaks below BB lower band, price at statistical low
- EMA cross confirmation: TEMA crosses below EMA low, short-term trend confirmed
3.2 Entry Logic (RSI Disabled)
# Entry conditions when RSI disabled
conditions = [
dataframe["tema"] > dataframe["bb_middleband"], # TEMA > BB middle band
qtpylib.crossed_above(dataframe["tema"], dataframe["ema7"]), # TEMA crosses above EMA7
]
Note: When RSI disabled, uses trend-following logic, TEMA crosses above EMA7 and price above BB middle band.
IV. Exit Logic Explained
4.1 Exit Conditions (RSI Enabled)
# Exit conditions when RSI enabled
conditions = [
qtpylib.crossed_below(dataframe["frsi"], self.sell_frsi.value), # Fisher RSI crosses below threshold
dataframe["tema"] < dataframe["bb_middleband"], # TEMA < BB middle band
qtpylib.crossed_below(dataframe["tema"], dataframe["ema7"]), # TEMA crosses below EMA7
]
Logic Analysis:
- Fisher RSI overbought: Fisher RSI crosses below threshold, confirms overbought
- BB breakdown: TEMA breaks below BB middle band, trend weakening
- EMA cross confirmation: TEMA crosses below EMA7, short-term trend reversal
4.2 Exit Conditions (RSI Disabled)
# Exit conditions when RSI disabled
conditions = [
dataframe["tema"] < dataframe["bb_middleband"], # TEMA < BB middle band
qtpylib.crossed_below(dataframe["tema"], dataframe["ema7"]), # TEMA crosses below EMA7
]
Note: When RSI disabled, exits on trend weakness signals only.
V. Technical Indicator System
5.1 Core Indicators
| Indicator Category | Specific Indicator | Parameters | Purpose |
|---|---|---|---|
| Trend | TEMA | Default | Triple EMA for faster response |
| Trend | EMA | 7 period | Short-term trend |
| Volatility | Bollinger Bands | Default | Overbought/oversold bands |
| Momentum | Fisher RSI | Default | Normalized momentum |
| Candles | Heikin Ashi | Default | Smoothed candle representation |
5.2 Indicator Characteristics
| Indicator | Characteristics | Advantages |
|---|---|---|
| TEMA | Triple exponential MA | Faster response than EMA |
| Fisher RSI | Normalized RSI | More sensitive to turning points |
| Heikin Ashi | Smoothed candles | Filters noise, clearer trends |
VI. Risk Management Features
6.1 Max Drawdown Protection
{
"method": "MaxDrawdown",
"lookback_period_candles": 48,
"trade_limit": 5,
"stop_duration_candles": 5,
"max_allowed_drawdown": 0.75,
}
Purpose: Prevents consecutive large losses by pausing trading after significant drawdown.
6.2 Stoploss Guard
{
"method": "StoplossGuard",
"lookback_period_candles": 24,
"trade_limit": 3,
"stop_duration_candles": 5,
"only_per_pair": True,
}
Purpose: Prevents repeated stoplosses on same pair by imposing cooldown.
6.3 Low Profit Pairs
{
"method": "LowProfitPairs",
"lookback_period_candles": 30,
"trade_limit": 2,
"stop_duration_candles": 6,
"required_profit": 0.005,
}
Purpose: Avoids inefficient trading on pairs that consistently produce low profits.
VII. Strategy Pros & Cons
✅ Advantages
- Multiple protections: 3 protection mechanisms prevent various loss scenarios
- Flexible RSI: Can enable/disable RSI for different market conditions
- Advanced indicators: TEMA + Fisher RSI + Heikin Ashi for better signals
- Order book data: Uses real-time order book for execution optimization
- Hyperparameter support: Key parameters can be optimized via Hyperopt
⚠️ Limitations
- High complexity: Multiple indicators and protections, difficult to debug
- No BTC correlation: Doesn't detect Bitcoin market trend
- Parameter sensitivity: Hyperparameters may overfit historical data
- Computation load: Multiple indicators increase computational burden
- 15m timeframe: Less responsive than 5m strategies
VIII. Applicable Scenarios
| Market Environment | Recommended Configuration | Note |
|---|---|---|
| Ranging market | RSI enabled mode | Fisher RSI works well in ranging |
| Uptrend | RSI disabled mode | Trend-following excels in trends |
| Downtrend | Pause or light position | Protections will trigger frequently |
| High volatility | Default configuration | Protections handle volatility well |
| Low volatility | Adjust ROI | May need lower ROI thresholds |
IX. Applicable Market Environments Explained
PRICEFOLLOWINGX is a trend-following strategy based on the core philosophy of "protection first + flexible signals".
9.1 Strategy Core Logic
- Dual mode entry: RSI-enabled for mean reversion, RSI-disabled for trend following
- Multiple protections: 3 protection mechanisms prevent various loss scenarios
- Advanced indicators: TEMA + Fisher RSI + Heikin Ashi for better signal quality
9.2 Performance in Different Market Environments
| Market Type | Performance Rating | Reason Analysis |
|---|---|---|
| 📈 Slow bull/ranging up | ★★★★☆ | Trend-following + protections work well |
| 🔄 Wide ranging | ★★★★☆ | RSI mode suitable for ranging |
| 📉 Single-sided crash | ★★★☆☆ | Protections limit losses but may trigger often |
| ⚡️ Extreme sideways | ★★★☆☆ | 15m timeframe may have fewer signals |
9.3 Key Configuration Recommendations
| Configuration | Recommended Value | Note |
|---|---|---|
| Number of pairs | 15-30 | Moderate signal frequency |
| Max positions | 3-5 | Control risk |
| Position mode | Fixed position | Recommended fixed position |
| Timeframe | 15m | Mandatory requirement |
X. Important Note: Protection Mechanism Complexity
10.1 Moderate to High Learning Curve
Strategy code is about 200+ lines, requires understanding:
- Multiple technical indicators and their interactions
- Protection mechanism configuration and behavior
- Hyperparameter optimization process
10.2 Moderate Hardware Requirements
Multiple indicators and protections increase computation:
| Number of Pairs | Minimum RAM | Recommended RAM |
|---|---|---|
| 15-30 pairs | 1GB | 2GB |
| 30-60 pairs | 2GB | 4GB |
10.3 Protection Mechanism Behavior
Three protections work together:
- Max Drawdown: Global protection across all pairs
- Stoploss Guard: Per-pair protection
- Low Profit Pairs: Efficiency-based protection
10.4 Manual Trader Recommendations
Manual traders can reference this strategy's protection approach:
- Set personal loss limits (like Max Drawdown)
- Avoid revenge trading after stoplosses (like Stoploss Guard)
- Move on from consistently low-profit pairs (like Low Profit Pairs)
XI. Summary
PRICEFOLLOWINGX is a well-designed trend-following strategy with comprehensive protections. Its core value lies in:
- Multiple protections: 3 protection mechanisms prevent various loss scenarios
- Flexible RSI: Can enable/disable RSI for different market conditions
- Advanced indicators: TEMA + Fisher RSI + Heikin Ashi for better signals
- Order book data: Uses real-time order book for execution optimization
- Hyperparameter support: Key parameters can be optimized via Hyperopt
For quantitative traders, this is an excellent protected trend-following strategy template. Recommendations:
- Use as an advanced case for learning protection mechanisms
- Understand dual-mode entry logic (RSI enabled/disabled)
- Can adjust protection parameters based on risk tolerance
- Note hyperparameters may overfit, test thoroughly before live trading