Multi-Dimensional Trend Following Strategy with Volatility-Adaptive Stop Loss

supertrend RSI SMA ATR MPL
Created on: 2025-02-08 15:12:57 Modified on: 2025-02-08 15:12:57
Copy: 3 Number of hits: 410
avatar of ChaoZhang ChaoZhang
1
Follow
1617
Followers

 Multi-Dimensional Trend Following Strategy with Volatility-Adaptive Stop Loss

Overview

This strategy is a multi-dimensional trading system that combines trend following, momentum indicators, and adaptive stop-loss mechanisms. It identifies market trends using the SuperTrend indicator, confirms trades with RSI momentum indicator and moving average system, and implements dynamic stop-loss management using ATR volatility indicator. This multi-dimensional analysis approach effectively captures market trends while maintaining reasonable risk control.

Strategy Principles

The core logic is based on three dimensions: 1. Trend Identification: Uses SuperTrend indicator (Parameters: ATR length 14, multiplier 3.0) as the primary trend determination tool. When SuperTrend turns green, it indicates a potential uptrend. 2. Momentum Confirmation: Uses RSI indicator (Parameter: length 14) to avoid entering at overbought levels. RSI below 65 suggests the market is not overbought. 3. Trend Validation: Uses 50-period Simple Moving Average (SMA) as additional trend confirmation. Price must be above the moving average to consider entry.

Buy conditions require: SuperTrend bullish (green) + RSI < 65 + Price above 50-period SMA. Sell condition: Exit when SuperTrend turns bearish. Stop-loss management: Uses ATR-based trailing stop, with stop distance set at 1.5 times ATR value.

Strategy Advantages

  1. Multi-dimensional Analysis: Combines multiple technical indicators to enhance signal reliability.
  2. Strong Adaptability: ATR-based stop-loss automatically adjusts according to market volatility.
  3. Comprehensive Risk Control: Trailing stop mechanism protects profits while allowing trends to develop.
  4. Reasonable Parameter Settings: Indicator parameters align with market dynamics, such as using 65 as RSI threshold instead of traditional 70.
  5. Clear Code Structure: Strategy code is highly modularized, facilitating maintenance and optimization.

Strategy Risks

  1. Choppy Market Risk: May generate frequent false signals in range-bound markets.
  2. Slippage Risk: Trailing stops may experience price deviation due to slippage in fast-moving markets.
  3. Parameter Sensitivity: Strategy performance is sensitive to SuperTrend and RSI parameter settings.
  4. Delay Risk: Lagging indicators like moving averages may cause delayed entries and exits.

Strategy Optimization Directions

  1. Market Environment Adaptation: Add volatility filters to adjust stop multipliers in high volatility environments.
  2. Entry Optimization: Consider adding volume confirmation indicators to improve entry signal reliability.
  3. Position Management: Introduce ATR-based dynamic position sizing system for adaptive risk exposure adjustment.
  4. Timeframe Optimization: Test performance across different timeframes to select optimal time periods.
  5. Dynamic Parameter Adjustment: Research methods for dynamic parameter optimization to improve strategy adaptability across different market conditions.

Summary

This strategy constructs a logically complete trading system through the comprehensive use of trend following, momentum, and moving average systems. Its strengths lie in its multi-dimensional signal confirmation mechanism and comprehensive risk control system. Through the provided optimization directions, there is room for further improvement. The key is to enhance its adaptability across different market conditions while maintaining the strategy’s core logic.

Strategy source code
/*backtest
start: 2025-01-08 00:00:00
end: 2025-02-07 00:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Gladston_J_G

//@version=5
strategy("Trend Strategy with Stop Loss", overlay=true, margin_long=100, margin_short=100)

// ———— Inputs ———— //
atrLength = input(14, "ATR Length")
supertrendMultiplier = input(3.0, "Supertrend Multiplier")
rsiLength = input(14, "RSI Length")
maLength = input(50, "MA Length")
trailOffset = input(1.5, "Trailing Stop ATR Multiplier")

// ———— Indicators ———— //
// Supertrend for trend direction
[supertrend, direction] = ta.supertrend(supertrendMultiplier, atrLength)

// RSI for momentum filter

rsi = ta.rsi(close, rsiLength)

// Moving Average for trend confirmation
ma = ta.sma(close, maLength)

// ATR for volatility-based stop loss
atr = ta.atr(atrLength)

// ———— Strategy Logic ———— //
// Buy Signal: Supertrend bullish + RSI not overbought + Price above MA
buyCondition = direction < 0 and rsi < 65 and close > ma

// Sell Signal: Supertrend turns bearish
sellCondition = direction > 0

// ———— Stop Loss & Trailing ———— //
stopPrice = close - (atr * trailOffset)
var float trail = na
if buyCondition and strategy.position_size == 0
    trail := stopPrice
else
    trail := math.max(stopPrice, nz(trail[1]))

// ———— Execute Orders ———— //
strategy.entry("Long", strategy.long, when=buyCondition)
strategy.close("Long", when=sellCondition)
strategy.exit("Trail Exit", "Long", stop=trail)

// ———— Visuals ———— //
plot(supertrend, "Supertrend", color=direction < 0 ? color.green : color.red)
plot(ma, "MA", color=color.blue)
plot(strategy.position_size > 0 ? trail : na, "Trailing Stop", color=color.orange, style=plot.style_linebr)

// ———— Alerts ———— //
plotshape(buyCondition, "Buy", shape.triangleup, location.belowbar, color.green, size=size.small)
plotshape(sellCondition, "Sell", shape.triangledown, location.abovebar, color.red, size=size.small)
plot(close)