
This strategy is the actual code implementation of the famous Turtle trading system, using a 55-period channel for entry signals and a 20-period channel for exit signals to track longer-term trends, belonging to the trend-following strategy type.
The strategy is mainly based on two indicators: the 55-period highest price (HI) and lowest price (LO) to construct the entry channel, and the 20-period highest price (hi) and lowest price (lo) to construct the exit channel.
When the price breaks above the 55-period channel, a buy signal is generated; when the price breaks below the 55-period channel, a sell signal is generated. This is the typical trend-following entry logic.
When the price breaks below the 20-period channel, long positions are closed; when the price breaks above the 20-period channel, short positions are closed. This is the exit logic of the strategy.
The strategy also plots the 55-period channel and 20-period channel, which can visually see the entry and exit points of the strategy.
The main advantages of this strategy are:
There are also some risks with this strategy:
The risks can be reduced through:
The strategy can be optimized in several aspects:
In summary, this is a very typical trend-following strategy, using channels to capture mid-to-long term trends with good drawdown control. It also has some typical issues of trend-following strategies, like insufficient trend capturing ability and difficulty dealing with reversals. With comprehensive optimizations, the advantages can be fully realized to become a reliable quantitative strategy.
/*backtest
start: 2023-11-19 00:00:00
end: 2023-12-19 00:00:00
period: 1h
basePeriod: 15m
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/
// © racer8
//@version=4
strategy("Turtle System", overlay=true)
n = input(55,"Entry Length")
e = input(20,"Exit Length")
HI = highest(n)
LO = lowest(n)
hi = highest(e)
lo = lowest(e)
if close>HI[1]
strategy.entry("Buy", strategy.long)
if close<LO[1]
strategy.entry("Sell", strategy.short)
if low<lo[1]
strategy.close("Buy")
if high>hi[1]
strategy.close("Sell")
plot(HI,color=color.lime)
plot(LO,color=color.red)
plot(hi,color=color.blue)
plot(lo,color=color.maroon)