Strategie zur Trendfolge mit mehreren gleitenden Durchschnitten und Momentum

SMA RSI MA
Erstellungsdatum: 2024-11-12 15:05:09 zuletzt geändert: 2024-11-12 15:05:09
Kopie: 0 Klicks: 476
1
konzentrieren Sie sich auf
1617
Anhänger

Strategie zur Trendfolge mit mehreren gleitenden Durchschnitten und Momentum

Überblick

Die Strategie ist ein Trend-Tracking-Trading-System, das auf mehreren Durchschnitts- und Dynamik-Indikatoren basiert. Die Strategie nutzt hauptsächlich die dynamischen Beziehungen zwischen den 20-, 50-, 150- und 200-Tage-Simplen Moving Averages (SMA), kombiniert die Wechselkurse und den RSI-Indikatoren, um einen starken Aufwärtstrend auf der Tageslinie zu erfassen und die Position rechtzeitig auszugleichen, wenn sich der Trend abschwächt. Die Strategie filtert durch die Kombination mehrerer technischer Indikatoren effektiv falsche Signale und verbessert die Genauigkeit des Handels.

Strategieprinzip

Die Kernlogik der Strategie besteht aus folgenden wichtigen Teilen:

  1. Mittelliniensystem: Trendbeurteilungssystem mit 20/50/150/200-Tages-Mittellinien, bei denen mehrere Mittellinien mit mehreren Enden angeordnet sind.
  2. Bewegungsermittlung: Beurteilung der Preisbewegung anhand des RSI-Indikators und seines Moving Averages, wobei der RSI größer als 55 oder der RSI SMA größer als 50 und der RSI höher sein muss.
  3. Bestätigung der Effektivität des Kauf- und Verkaufssignals durch Vergleiche zwischen dem 20-Tage-Durchschnittswert und dem aktuellen Umsatz.
  4. Nachweis der Trendbeständigkeit: Überprüfen Sie, ob die 50-Tage-Durchschnittslinie in den letzten 40 Handelstagen für mindestens 25 Tage im Aufwärtstrend war.
  5. Positionsbestätigung: Der Preis muss mindestens 20 Handelstage über der 150-Tage-Durchschnittslinie stehen.

Die Kaufbedingungen sind wie folgt:

  • In den letzten 10 Tagen war die Sonne an mehr als 4 Tagen und mindestens 1 Tag in der Sonne
  • Der RSI entspricht der Momentum-Bedingung
  • Einheitliche Liniensysteme zeigen eine mehrköpfige und stetig steigende Anordnung
  • Die Preise bewegen sich stabil über dem 150-Tage-Durchschnitt.

Die Verkaufsbedingungen beinhalten:

  • Der Preis fiel unter den 150-Tage-Durchschnitt.
  • Folge eines kontinuierlichen Rückgangs der Abgabe
  • Die 50-tägige Durchschnittslinie fiel unter die 150-tägige Durchschnittslinie.
  • In jüngster Zeit wurde die Zahl der Transaktionen durch die vaginalen Zellen erhöht.

Strategische Vorteile

  1. Mehrfache technische Kennzahlen, um Fehleinschätzungen zu reduzieren
  2. Trendbeständigkeit ist streng gefordert und kann kurzfristige Schwankungen filtern
  3. Synthetische Verkehrsanalysen zur Verbesserung der Signalsicherheit
  4. Klare Stop-Loss-Bedingungen und effektive Risikokontrolle
  5. Das ist geeignet, mittel- und langfristige Trends zu erfassen und die Handelsfrequenz zu reduzieren.
  6. Die Strategielogik ist klar, leicht zu verstehen und umzusetzen

Strategisches Risiko

  1. Ein lineares System ist rückständig und kann die Anfangsphase des Trends verpassen
  2. Die strengen Eintrittsbedingungen können dazu führen, dass man einige Handelschancen verpasst.
  3. In volatilen Märkten können häufig Fehlsignale auftreten
  4. Es gibt eine gewisse Verzögerung bei der Identifizierung der Umkehrung.
  5. Um den Rückzug zu bewältigen, ist ein größerer Finanzbedarf erforderlich.

Vorschläge zur Risikokontrolle:

  • Setzen Sie eine vernünftige Stop-Loss-Position
  • Die Verwaltung der Gelder muss moderat sein
  • Erwägen Sie eine Erhöhung der Trendbestätigungsindikatoren
  • Anpassung der Parameter an die Marktbedingungen

Richtung der Strategieoptimierung

  1. Hinzufügen von Anpassungsparametern
  • Der mittellinienzeitliche Zyklus wird an die Marktschwankungen angepasst
  • Optimierung der RSI-Temperature
  1. Verbesserte Schadensbegrenzung
  • Erhöhung der Verfolgungsschwelle
  • Einstellung zum Verlust von Zeit
  1. Einführung von Marktumfeldanalysen
  • Zunahme der Indikatoren für Trendstärke
  • Einfluss der Volatilitätsindikatoren
  1. Optimierung der Transaktionsgröße
  • Design für dynamische Positionsverwaltung
  • Anpassung an die Signalstärke

Zusammenfassen

