Bidirektionale Tracking-Strategie von AlphaTrend


Erstellungsdatum: 2024-02-02 15:17:01 zuletzt geändert: 2024-02-02 15:17:01
Kopie: 0 Klicks: 814
1
konzentrieren Sie sich auf
1617
Anhänger

Bidirektionale Tracking-Strategie von AlphaTrend

Überblick

Die AlphaTrend-Strategie ist eine Strategie, die auf Basis von Kauf- und Verkaufssignalen des AlphaTrend-Indikators gehandelt wird. Die Strategie ermöglicht die Eröffnung von Mehrkopf- und Leerkopfpositionen in Bereichen, in denen der AlphaTrend-Indikator Kauf- und Verkaufssignale erzeugt.

Strategieprinzip

Die AlphaTrend-Indikatoren basieren auf einer Kombination aus einer selbst angepassten mittleren realen Breite (ATR) und einem Preis (Klusskurs oder volumengewogener Durchschnittspreis). Die Berechnungsmethoden sind:

Aufwärts = niedrigster Preis - ATR * Faktor Unterstraße = Höchstpreis + ATR * Faktor

Der ATR ist die durchschnittliche reale Breite der letzten Zeiträume, wobei die Faktoren ein anpassbarer Parameter sind. Wenn der Preis höher ist als der Aufwärtskurs, nähert sich die Zeile dem Aufwärtskurs; wenn der Preis niedriger ist als der Abwärtskurs, nähert sich die Zeile dem Abwärtskurs. Der AlphaTrend-Indikator bildet so einen Anpassungskanal.

AlphaTrend bi-directional Tracking-Strategie basiert auf den Signalen des AlphaTrend-Indikators, um mehrköpfige und leere Positionen zu erstellen. Die spezifische Logik ist:

  • Wenn die Preise durch den AlphaTrend-Indikator steigen, tun Sie mehr.
  • Wenn der Preis unter dem AlphaTrend-Index liegt, machen Sie eine Leerstellung.

Dies ist der zweiseitige Tracking-Trading, der auf dem dynamischen Kanal des AlphaTrend-Index basiert.

Analyse der Stärken

Der größte Vorteil der AlphaTrend-Strategie besteht darin, dass sie die Veränderungen der Markttrends verfolgen kann. Die Adaptive ATR kann den Kanalbereich an die Veränderungen der Marktfluktuation anpassen und vermeidet das Problem, dass traditionelle Indikatoren wie die Brin-Band leicht durch die Ausweitung der Volatilität ausfallen.

Außerdem kann der AlphaTrend-Indikator sowohl die Preise als auch die Transaktionsmenge (oder die Dynamik) kombinieren und so einige falsche Durchbrüche filtern. Dies verbessert auch die Qualität der Strategie-Signale.

Risikoanalyse

Das Hauptrisiko der AlphaTrend-Strategie besteht darin, dass die Indikatorkanäle durch große Marktschwankungen beeinträchtigt werden. Bei außergewöhnlichen Marktschwankungen kann der Stopp-Loss-Punkt überschritten werden, was zu größeren Verlusten führt. Dieses Risiko muss durch eine angemessene Anpassung der ATR-Parameter und der Stopp-Loss-Punkte kontrolliert werden.

Darüber hinaus kann der ALPHA-Indikator selbst eine gewisse Verzögerung aufweisen. Daher kann es zu Fehlsignalen in der Nähe von Wendepunkten kommen. Dies muss durch andere Indikatoren bestätigt werden.

Optimierungsrichtung

AlphaTrend bi-directional Tracking kann in folgenden Bereichen optimiert werden:

  1. In Kombination mit Trendindikatoren, um die wichtigsten Markttrends zu beurteilen, und um Gegenhandelsgeschäfte zu vermeiden;
  2. Erhöhung der Mengenbeschränkungen, um die Verluste durch geringfügige Falschbrüche zu vermeiden;
  3. Optimierung der Kennzahlen, um die Reichweite der Kanäle besser an die Eigenschaften der verschiedenen Sorten anzupassen;
  4. Es wird eine Reihe von Algorithmen für maschinelles Lernen hinzugefügt, um die Kanäle intelligenter zu machen.

Durch die Optimierung der oben genannten Punkte kann die Stabilität und Profitabilität der AlphaTrend-Strategie weiter verbessert werden.

Zusammenfassen

AlphaTrend bi-directional Tracking Strategie ist insgesamt eine effektive Strategie, um Marktveränderungen zu verfolgen. Es behebt die Probleme, dass traditionelle technische Indikatoren leicht ausfallen können, und kombiniert auch die Transaktionsmenge, um Signale zu filtern. Mit der richtigen Optimierung kann die Strategie zu einem leistungsstarken Werkzeug in einem quantitativen Handelssystem werden.

Strategiequellcode
/*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!')