Momentum Breakout Zwei-Wege-Tracking-Strategie


Erstellungsdatum: 2023-12-18 10:47:46 zuletzt geändert: 2023-12-18 10:47:46
Kopie: 0 Klicks: 625
1
konzentrieren Sie sich auf
1621
Anhänger

Momentum Breakout Zwei-Wege-Tracking-Strategie

Überblick

Diese Strategie kombiniert den Einsatz von Dynamik-Indikatoren und zweiseitigen Tracking-Indikatoren, um bei starken Trends Breakout-Signale zu erfassen und Trend-Tracking zu realisieren. Wenn der Preis nach oben bricht, macht er mehr, und wenn der Preis nach unten bricht, macht er weniger, und gehört zu den Strategien, die den Trend verfolgen.

Strategieprinzip

  1. Mit dem HiLo-Aktivator-Indikator wird der mittlere Preis berechnet, der den Mittelpunkt zwischen dem höchsten und dem niedrigsten Preis als mittleren Preis verwendet. Es erzeugt ein Kaufsignal, wenn der Preis steigt und den mittleren Preis durchbricht, und ein Verkaufsignal, wenn der Preis sinkt und den mittleren Preis durchbricht.

  2. Der durchschnittliche Trendindex ADX wird verwendet, um die Stärke eines Trends zu bestimmen. Je höher der ADX-Wert, desto stärker ist der Trend. Diese Strategie wird in Verbindung mit der Verwendung eines bestimmten Tiefstwertes von ADX verwendet, um ein Signal zu filtern, das nur dann erzeugt wird, wenn der Trend stark genug ist.

  3. Die Multidirectional-Indikatoren DI+ und DI- bezeichnen die Mehrkopf- und die Leerkopf-Kraft. Die Strategie arbeitet gleichzeitig mit einem bestimmten Schwellenwert von DI+ und DI- zusammen, um die Mehrkopf- und die Leerkopf-Kraft zu bestätigen und falsche Signale zu vermeiden.

  4. Ein Kaufsignal wird erzeugt, wenn der Preis den mittleren Preis, ADX, überschreitet und DI+ überschreitet. Ein Verkaufsignal wird erzeugt, wenn der Preis den mittleren Preis, ADX, überschreitet und DI- überschreitet.

Analyse der Stärken

Diese Strategie kombiniert die Vorteile von Dynamik- und Trendindikatoren, um einen Preisbruch früh in der Entwicklung des Trends zu erfassen und so den Trend zu halten. Zugleich sind die Trendfilterbedingungen streng und helfen, falsche Signale von Konsolidierung und Shock zu vermeiden.

Im Vergleich zu einer einzigen Verwendung von Dynamik-Indikatoren, kann diese Strategie bei der Erzeugung von Signalen, um die Beurteilung der Trendstärke hinzufügen, Fehlsignale reduzieren und die Gewinnwahrscheinlichkeit erhöhen. Im Vergleich zu einer einzigen Verwendung von Trend-Tracking-Indikatoren, kann diese Strategie durch den Durchbruch von Signalen erzeugt werden, um früher in den Trend zu gelangen.

Insgesamt kann die Strategie den Trend gut verfolgen, rechtzeitig ein- und aussteigen und Schlamm vermeiden; gleichzeitig können die Verluste bei einer Trendwende reduziert werden.

Risikoanalyse

Es besteht ein gewisses Whipsaw-Risiko bei dieser Strategie, dass ein gewisses Maß an Preisanpassung ein Umkehrsignal erzeugen kann. Darüber hinaus kann es möglich sein, dass einige der Anfangsphasen des Betriebs verpasst werden, wenn die Filterbedingungen mit ADX- und DI-Einstellungen verwendet werden.

Um das Whipsaw-Risiko zu verringern, können die Parameter des HiLo-Aktivators entsprechend angepasst werden, um die Durchbruchsbreite zu erhöhen. Um mehr Chancen zu erhalten, können die Threshold-Anforderungen für ADX und DI reduziert werden, aber die Signalqualität muss abgewogen werden.

Darüber hinaus müssen die Benutzer auf die Unterschiede in der Parameter-Einstellung für verschiedene Sorten und Marktumgebungen achten. Im Allgemeinen benötigen Waren eine höhere Schwelle; Aktien und Devisen können niedrigere Schwellenwerte verwenden.

Optimierungsrichtung

