AlphaTrend Dual Tracking-Strategie

Schriftsteller:ChaoZhang, Datum: 2024-02-02 15:17:01
Tags:

img

Übersicht

Die Dual-Tracking-Strategie von AlphaTrend handelt basierend auf den vom AlphaTrend-Indikator generierten Kauf- und Verkaufssignalen.

Strategie Logik

Der Kern der AlphaTrend-Doppel-Tracking-Strategie ist der AlphaTrend-Indikator. Der AlphaTrend-Indikator berechnet die oberen und unteren Bands auf der Grundlage des adaptiven ATR und des Preises (Schließpreis oder volumengewichteter Durchschnittspreis).

Höherer Band = niedrigster Tief - ATR * Multiplikator Unterer Band = Höchster Höchster + ATR * Multiplikator

Bei ATR handelt es sich um den durchschnittlichen wahren Bereich über einen bestimmten Zeitraum und der Multiplikator ist ein anpassbarer Parameter. Wenn der Preis über dem oberen Band liegt, nähert sich die Indikatorlinie dem oberen Band. Wenn der Preis unter dem unteren Band liegt, nähert sich die Indikatorlinie dem unteren Band. Somit bildet AlphaTrend einen anpassungsfähigen Kanal.

Die Dual-Tracking-Strategie von AlphaTrend setzt auf Basis der von AlphaTrend generierten Signale Long- und Short-Positionen ein.

  • Gehen Sie lang, wenn der Preis über AlphaTrend kreuzt;
  • Gehen Sie kurz, wenn der Preis unter AlphaTrend fällt.

Damit wird der zweiseitige Tracking-Handel auf Basis des dynamischen AlphaTrend-Kanals abgeschlossen.

Analyse der Vorteile

Der größte Vorteil der AlphaTrend Dual-Tracking-Strategie ist, dass sie Veränderungen der Markttrends verfolgen kann.

Darüber hinaus kombiniert AlphaTrend sowohl Preis- als auch Volumen (oder Momentum) -Informationen, die dazu beitragen, einige falsche Ausbrüche auszufiltern und die Qualität der Handelssignale zu verbessern.

Risikoanalyse

Das Hauptrisiko der AlphaTrend-Dual-Tracking-Strategie ist die enorme Marktfluktuation, die die Stop-Loss-Punkte treffen könnte. Wenn es eine abnormale Marktbewegung gibt, können die Stop-Loss-Punkte gebrochen werden, was zu großen Verlusten führt. Dies muss durch die richtige Anpassung der ATR-Parameter und Stop-Loss-Punkte kontrolliert werden.

Außerdem ist ALPHA selbst etwas zurückgeblieben und kann auch falsche Signale rund um Marktturnpunkte erzeugen.

Optimierungsrichtlinien

Die AlphaTrend Dual-Tracking-Strategie kann in folgenden Aspekten optimiert werden:

  1. Kombination mit Trendindikatoren zur Bestimmung des wichtigsten Markttrends, um gegen den Trend zu handeln;
  2. Erhöhen Sie den Volumenfilter, um Verluste durch falsche Ausbrüche mit geringem Volumen zu vermeiden;
  3. Optimierung der Indikatorparameter, um den Kanalbereich für verschiedene Produkte besser zu gestalten;
  4. Verbessern Sie die Algorithmen des maschinellen Lernens, um den Kanal intelligenter zu machen.

Durch die oben genannten Optimierungen können die Stabilität und Rentabilität der AlphaTrend-Strategie weiter verbessert werden.

Zusammenfassung

Zusammenfassend ist die AlphaTrend Dual-Tracking-Strategie ein wirksames Mittel, um Marktveränderungen zu verfolgen. Sie löst das Problem traditioneller technischer Indikatoren, die ihre Wirksamkeit verlieren, und integriert auch Volumeninformationen, um Signale zu filtern. Mit entsprechenden Optimierungen kann diese Strategie zu einem leistungsstarken Werkzeug in quantitativen Handelssystemen werden.


