
Die Super-ATR-Trend-Tracking-Strategie ist eine Trend-Tracking-Strategie, die auf dem ATR-Indikator basiert. Sie verwendet den ATR-Indikator, um die Volatilität des Marktes zu messen, und erfolgt mit einer Stop-Line, die mehrere Male der ATR beträgt.
Die Strategie berechnet zunächst den ATR-Indikator, wobei der ATR-Indikator der bewegliche Durchschnitt der Preisschwankungen der Aktien in den letzten N Tagen ist, um das Risiko und die Volatilität des Marktes darzustellen. Die Strategie erlaubt uns, die Berechnungsmethode für den ATR zu ändern, indem wir die gewöhnliche ATR- oder SMA-Berechnung wählen.
Dann multiplizieren Sie die ATR-Werte mit einem Multiplikator, um die Auf- und Abfahrt zu berechnen:close - Multiplier * ATRAbfahrt:close + Multiplier * ATR❚ Das ist ein Trendkanal, der auf dem ATR-Indikator basiert.
Wir beurteilen dann, ob der aktuelle Preis den Kanal auf- und abgleitet. Wenn der Preis den Kanal aufbricht, wird er als Abwärtstrend bezeichnet.
Darüber hinaus gibt es ein Zeitfenster für den Handel, in dem nur innerhalb eines bestimmten Zeitraums gehandelt wird.
Diese Strategie, die auf einem Indikatorkanal basiert, bietet folgende Vorteile:
Insgesamt ist dies eine einfache und praktische Trend-Tracking-Strategie, die die Risiken effektiv kontrolliert und gleichzeitig bessere Gewinne erzielt.
Die Strategie birgt auch einige Risiken, insbesondere:
Um diese Risiken zu kontrollieren, können wir folgende Maßnahmen ergreifen:
Es gibt noch mehr Möglichkeiten, diese Strategie zu optimieren:
Durch diese Optimierungen können die Stabilität und die Rendite der Strategie weiter verbessert werden.
Diese Strategie ist insgesamt eine sehr praktische Trend-Tracking-Strategie. Sie verwendet die ATR-Indikatoren, um einen Anpassungskanal zu erstellen und die Zeit für den Kauf und Verkauf anhand eines Kanalbruchs zu beurteilen. Die Strategie ist einfach zu anwenden, kann das Risiko effektiv kontrollieren und eignet sich für die Verfolgung von mittleren und langen Trends.
/*backtest
start: 2023-02-12 00:00:00
end: 2024-02-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('B厂长 @超级趋势精简优化版', overlay=true)
Periods = input(title='ATR周期', defval=10)
src = input(hl2, title='价格数据源')
Multiplier = input.float(title='ATR 乘数', step=0.1, defval=3.0)
changeATR = input(title='更改ATR计算方法', defval=true,tooltip = '默认为art否则sma(ta.tr,ATR周期)')
showsignals = input(title='显示买入/卖出信号', defval=false)
atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2
up = src - Multiplier * atr
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up
dn = src + Multiplier * atr
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title='上涨趋势', style=plot.style_linebr, linewidth=2, color=color.new(color.green, 0))
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal and showsignals ? up : na, title='买点', text='买点', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(color.green, 0), textcolor=color.new(color.white, 0))
dnPlot = plot(trend == 1 ? na : dn, title='下跌趋势', style=plot.style_linebr, linewidth=2, color=color.new(color.red, 0))
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal and showsignals ? dn : na, title='卖点', text='卖点', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.red, 0), textcolor=color.new(color.white, 0))
FromMonth = input.int(defval=9, title='From Month', minval=1, maxval=12)
FromDay = input.int(defval=1, title='From Day', minval=1, maxval=31)
FromYear = input.int(defval=2018, title='From Year', minval=999)
ToMonth = input.int(defval=1, title='To Month', minval=1, maxval=12)
ToDay = input.int(defval=1, title='To Day', minval=1, maxval=31)
ToYear = input.int(defval=9999, title='To Year', minval=999)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() =>
time >= start and time <= finish ? true : false
longCondition = buySignal
if longCondition and window()
strategy.entry('BUY', strategy.long, comment = '做多')
shortCondition = sellSignal
if shortCondition and window()
strategy.entry('SAL', strategy.short, comment = '做空')
buy1 = ta.barssince(buySignal)
sell1 = ta.barssince(sellSignal)
color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na