Es ist eine Strategie, die durch die Kombination von mehreren technischen Indikatoren eine strenge Trendverfolgungsstrategie entwickelt wurde, die in der Lage ist, starke Trendchancen effektiv zu erfassen. Die Hauptvorteile der Strategie liegen in ihrer vollständigen Signalbestätigungsmechanik und einem strengen Risikokontrollsystem. Obwohl es einige Rückstände gibt, kann die Strategie durch vernünftige Parameteroptimierung und Risikomanagement eine stabile Leistung in der langfristigen Laufzeit halten.

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

//@version=5
strategy("Micho's 150 (1D Time Frame Only)", overlay=true)

// Define the length for the SMAs and RSI
sma20Length = 20
sma50Length = 50
sma150Length = 150
sma200Length = 200
volumeMaLength = 20
rsiLength = 14
rsiSmaLength = 14
smaCheckLength = 40  // Check the last month of trading days (~20 days)
requiredRisingDays = 25  // Require SMA to rise in at least 16 of the past 20 days
sma150AboveSma200CheckDays = 1  // Require SMA150 > SMA200 for the last 10 days

// Calculate the SMAs for price
sma20 = ta.sma(close, sma20Length)
sma50 = ta.sma(close, sma50Length)
sma150 = ta.sma(close, sma150Length)
sma200 = ta.sma(close, sma200Length)

// Calculate the 20-period moving average of volume
volumeMA20 = ta.sma(volume, volumeMaLength)

// Calculate the 14-period RSI
rsi = ta.rsi(close, rsiLength)

// Calculate the 14-period SMA of RSI
rsiSMA = ta.sma(rsi, rsiSmaLength)

// Check if most of the last 5 days are buyer days (close > open)
buyerDays = 0
for i = 0 to 9
    if close[i] > open[i]
        buyerDays := buyerDays + 1

// Check if at least 1 day has volume higher than the 20-period volume MA
highVolumeDays = 0
for i = 0 to 9
    if close[i] > open[i] and volume[i] > volumeMA20
        highVolumeDays := highVolumeDays + 1

// Define the new RSI condition
rsiCondition = (rsi >= 55) or (rsiSMA > 50 and rsi > rsi[1])

// Check if the 50-day SMA has been rising on at least 16 of the last 20 trading days
risingDays = 0
for i = 1 to smaCheckLength
    if sma50[i] > sma50[i + 1]
        risingDays := risingDays + 1

// Check if the SMA has risen on at least 16 of the last 20 days
sma50Rising = risingDays >= requiredRisingDays

// Check if the price has been above the SMA150 for the last 20 trading days
priceAboveSma150 = true
for i = 1 to smaCheckLength
    if close[i] < sma150[i]
        priceAboveSma150 := false

// Check if the SMA150 has been above the SMA200 for the last 10 days
sma150AboveSma200 = true
for i = 1 to sma150AboveSma200CheckDays
    if sma150[i] < sma200[i]
        sma150AboveSma200 := false

// Define the conditions for the 150-day and 200-day SMAs being rising
sma150Rising = sma150 > sma150[1]
sma200Rising = sma200 > sma200[1]

// Check if most of the last 5 days are seller days (close < open)
sellerDays = 0
for i = 0 to 9
    if close[i] < open[i]
        sellerDays := sellerDays + 1

// Check if at least 1 day has seller volume higher than the 20-period volume MA
highSellerVolumeDays = 0
for i = 0 to 9
    if close[i] < open[i] and volume[i] > volumeMA20
        highSellerVolumeDays := highSellerVolumeDays + 1

// Check in the last N days the price below 150
priceBelowSma150 = true
for i = 0 to 0
    if close[i] > sma150[i]
        priceBelowSma150 := false

// Restrict the strategy to 1D time frame
if timeframe.isdaily
    // Buy condition:
    // - Most of the last 5 days are buyer days (buyerDays > 2)
    // - At least 1 of those days has high buyer volume (highVolumeDays >= 1)
    // - RSI SMA (14-period) between 45 and 50 with RSI >= 55, or RSI SMA > 50 and RSI rising
    // - 50-day SMA > 150-day SMA and 150-day SMA > 200-day SMA
    // - 50-day SMA has been rising on at least 16 of the last 20 trading days
    // - The price hasn't been below the 150-day SMA in the last 20 days
    // - 150-day SMA has been above the 200-day SMA for the last 10 days
    // - 150-day and 200-day SMAs are rising
    buyCondition = (close > sma150 and buyerDays > 4 and highVolumeDays >= 1 and rsiCondition  and sma50 > sma150 and sma50Rising and sma150Rising and sma200Rising and priceAboveSma150)

    // Sell condition:
    // - Price crossing below SMA 150
    // - Seller volume (current volume > volume MA 20)
    // - 150-day SMA crosses below 200-day SMA
    // - Most of the last 5 days are seller days (sellerDays > 2) and at least 1 day of higher seller volume (highSellerVolumeDays >= 1)
    sellCondition = (priceBelowSma150 and (sma50 < sma150 or (sellerDays >5 and highSellerVolumeDays >= 5)))

    // Execute buy when all conditions are met
    if (buyCondition)
        strategy.entry("Buy", strategy.long)

    // Execute sell when all conditions are met
    if (sellCondition)
        strategy.close("Buy")