/*backtest
start: 2024-01-02 00:00:00
end: 2024-02-01 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/
// author © KivancOzbilgic
// developer © KivancOzbilgic
//@version=5
strategy('AlphaTrend', shorttitle='AT', overlay=true, format=format.price, precision=2)
coeff = input.float(1, 'Multiplier', step=0.1)
AP = input(14, 'Common Period')
ATR = ta.sma(ta.tr, AP)
src = input(close)
showsignalsk = input(title='Show Signals?', defval=true)
novolumedata = input(title='Change calculation (no volume data)?', defval=false)
upT = low - ATR * coeff
downT = high + ATR * coeff
AlphaTrend = 0.0
AlphaTrend := (novolumedata ? ta.rsi(src, AP) >= 50 : ta.mfi(hlc3, AP) >= 50) ? upT < nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : upT : downT > nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : downT

color1 = AlphaTrend > AlphaTrend[2] ? #00E60F : AlphaTrend < AlphaTrend[2] ? #80000B : AlphaTrend[1] > AlphaTrend[3] ? #00E60F : #80000B
k1 = plot(AlphaTrend, color=color.new(#0022FC, 0), linewidth=3)
k2 = plot(AlphaTrend[2], color=color.new(#FC0400, 0), linewidth=3)

fill(k1, k2, color=color1)

buySignalk = ta.crossover(AlphaTrend, AlphaTrend[2])
sellSignalk = ta.crossunder(AlphaTrend, AlphaTrend[2])


K1 = ta.barssince(buySignalk)
K2 = ta.barssince(sellSignalk)
O1 = ta.barssince(buySignalk[1])
O2 = ta.barssince(sellSignalk[1])

//plotshape(buySignalk and showsignalsk and O1 > K2 ? AlphaTrend[2] * 0.9999 : na, title='BUY', text='BUY', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(#0022FC, 0), textcolor=color.new(color.white, 0))

//plotshape(sellSignalk and showsignalsk and O2 > K1 ? AlphaTrend[2] * 1.0001 : na, title='SELL', text='SELL', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.maroon, 0), textcolor=color.new(color.white, 0))



longCondition = buySignalk and showsignalsk and O1 > K2
if (longCondition)
    
    strategy.entry("BUY", strategy.long, comment = "BUY ENTRY")

shortCondition = sellSignalk and showsignalsk and O2 > K1
if (shortCondition )
    
    strategy.entry("SELL", strategy.short, comment = "SELL ENTRY")













// alertcondition(buySignalk and O1 > K2, title='Potential BUY Alarm', message='BUY SIGNAL!')
// alertcondition(sellSignalk and O2 > K1, title='Potential SELL Alarm', message='SELL SIGNAL!')

// alertcondition(buySignalk[1] and O1[1] > K2, title='Confirmed BUY Alarm', message='BUY SIGNAL APPROVED!')
// alertcondition(sellSignalk[1] and O2[1] > K1, title='Confirmed SELL Alarm', message='SELL SIGNAL APPROVED!')



// alertcondition(ta.cross(close, AlphaTrend), title='Price Cross Alert', message='Price - AlphaTrend Crossing!')
// alertcondition(ta.crossover(low, AlphaTrend), title='Candle CrossOver Alarm', message='LAST BAR is ABOVE ALPHATREND')
// alertcondition(ta.crossunder(high, AlphaTrend), title='Candle CrossUnder Alarm', message='LAST BAR is BELOW ALPHATREND!')

// alertcondition(ta.cross(close[1], AlphaTrend[1]), title='Price Cross Alert After Bar Close', message='Price - AlphaTrend Crossing!')
// alertcondition(ta.crossover(low[1], AlphaTrend[1]), title='Candle CrossOver Alarm After Bar Close', message='LAST BAR is ABOVE ALPHATREND!')
// alertcondition(ta.crossunder(high[1], AlphaTrend[1]), title='Candle CrossUnder Alarm After Bar Close', message='LAST BAR is BELOW ALPHATREND!')






Mehr