Tags: ATRTS

This strategy uses the Average True Range (ATR) as the basis for a Trailing Stop (TS), dynamically adjusting the stop-loss position to follow the trend. When the price moves in a favorable direction, the stop-loss position is adjusted accordingly to lock in profits; when the price moves in an adverse direction, the stop-loss position remains unchanged, and once the price reaches the stop-loss price, the position is closed. The key to this strategy lies in the dynamic adjustment of the stop-loss position, which can both protect profits and allow profits to expand as the trend continues.

- Calculate the ATR as the basis for the trailing stop. ATR reflects market volatility and is used to measure the average magnitude of price changes.
- Calculate the stop-loss distance nLoss based on the ATR and the KeyValue parameter. KeyValue is a user-defined multiplier, and nLoss is the product of KeyValue and ATR, indicating that the stop-loss distance is several times the ATR.
- Calculate the dynamic trailing stop position xATRTrailingStop. For a long position, it is set to the greater of “the highest price of the previous candle and (close - nLoss)”; for a short position, it is set to the lesser of “the lowest price of the previous candle and (close + nLoss)”.
- Generate entry signals. When the closing price crosses above xATRTrailingStop, go long; when the closing price crosses below xATRTrailingStop, go short.

- The stop-loss position is dynamically adjusted with price fluctuations, allowing profits to be locked in while also allowing profits to expand as the trend continues.
- The stop-loss position is based on the ATR calculation, which can objectively reflect market volatility and is more flexible and effective compared to subjectively set fixed stop-losses.
- By amplifying the ATR with the KeyValue parameter, you can set an appropriate stop-loss distance based on your risk preference. A larger KeyValue will result in a wider stop-loss space and fewer stop-loss occurrences.

- Trend-following strategies perform poorly in choppy markets, and when the unilateral trend is not clear, frequent stop-losses can lead to rapid loss of funds.
- The entry timing relies on the cross signal between the closing price and the dynamic stop-loss line, which may result in consecutive small stop-losses in a choppy market.
- Trailing stop strategies cannot avoid gaps caused by significant bearish or bullish news, and the adjustment speed of the stop-loss position cannot keep up with the price change speed, resulting in actual losses far greater than expected controllable losses.

- Trend judgment indicators, such as moving average systems and momentum indicators, can be added to the strategy to only enter the market when the trend is clear, avoiding frequent trading in choppy markets.
- A take-profit strategy can be considered, such as calculating position sizes based on the Kelly formula, setting fixed profit points for retracement stop-profits, etc., to reduce the possibility of potential profit givebacks at the end of a trend.
- For gap openings, a maximum stop-loss limit can be set, such as a fixed amount or a fixed percentage. Once this limit is reached, the position is immediately stopped out regardless of where the dynamic stop-loss price is.

The ATR trailing stop strategy can dynamically adjust the stop-loss position based on the magnitude of price fluctuations and can achieve good results in trending markets. However, this strategy also has risks such as inability to cope with choppy markets, excessive stop-loss frequency, and difficulty in avoiding gap openings. To address these shortcomings, the strategy can be optimized and improved in terms of trend judgment, take-profit strategies, and maximum stop-loss limits. With these adjustments, the strategy’s adaptability and profitability can hopefully be enhanced.

/*backtest start: 2024-04-01 00:00:00 end: 2024-04-30 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Long TAP", overlay=true) // Constants keyValueDefault = 3.0 keyValueStep = 0.5 atrPeriodDefault = 10 // Inputs keyValue = input.float(keyValueDefault, title="Key Value") atrPeriod = input.int(atrPeriodDefault, title="ATR Period") // Calculations xATR = ta.atr(atrPeriod) nLoss = keyValue * xATR // Trailing Stop Calculation var float xATRTrailingStop = 0.0 xATRTrailingStop := ta.highest(math.max(nz(xATRTrailingStop[1], 0), close - nLoss), 1) xATRTrailingStop := ta.lowest(math.min(nz(xATRTrailingStop, 0), close + nLoss), 1) // Position Calculation var int pos = 0 pos := nz(pos[1], 0) if (close[1] < nz(xATRTrailingStop, 0) and close > nz(xATRTrailingStop, 0)) pos := 1 else if (close[1] > nz(xATRTrailingStop, 0) and close < nz(xATRTrailingStop, 0)) pos := -1 // Plotting Trailing Stop var color xcolor = na if (pos == -1) xcolor := color.red else if (pos == 1) xcolor := color.green plot(xATRTrailingStop, color=xcolor, title="Trailing Stop") // Buy/Sell Signals buySignal = ta.crossover(close, xATRTrailingStop) sellSignal = ta.crossunder(close, xATRTrailingStop) // Strategy if (buySignal) strategy.entry("Long", strategy.long) label.new(bar_index, xATRTrailingStop, text="Buy Signal", color=color.green, style=label.style_label_up, yloc=yloc.belowbar) if (sellSignal) strategy.entry("Short", strategy.short) label.new(bar_index, xATRTrailingStop, text="Sell Signal", color=color.red, style=label.style_label_down, yloc=yloc.abovebar) // Alerts alertcondition(buySignal, title='UT BOT Buy', message='UT BOT Buy') alertcondition(sellSignal, title='UT BOT Sell', message='UT BOT Sell')

- HalfTrend Bullish and Bearish Trend Following Stop-Limit Buy Strategy
- TURTLE-ATR Bollinger Bands Breakout Strategy
- MilleMachine
- SUPERTREND Trend-following Long Position with Stop-loss and Take-profit Strategy
- Dynamic Trend Following Strategy
- SUPERTREND ATR WITH TRAILING STOP LOSS
- Fibonacci Progression With Breaks
- AlphaTrend use mfi
- baguette by multigrain
- Chandelier Exit

- Dynamic Position Sizing Short-Term Forex Trading Strategy
- Advanced 15-Minute Chart Trading Signal Strategy
- PSAR and EMA-Based Quantitative Trading Strategy
- Standard Deviation DEV Trading Strategy Based on Relative Strength Index RSI and Simple Moving Average SMA
- MA,SMA Dual Moving Average Crossover Strategy
- Risk-Reward Ratio and Technical Analysis Based Bull Flag Breakout Strategy
- Multi-factor Fusion Strategy
- Bollinger Bands + RSI + Multi-MA Trend Strategy
- QQE and RSI-based Long-Short Signal Strategy
- Zero Lag MACD Dual Crossover Trading Strategy - High-Frequency Trading Based on Short-Term Trend Capture
- SMC & EMA Strategy with P&L Projections
- Nadaraya-Watson Envelope Multi-Confirmation Dynamic Stop-Loss Strategy
- Dynamic Take Profit Bollinger Bands Strategy
- CCI + MA Crossover Pullback Buy Strategy
- Short-term Short Selling Strategy for High-liquidity Currency Pairs
- MOST Indicator Dual Position Adaptive Strategy
- Bollinger Bands RSI Trading Strategy
- Buy and Sell Volume Heatmap with Real-Time Price Strategy
- Dual Moving Average Regression Trading Strategy
- Multi-Indicator Quantitative Trading Strategy - Super Indicator 7-in-1 Strategy