This strategy is based on the Parabolic SAR indicator and incorporates a time window for backtesting to achieve a momentum tracking stop loss effect. It is mainly suitable for products with a strong trend, and dynamically adjusts the stop loss point to realize trend tracking stop loss.
The strategy uses the Parabolic SAR (Parabolic Stop and Reverse) indicator as the main technical indicator. Parabolic SAR can provide very accurate reversal signals. When the price is in an uptrend, Parabolic SAR will keep moving up to track the uptrend. When the price starts to fall, Parabolic SAR will drop rapidly to provide stop loss signals.
The strategy first sets three parameters of Parabolic SAR, including the starting value, increment value and maximum value. It then calculates the value of Parabolic SAR. The strategy uses Parabolic SAR as the dynamic stop loss point. When the price rises, it goes long above Parabolic SAR; when the price breaks below Parabolic SAR, it closes the long position. Similarly, when the price falls, it goes short below Parabolic SAR; when the price breaks above Parabolic SAR, it closes the short position.
In this way, the strategy can track the trend when the price is trending, and quickly stop loss when the price reverses, completing a trading cycle.
The strategy fully utilizes the efficient stop loss function of the Parabolic SAR indicator to achieve momentum tracking stop loss effect. Compared to fixed stop loss points, it can adjust dynamically and automatically track trends for stop loss, avoiding prematurely stopped out positions. Meanwhile, the risks of the strategy cannot be neglected, and need multi-dimensional optimizations and enhancements for stable performance across different markets. Overall, it provides a significantly effective way of stop loss for trend tracking, and is worth further research and application.
/*backtest start: 2023-09-26 00:00:00 end: 2023-10-26 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // === by @Aldovitch === // PSAR Strategy // Based on Parabolic SAR Strategy provided by TradingView // added a Time Window for Backtests // strategy("Parabolic SAR Strategy w/ Time Window", shorttitle="PSAR Strategy w/ TW", overlay=true) // === INPUT INDEXES PARAMETERS === start = input(0.02) increment = input(0.02) maximum = input(0.2) // === INPUT BACKTEST RANGE === FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromYear = input(defval = 2018, title = "From Year", minval = 2016) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) ToYear = input(defval = 9999, title = "To Year", minval = 2017) // === CONTROL & APPEARENCE === timeStart = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window timeFinish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window // === FUNCTIONS === window() => true // create function "within window of time" // === COMPUTING INDEXES === psar = sar(start, increment, maximum) if (psar > high) strategy.entry("ParLE", strategy.long, stop=psar, comment="ParLE", when=window()) else strategy.cancel("ParLE") if (psar < low) strategy.entry("ParSE", strategy.short, stop=psar, comment="ParSE", when=window()) else strategy.cancel("ParSE") //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)template: strategy.tpl:40:21: executing "strategy.tpl" at <.api.GetStrategyListByName>: wrong number of args for GetStrategyListByName: want 7 got 6