Adaptive Price Crossover Moving Average-Handelsstrategie

HMA SL TP
Erstellungsdatum: 2024-09-26 16:12:36 zuletzt geändert: 2024-09-26 16:12:36
Kopie: 2 Klicks: 441
1
konzentrieren Sie sich auf
1617
Anhänger

Adaptive Price Crossover Moving Average-Handelsstrategie

Überblick

Die Strategie nutzt die Kreuzung von Preisen und HMAs, um Kauf- und Verkaufssignale zu erzeugen, und setzt festgelegte Stop-Loss- und Stop-Stop-Levels ein, um Risiken und Gewinne zu verwalten. Die Strategie verwendet die 104-Zyklen-HMA als Hauptindikator, um den Handel in Kombination mit Preiskreuzungen auszulösen.

Strategieprinzip

Der Kern der Strategie ist die Verwendung des Hull Moving Averages (HMA) als Hauptindikator. HMA ist ein fortgeschrittener Moving Average, der schnell auf Preisänderungen reagiert und gleichzeitig die Verzögerung reduziert. Die Strategie-Logik lautet wie folgt:

  1. Berechnung des HMA für 104 Zyklen.
  2. Wenn der Preis die HMA nach oben überschreitet, wird ein positionierter Kurs erhöht.
  3. Wenn der Preis nach unten durch die HMA geht, wird die Position aufgelöst.
  4. Setzen Sie einen festen Stop-Loss ($1.25) und einen Stop-Loss ($37.5) für jeden Handel.
  5. Für jede Transaktion werden zwei Verträge verwendet.

Die Strategie stellt sicher, dass keine erneuten Positionen eröffnet werden, wenn bereits Positionen eröffnet wurden. Wenn ein Handel platziert ist, wird das System neu markiert, um ein neues Handelssignal in Kraft zu setzen.

Strategische Vorteile

  1. Anpassungsfähigkeit: Die HMA kann sich schnell an Marktveränderungen anpassen und falsche Signale reduzieren.
  2. Risikomanagement: Die Verwendung von festen Stop-Loss- und Stop-Stop-Levels ermöglicht eine effektive Kontrolle des Risikos für jeden Handel.
  3. Einfach und klar: Die Regeln für den Handel sind klar, leicht zu verstehen und umzusetzen.
  4. Zwei-Wege-Trading: Aufwärts- und Abwärtschancen gleichzeitig erfassen, um das Gewinnpotenzial zu erhöhen.
  5. Automatisierung: Die Strategie kann vollständig automatisiert werden, um menschliche Interventionen und emotionale Auswirkungen zu reduzieren.

Strategisches Risiko

  1. Häufige Transaktionen: Es kann zu viele Transaktionssignale in einem stark schwankenden Markt geben, was die Transaktionskosten erhöht.
  2. Fixed Stop-Loss/Stop-Stop: Es kann nicht für alle Marktbedingungen geeignet sein, und in einigen Fällen kann es zu früh auftreten oder einen großen Trend verpassen.
  3. Verlassen Sie sich auf einen einzigen Indikator: Die HMA allein kann unter bestimmten Marktbedingungen nicht gut abschneiden.
  4. Nachlässigkeit: Trotz der Verringerung der Nachlässigkeit kann es sein, dass die HMA an einem akuten Wendepunkt nicht reagiert.
  5. Mangelnde Filterung der Marktumgebung: Handel unter unpassenden Marktbedingungen ohne Berücksichtigung der allgemeinen Markttrends oder der Volatilität.

Richtung der Strategieoptimierung

  1. Einführung von zusätzlichen Indikatoren: In Kombination mit anderen technischen Indikatoren (z. B. RSI oder MACD) zur Bestätigung der Signale und zur Verbesserung der Genauigkeit.
  2. Dynamische Stop/Stop: Die Stop- und Stop-Levels werden an die Volatilität des Marktes angepasst, um sie an unterschiedliche Marktbedingungen anzupassen.
  3. Hinzufügen von Marktfiltern: Trendstärke- oder Schwankungsfilter hinzufügen, um den Handel unter ungünstigen Marktbedingungen zu vermeiden.
  4. Optimierung von HMA-Parametern: Versuche verschiedene HMA-Zyklen, um die am besten geeigneten Parameter für einen bestimmten Markt zu finden.
  5. Einführung von Positionsverwaltung: Dynamische Anpassung der Handelsgröße an das Marktrisiko und die Größe des Kontos.
  6. Hinzufügen von Zeitfiltern: Vermeiden Sie den Handel in Zeiten mit hoher Marktvolatilität, wie zum Beispiel während der Veröffentlichung wichtiger Wirtschaftsdaten.

Zusammenfassen

Die Strategie bietet die Möglichkeit, Markttrends zu erfassen und gleichzeitig die Gelder durch feste Risikomanagementmaßnahmen zu schützen. Obwohl die Strategie einige potenzielle Risiken birgt, kann ihre Leistung und Anpassungsfähigkeit durch kontinuierliche Optimierung und Verbesserung weiter verbessert werden.

Strategiequellcode
/*backtest
start: 2024-01-01 00:00:00
end: 2024-03-23 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("SHIESTD", overlay=true)

// Function to calculate Hull Moving Average (HMA)
hma(src, length) =>
    wma1 = ta.wma(src, length)
    wma2 = ta.wma(src, length / 2)
    hma = ta.wma(2 * wma2 - wma1, math.round(math.sqrt(length)))
    hma

// Parameters
hma_length = 104

// Calculate Hull Moving Average
hma_value = hma(close, hma_length)

// Plot HMA
plot(hma_value, title="104-period Hull Moving Average", color=color.blue, linewidth=2)

// Define SL and TP values in dollars
long_sl_amount = 1.25
long_tp_amount = 37.5
short_sl_amount = 1.25
short_tp_amount = 37.5

// Number of contracts
contracts = 2

// Function to calculate SL and TP prices based on entry price and dollar amounts
long_sl_price(entry_price) =>
    entry_price - long_sl_amount

long_tp_price(entry_price) =>
    entry_price + long_tp_amount

short_sl_price(entry_price) =>
    entry_price + short_sl_amount

short_tp_price(entry_price) =>
    entry_price - short_tp_amount

// Trading conditions
price_intersects_hma = ta.crossover(close, hma_value) or ta.crossunder(close, hma_value)

// Long and Short Conditions based on price intersecting HMA
long_condition = ta.crossover(close, hma_value)
short_condition = ta.crossunder(close, hma_value)

// Track open positions
var bool long_open = false
var bool short_open = false

// Handle Long Positions
if (long_condition and not long_open)
    entry_price = close
    strategy.entry("Long", strategy.long, qty=contracts)
    strategy.exit("Exit Long", from_entry="Long", stop=long_sl_price(entry_price), limit=long_tp_price(entry_price))
    long_open := true

// Handle Short Positions
if (short_condition and not short_open)
    entry_price = close
    strategy.entry("Short", strategy.short, qty=contracts)
    strategy.exit("Exit Short", from_entry="Short", stop=short_sl_price(entry_price), limit=short_tp_price(entry_price))
    short_open := true

// Reset flags when the position is closed
if (strategy.opentrades == 0)
    long_open := false
    short_open := false