Saturn5 Strategy In-Depth Analysis
Strategy ID: #373 (373rd of 465 strategies) Strategy Type: Multi-Condition Trend Following + Multiple Protection Mechanisms Timeframe: 15 Minutes (15m)
I. Strategy Overview
Saturn5 is a multi-condition trend following strategy developed by Shane Jones, integrating EMA multi-period analysis, Bollinger Bands channels, Fibonacci ATR, and Volume-Weighted MACD among various technical indicators. The strategy employs a three-signal parallel design where each buy signal can be independently enabled or disabled, while being equipped with five layers of protection mechanisms to strictly control risk while pursuing profits.
Core Characteristics
| Feature | Description |
|---|---|
| Buy Conditions | 3 independent buy signals, can be enabled/disabled independently |
| Sell Conditions | Uses only ROI take-profit, no active sell signals |
| Protection Mechanisms | 5 protection parameter groups (cooldown, max drawdown, stop loss protection, low profit lock) |
| Timeframe | 15-minute main timeframe |
| Dependencies | talib, qtpylib, pandas |
| Startup Candles | 480 candles (approximately 5 days of data) |
II. Strategy Configuration Analysis
2.1 Basic Risk Parameters
# ROI Exit Table
minimal_roi = {
"0": 0.05, # Take profit at 5% profit
}
# Stop Loss Setting
stoploss = -0.20 # 20% hard stop loss
# Trailing Stop
trailing_stop = False
# Custom Stop Loss
use_custom_stoploss = False
# Sell Signal
use_sell_signal = False # Completely rely on ROI take-profit
Design Rationale:
- Single ROI target of 5%, a moderate profit target strategy
- 20% stop loss is relatively loose, leaving room for trend pullbacks
- No trailing stop used to avoid being shaken out during frequent oscillations
- Completely relies on ROI for exits, simplifying exit logic
2.2 Order Type Configuration
The strategy does not explicitly define order_types and will use Freqtrade's default configuration.
III. Buy Conditions Explained
3.1 Protection Mechanisms (5 Groups)
Each buy signal shares global protection mechanisms, including:
| Protection Type | Parameter Description | Default Value |
|---|---|---|
| CooldownPeriod | Post-sell cooldown period | 0 minutes (no cooldown) |
| MaxDrawdown | Maximum drawdown protection | 12-hour lookback, 20 trades, drawdown >20% stops for 1 hour |
| StoplossGuard | Stop loss frequency protection | 4 stop losses within 3 hours, pause trading for 6 hours |
| LowProfitPairs #1 | Low profit lock | 2 trades within 1.5 hours, profit <2%, lock for 15 minutes |
| LowProfitPairs #2 | Low profit lock | 4 trades within 6 hours, profit <1%, lock for 30 minutes |
3.2 Three Buy Conditions Explained
Condition #1: EMA Multi-Period Confluence + VWMACD Confirmation (buy_signal_1)
# Logic
- VWMACD below signal line (waiting for golden cross opportunity)
- Low price below 240 EMA (pullback to long-period moving average)
- Close price above 240 EMA (support valid)
- 5 EMA crosses above 10 EMA (short-term trend strengthening)
- 3 EMA below 50 EMA (ensure not chasing highs)
- Volume greater than 0
Signal Switch: buy_signal_1 = True
Core Logic: Look for opportunities where short-term trends strengthen near long-term moving averages, combined with volume-weighted MACD to confirm momentum.
Condition #2: Fibonacci + Bollinger Bands Dual Channel Breakout (buy_signal_2)
# Logic
- Fibonacci lower band (SMA 50 - ATR * 4.236) crosses above Bollinger lower band
- Close price below 50 EMA (still at relatively low position)
- Volume greater than 0
Signal Switch: buy_signal_2 = True
Core Logic: Use the crossover signal between Fibonacci extension levels and Bollinger Bands to capture rebound opportunities after extreme oversold conditions.
Condition #3: Bollinger Lower Band Bounce + Volume Confirmation (buy_signal_3)
# Logic
- Low price below Bollinger lower band (20 period, 3 standard deviations)
- High price above volume-weighted slow MA
- High price below 50 EMA (ensure not too high)
- Volume greater than 0
Signal Switch: buy_signal_3 = True
Core Logic: Look for bounce opportunities with volume support near the Bollinger lower band, while limiting entries below the 50 EMA.
3.3 Three Buy Condition Categories
| Condition Group | Condition ID | Core Logic |
|---|---|---|
| Trend Following | buy_signal_1 | EMA multi-period confluence + VWMACD confirmation |
| Extreme Reversal | buy_signal_2 | Fibonacci/Bollinger dual channel breakout |
| Oversold Bounce | buy_signal_3 | Bollinger lower band bounce + volume confirmation |
IV. Sell Logic Explained
4.1 Pure ROI Take-Profit Mechanism
The strategy uses single ROI take-profit without active sell signals:
Profit Threshold Take Profit Ratio
─────────────────────────────────────────
≥ 5% Immediate take profit
Design Philosophy:
- Simplified exit logic, avoiding frequent stop-outs in oscillating markets
- 5% target is moderate to conservative, suitable for trending markets
- Relies on 20% stop loss as the final risk defense line
4.2 No Sell Signals
use_sell_signal = False
def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe.loc[(), "sell"] = 0
return dataframe
The strategy completely relies on ROI and stop loss for exits, without using technical indicator sell signals.
V. Technical Indicator System
5.1 Core Indicators
| Indicator Category | Specific Indicators | Purpose |
|---|---|---|
| EMA Series | 3, 5, 10, 50, 200, 240 EMA | Multi-period trend determination |
| Bollinger Bands | 20 period, 3 standard deviations | Oversold/overbought determination |
| Fibonacci ATR | SMA 50 - ATR(14) * 4.236 | Extreme price level identification |
| VWMACD | Volume-weighted MACD | Momentum confirmation |
| Volume MA | Volume-weighted fast/slow MA | Volume-price coordination verification |
5.2 Signal 1 Specific Indicators
# Signal 1 Parameters
s1_ema_xs = 3 # Ultra-short period EMA
s1_ema_sm = 5 # Short period EMA
s1_ema_md = 10 # Medium period EMA
s1_ema_xl = 50 # Long period EMA
s1_ema_xxl = 240 # Ultra-long period EMA
5.3 Signal 2 Specific Indicators
# Signal 2 Parameters
s2_ema_input = 50 # EMA base period
s2_ema_offset_input = -1 # EMA offset
s2_bb_sma_length = 49 # Bollinger SMA period
s2_bb_std_dev_length = 64 # Standard deviation period
s2_bb_lower_offset = 3 # Bollinger lower band offset
s2_fib_sma_len = 50 # Fibonacci SMA period
s2_fib_atr_len = 14 # ATR period
s2_fib_lower_value = 4.236 # Fibonacci extension coefficient
5.4 Signal 3 Specific Indicators
# Signal 3 Parameters
s3_ema_long = 50 # Long period EMA
s3_ema_short = 20 # Short period EMA
s3_ma_fast = 10 # Volume-weighted fast MA
s3_ma_slow = 20 # Volume-weighted slow MA
VI. Risk Management Features
6.1 Five-Layer Protection Mechanism
| Layer | Protection Type | Trigger Condition | Protection Effect |
|---|---|---|---|
| 1 | Cooldown Period | After sell | 0 minutes (no cooldown) |
| 2 | Max Drawdown | 20 trades within 12 hours with drawdown >20% | Pause trading for 1 hour |
| 3 | Stop Loss Protection | 4 stop losses within 3 hours | Pause trading for 6 hours |
| 4 | Low Profit Lock #1 | 2 trades within 1.5 hours with profit <2% | Lock for 15 minutes |
| 5 | Low Profit Lock #2 | 4 trades within 6 hours with profit <1% | Lock for 30 minutes |
6.2 Stop Loss Strategy
- Hard Stop Loss: 20%, a relatively loose stop loss range
- No Trailing Stop: Avoid being frequently shaken out during oscillating markets
- Stop Loss Protection Mechanism: Pause trading after consecutive stop losses
6.3 Position Management Recommendations
The strategy does not have built-in position management logic. It is recommended to configure with Freqtrade's stake_amount:
- Recommended single position: 2%-5% of total capital
- Maximum simultaneous positions: Adjust based on VPS performance
VII. Strategy Advantages and Limitations
✅ Advantages
- Signal Flexibility: Three buy signals can be independently toggled, easy to adjust based on market conditions
- Complete Protection Mechanisms: Five layers of protection effectively control consecutive losses and abnormal drawdowns
- Multi-Period Verification: From 3 EMA to 240 EMA, multi-period trend confirmation
- Volume Weighting: VWMACD considers volume factors for more reliable signals
- Simple Exit Logic: Pure ROI take-profit, avoiding conflicts from complex sell conditions
⚠️ Limitations
- Loose Stop Loss: 20% stop loss causes significant account volatility
- No Trailing Stop: May miss more profits in trending markets
- No Sell Signals: Completely relies on ROI, cannot take profit early
- Many Parameters: Numerous indicator parameters offer large optimization space but also high overfitting risk
- Large Startup Data: Requires 480 candles, approximately 5 days of 15-minute data
VIII. Applicable Scenario Recommendations
| Market Environment | Recommended Configuration | Explanation |
|---|---|---|
| Uptrend | Enable all signals | Capture pullback buy opportunities in trending markets |
| Oscillating Market | Only enable signal_2 | Extreme oversold bounce opportunities are more suitable for oscillation |
| Downtrend | Pause trading | Strategy design is biased towards long positions, high risk in downtrend |
| High Volatility | Reduce position size | 20% stop loss may be frequently triggered during high volatility |
IX. Applicable Market Environment Details
Saturn5 is a multi-condition trend following strategy suitable for markets with clear trend direction. Based on its code architecture and multiple protection mechanisms, it is best suited for slow bullish oscillating uptrends, while performing poorly in one-sided downtrends or violent oscillations.
9.1 Strategy Core Logic
- Trend Confirmation Priority: Confirm trend direction through multi-period EMA
- Pullback Entry: Enter at pullback positions within the trend, not chasing highs
- Volume Verification: VWMACD ensures momentum is real and effective
- Protection Mechanism Safety Net: Five layers of protection control extreme risks
9.2 Performance in Different Market Environments
| Market Type | Performance Rating | Reason Analysis |
|---|---|---|
| 📈 Slow Bull Trend | ⭐⭐⭐⭐⭐ | Multi-period EMA confirms trend, pullback entries work well |
| 🔄 Wide Oscillation | ⭐⭐⭐☆☆ | signal_2 can capture extreme oversold bounces, but higher stop loss risk |
| 📉 One-sided Downtrend | ⭐⭐☆☆☆ | Long strategy easily stops out in downtrend |
| ⚡️ Violent Volatility | ⭐☆☆☆☆ | 20% stop loss may trigger frequently, protection mechanisms frequently activate |
9.3 Key Configuration Recommendations
| Configuration Item | Recommended Value | Explanation |
|---|---|---|
| Timeframe | 15m | Strategy default, not recommended to modify |
| Stop Loss | -0.15 ~ -0.20 | Can adjust based on risk preference |
| ROI | 0.03 ~ 0.05 | Can appropriately lower take-profit target to increase win rate |
| Simultaneous Positions | 10-30 | Adjust based on capital and VPS performance |
X. Important Reminder: The Cost of Complexity
10.1 Learning Curve
- Three independent buy signals require understanding different technical logic
- Multiple indicator parameters require some technical analysis foundation
- Protection mechanism parameters are numerous, need to understand each layer's function
10.2 Hardware Requirements
| Number of Pairs | Minimum Memory | Recommended Memory |
|---|---|---|
| 1-10 pairs | 2GB | 4GB |
| 10-30 pairs | 4GB | 8GB |
| 30+ pairs | 8GB | 16GB |
10.3 Backtesting vs Live Trading Differences
- In backtesting, all three signals may perform excellently, but in live trading note:
- Slippage impact: Relatively small slippage impact at 15-minute timeframe
- Data delay: Real-time data may differ from backtesting data
- Liquidity: Large capital may affect execution prices
10.4 Recommendations for Manual Traders
If manually trading with this strategy as reference, focus on:
- EMA multi-period alignment relationships
- VWMACD golden cross signals
- Extreme oversold positions at Bollinger lower band
- Whether volume effectively increases
XI. Summary
Saturn5 is an exquisitely designed multi-condition trend following strategy. Its core value lies in:
- Signal Flexibility: Three independent buy signals can be combined for different market environments
- Complete Protection: Five layers of protection mechanisms effectively control risk and avoid consecutive losses
- Clear Logic: Each signal has clear technical logic support
For quantitative traders, this is a strategy suitable for moderate risk appetite, willing to invest time in parameter optimization. It is recommended to first backtest with historical data for verification, then test with small positions in live trading, and finally gradually increase position size.