Adaptive gleitende Durchschnitte und gewichtete gleitende Durchschnitte Crossover-Handelsstrategie


Erstellungsdatum: 2024-01-23 14:13:55 zuletzt geändert: 2024-01-23 14:13:55
Kopie: 0 Klicks: 583
1
konzentrieren Sie sich auf
1617
Anhänger

Adaptive gleitende Durchschnitte und gewichtete gleitende Durchschnitte Crossover-Handelsstrategie

Überblick

Die Strategie basiert auf der Adaptive Moving Average (AIOMA) und der Gewichtung von Moving Average (WMA) um Handelssignale zu realisieren. Sie erzeugt Kauf- und Verkaufssignale durch die Kreuzung von AIOMA und WMA.

Bezeichnung der Strategie

AIOMA-WMA-Kreuzungsstrategie für Anpassung

Strategieprinzip

Die Strategie besteht hauptsächlich aus folgenden Teilen:

  1. Berechnung des AIOMA-Index

    • Geben Sie eine Längeparameter an und berechnen Sie eine Reihe von Index-Moving Averages (EMA)
    • Diese EMAs werden in einer glatten Sequenz verbunden.
    • Das endgültige AIOMA ist der EMA des letzten Gleitwerts
  2. Berechnung des WMA-Index

    • Längenparameter angeben und WMA berechnen
  3. Handelssignale erzeugt

    • Wenn WMA auf AIOMA aufgeladen wird, erzeugt es ein Kaufsignal
    • Die WMA erzeugt Verkaufssignale, wenn sie AIOMA durchschreitet
  4. Transaktionslogik

    • Wenn Sie ein Signal kaufen, gehen Sie in eine Multi-Head-Position
    • Wenn Sie das Signal verkaufen, gehen Sie in eine leere Position.
    • Schließen Sie die Position in der entsprechenden Richtung, wenn das Signal “flach” ist.

Strategische Vorteile

  1. Die Verwendung von zwei verschiedenen Arten von Moving Averages kann die Genauigkeit von Handelssignalen verbessern
  2. AIOMA reduziert Falschsignale durch mehrfache Indexglättung
  3. Die WMA als Hauptindikator ist empfindlicher auf Preisänderungen und kann Trends früher erfassen
  4. Einfache Transaktionslogik, leicht zu verstehen und umzusetzen

Strategisches Risiko

  1. Mehrfache EMA-Ebenbesserungen könnten zu einer übermäßigen Verzögerung führen
  2. Die WMA ist anfällig für kurzfristige Preisschwankungen und erzeugt falsche Signale.
  3. Nicht Berücksichtigung der Stop-Loss-Logik, die zu größeren Verlusten führen kann

Das Risiko kann durch geeignete Optimierungsparameter, die Einstellung von Stop-Loss-Punkten oder die Filterung in Kombination mit anderen Indikatoren verringert werden.

Richtung der Strategieoptimierung

  1. Tests mit verschiedenen Längenparametern, um die optimale Parameter zu finden
  2. Ein Stop-Loss-Buch wird bei einem Kauf-/Verkaufssignal ausgelöst
  3. Der Index für Marktvolatilität in Kombination mit dem Filter für Falschsignale
  4. Erhöhung der Strategie zur Positionsverwaltung

Zusammenfassen

Die Strategie integriert die Vorteile der beiden Indikatoren AIOMA und WMA und erzeugt Handelssignale durch Kreuzung. Die Signalqualität kann im Vergleich zum einzelnen Moving Average verbessert werden. Durch Parameteroptimierung, Stop-Loss-Strategie und Volatilitätsfilterung kann es zu einem stabilen und zuverlässigen Handelssystem werden.

Strategiequellcode
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SDTA

//@version=5
strategy("AIOMA-WMA Strategy", overlay=true)

// Parametreler
aioma_length = input(14, "AIOMA Length")
wma_length = input(21, "WMA Length")

// AIOMA hesaplama
length1 = aioma_length
ema1 = ta.ema(close, length1)
length2 = aioma_length
ema2 = ta.ema(ema1, length2)
length3 = aioma_length
ema3 = ta.ema(ema2, length3)
length4 = aioma_length
ema4 = ta.ema(ema3, length4)
aioma = ta.ema(ema4, aioma_length)

// WMA hesaplama
wma = ta.wma(close, wma_length)

// Kesişim kontrolü
cross_up = ta.crossover(wma, aioma)
cross_down = ta.crossunder(wma, aioma)

// İşlem fonksiyonu
enterTrade(dir, price, signalText, color) =>
    if dir
        strategy.entry("Enter", strategy.long)
        label.new(x = bar_index, y = price, text = signalText, color = color, textcolor = color, style = label.style_label_up, size = size.small, tooltip = "Entry Signal")
    else if not dir
        strategy.entry("Exit", strategy.short)
        label.new(x = bar_index, y = price, text = signalText, color = color, textcolor = color, style = label.style_label_down, size = size.small, tooltip = "Exit Signal")

// Long pozisyon girişi
if cross_up
    enterTrade(true, low, "Buy Signal", color.green)

// Short pozisyon girişi
if cross_down
    enterTrade(false, high, "Sell Signal", color.red)

// Pozisyon kapatma
if cross_up and strategy.position_size > 0
    strategy.close("Enter")
if cross_down and strategy.position_size < 0
    strategy.close("Exit")

// Grafiğe plot
plot(aioma, color=color.blue, linewidth=2, title="AIOMA")
plot(wma, color=color.red, linewidth=2, title="WMA")