趋势追踪系统是一个基于双箱体制的趋势跟踪策略。它使用长期周期箱体判断整体趋势方向,并在短期箱体产生信号时,选择与长期趋势方向一致的交易信号入场。该策略追踪趋势运行,在利润最大化的同时控制风险。
该策略使用两个箱体判断趋势。长期箱体使用较长周期判断主要趋势方向,短期箱体使用较短周期判断具体交易信号。
策略首先计算长期箱体的最高价和最低价,判断主要趋势方向。趋势方向分为三种: - 最高价上穿上一根K线的最高价,定义为上升趋势,赋值1 - 最低价下穿上一根K线的最低价,定义为下降趋势,赋值-1 - 否则维持原有趋势方向不变
在判断出主要趋势方向后,策略开始根据短期箱体入场。具体来说: - 当主要趋势为上升,且短期箱体最低价等于上一根K线的最低价,并低于当前短期箱体最低价时,做多 - 当主要趋势为下降,且短期箱体最高价等于上一根K线的最高价,并高于当前短期箱体最高价时,做空
此外,策略还设置了止损和止盈: - 多单止损为长期箱体最低价,空单止损为长期箱体最高价 - 多单止盈为短期箱体最高价,空单止盈为短期箱体最低价
当主要趋势发生转折时,平仓所有头寸。
该策略具有以下优势:
该策略也存在以下风险:
该策略可以从以下几个方面进行优化:
趋势追踪系统整体是一个非常实用的趋势跟踪策略。它同时兼具趋势判断和短期调整的能力,在追踪趋势的同时还能控制风险。通过不断优化,该策略可以成为一个强大的自动化趋势交易系统。它蕴含了趋势交易的核心哲学,值得深入研究。
||
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)