The Trend Following System is a trend tracking strategy based on a double box system. It uses a long-term box to determine the overall trend direction and takes signals that align with the major trend when the short-term box triggers. This strategy follows trends while managing risks.
The strategy uses two boxes to determine the trend. The long-term box uses a longer period to judge the major trend direction, and the short-term box uses a shorter period to generate trading signals.
First, the strategy calculates the highest and lowest prices of the long-term box to determine the major trend direction. The trend direction can be:
After determining the major trend, the strategy starts taking positions based on the short-term box signals. Specifically:
In addition, stop loss and take profit are configured:
When the major trend reverses, close all positions.
The advantages of this strategy include:
The risks of this strategy include:
The strategy can be improved by:
The Trend Following System is a practical trend trading strategy combining trend determination and short-term adjustments. With continuous optimizations, it can become a robust automated system that tracks trends while controlling risks. It contains the core philosophies of trend trading and is worth in-depth studying.
[/trans]
/*backtest start: 2023-10-25 00:00:00 end: 2023-10-26 07:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © LonesomeTheBlue //@version=4 strategy("Grab Trading System", overlay = true) flb = input(defval = 80, title = "Longterm Period", minval = 1) slb = input(defval = 21, title = "Shortterm Period", minval = 1) showtarget = input(defval = true, title = "Show Target") showtrend = input(defval = true, title = "Show Trend") major_resistance = highest(flb) major_support = lowest(flb) minor_resistance = highest(slb) minor_support = lowest(slb) var int trend = 0 trend := high > major_resistance[1] ? 1 : low < major_support[1] ? -1 : trend strategy.entry("Buy", true, when = trend == 1 and low[1] == minor_support[1] and low > minor_support) strategy.entry("Sell", false, when = trend == -1 and high[1] == minor_resistance[1] and high < minor_resistance) if strategy.position_size > 0 strategy.exit("Buy", stop = major_support, comment = "Stop Buy") if high[1] == minor_resistance[1] and high < minor_resistance strategy.close("Buy", comment ="Close Buy") if strategy.position_size < 0 strategy.exit("Sell", stop = major_resistance, comment = "Stop Sell") if low[1] == minor_support[1] and low > minor_support strategy.close("Sell", comment ="Close Sell") if strategy.position_size != 0 and change(trend) strategy.close_all() majr = plot(major_resistance, color = showtrend and trend == -1 and trend[1] == -1 ? color.red : na) majs = plot(major_support, color = showtrend and trend == 1 and trend[1] == 1 ? color.lime : na) minr = plot(minor_resistance, color = showtarget and trend == 1 and strategy.position_size > 0 ? color.yellow : na, style = plot.style_circles) mins = plot(minor_support, color = showtarget and trend == -1 and strategy.position_size < 0 ? color.yellow : na, style = plot.style_circles) fill(majs, mins, color = showtrend and trend == 1 and trend[1] == 1 ? color.lime : na, transp = 85) fill(majr, minr, color = showtrend and trend == -1 and trend[1] == -1 ? color.red : na, transp = 85)