Diese Strategie kann durch Anpassung der Parameter-Einstellungen optimiert werden. Die wichtigsten Optimierungsrichtungen sind:

  1. Anpassung der HiLo-Aktivator-Zyklen und der Triggerfrequenz, um das Whipsaw-Risiko und die Einstiegszeit auszugleichen.

  2. Anpassung der ADX-Zyklen und der Threshold-Anforderungen, um die Signalqualität und die Eingangsfrequenz auszugleichen.

  3. Die Grenzwerte für den Mehrkopf- und den Leerkopf-DI wurden jeweils angepasst, um die Unterschiede zwischen der Mehrkopf- und der Leerkopf-Umgebung zu unterscheiden.

  4. Ein Stop-Loss-Strategie wird hinzugefügt, um den Einzelschaden zu kontrollieren.

  5. In Kombination mit anderen Hilfsindikatoren zur Optimierung und Steigerung der Gesamtstabilität der Strategie

Zusammenfassen

Diese Strategie berücksichtigt die Dynamik- und Trendindikatoren und erzeugt Kauf- und Verkaufssignale in starken Trends. Sie hat die Eigenschaften eines fortlaufenden, engmaschigen Trends und ist geeignet, frühe Trendchancen zu erfassen. Gleichzeitig verfügt sie auch über eine gewisse Risikokontrolle, die den Verlust durch Fehlsignale und Whipsaws verringert. Durch die Hinzufügung von Parameteranpassungen und Stop-Loss-Strategien kann eine dauerhaft stabile Performance erzielt werden.

Strategiequellcode
/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("HiLo Activator with ADX", shorttitle="HASB_ADX", overlay=true)

// Parameters for the HiLo Activator
length_ha = input(14, title="HiLo Activator Period")
offset_ha = input(0, title="Offset")
trigger_ha = input(1, title="Trigger for Buy/Sell")

// Parameters for ADX
adx_length = input(14, title="ADX Period", minval=1)
adx_threshold = input(25, title="ADX Threshold")
di_threshold = input(50, title="DI Threshold")

// Parameter for choosing the number of candles for backtest
backtest_candles = input(1000, title="Number of Candles for Backtest", minval=1)

// Function to get backtest data
getBacktestData() =>
    var float data = na
    if bar_index >= backtest_candles
        data := security(syminfo.tickerid, "D", close[backtest_candles])
    data

// HiLo Activator calculations
ha = (highest(high, length_ha) + lowest(low, length_ha)) / 2

// ADX calculations
trh = high - high[1]
trl = low[1] - low
tr = max(trh, trl)
atr = sma(tr, adx_length)
plus_dm = high - high[1] > low[1] - low ? max(high - high[1], 0) : 0
minus_dm = low[1] - low > high - high[1] ? max(low[1] - low, 0) : 0
smoothed_plus_dm = sma(plus_dm, adx_length)
smoothed_minus_dm = sma(minus_dm, adx_length)
di_plus = 100 * (smoothed_plus_dm / atr)
di_minus = 100 * (smoothed_minus_dm / atr)
dx = 100 * abs(di_plus - di_minus) / (di_plus + di_minus)
adx = sma(dx, adx_length)

// Buy and Sell signals based on HiLo Activator and ADX
signalLong = crossover(close, ha) and adx > adx_threshold and di_plus > di_threshold
signalShort = crossunder(close, ha) and adx > adx_threshold and di_minus > di_threshold

// Plot HiLo Activator and ADX
plot(ha, color=color.blue, title="HiLo Activator")
plot(offset_ha, color=color.red, style=plot.style_histogram, title="Offset")
plot(adx, color=color.purple, title="ADX")

// Backtest strategy
strategy.entry("Buy", strategy.long, when = signalLong)
strategy.entry("Sell", strategy.short, when = signalShort)
strategy.close("Buy", when = signalShort)
strategy.close("Sell", when = signalLong)

// Accuracy percentage
var accuracy = 0.0
var totalTrades = 0
var winningTrades = 0

if (signalLong or signalShort)
    totalTrades := totalTrades + 1

if (signalLong and (not na(signalLong[1]) and (not signalLong[1])))
    winningTrades := winningTrades + 1

if (signalShort and (not na(signalShort[1]) and (not signalShort[1])))
    winningTrades := winningTrades + 1

accuracy := totalTrades > 0 ? (winningTrades / totalTrades) * 100 : 0

// Plot accuracy percentage on the chart
plot(accuracy, title="Accuracy Percentage", color=color.purple, style=plot.style_histogram)