Die Ressourcen sind geladen. Beförderung...

Trend des dynamischen Durchschnitts nach Strategie

Schriftsteller:ChaoZhang, Datum: 2024-11-12 15:05:09
Tags:SMARSI- Nein.

img

Übersicht

Diese Strategie ist ein Trend-Nach-Handelssystem, das auf mehreren gleitenden Durchschnitten und Dynamikindikatoren basiert. Sie nutzt in erster Linie die dynamischen Beziehungen zwischen den 20-tägigen, 50-tägigen, 150-tägigen und 200-tägigen einfachen gleitenden Durchschnitten (SMA), kombiniert mit Volumen- und RSI-Indikatoren, um starke Aufwärtstrends im täglichen Zeitrahmen und Ausstiegspositionen zu erfassen, wenn die Trends schwächen. Die Strategie filtert falsche Signale effektiv und verbessert die Handelsgenauigkeit durch den koordinierten Einsatz mehrerer technischer Indikatoren.

Strategieprinzipien

Die Kernlogik umfasst folgende Schlüsselelemente:

  1. Moving Average System: Verwendet 20/50/150/200 Tage gleitende Durchschnitte, um ein Trendbeurteilungssystem zu erstellen, das eine bullische Ausrichtung erfordert.
  2. Momentum-Bestätigung: Verwendet den RSI-Indikator und seinen gleitenden Durchschnitt, um die Kursdynamik zu beurteilen, wobei RSI über 55 oder RSI SMA über 50 und steigend erforderlich ist.
  3. Volumenüberprüfung: Bestätigt die Signalgültigkeit durch Vergleich des 20-tägigen Volumendurchschnitts mit dem aktuellen Volumen.
  4. Überprüfung der Trendbeständigkeit: Prüft, ob der 50-Tage-MA mindestens 25 von 40 Handelstagen einen Aufwärtstrend aufrechterhält.
  5. Positionsbestätigung: Der Preis muss mindestens 20 Handelstage über dem 150-Tage-MA liegen.

Die Kaufbedingungen erfordern:

  • Mehr als 4 bullische Tage in den letzten 10 Tagen mit mindestens 1 hohem Volumentag
  • Der RSI-Indikator erfüllt die Dynamikbedingungen
  • Das gleitende Durchschnittssystem zeigt eine bullische Ausrichtung und einen kontinuierlichen Anstieg
  • Preisstabilität über 150-Tage-MA

Zu den Verkaufsbedingungen gehören:

  • Preisdurchbruch unter 150-Tage-MA
  • Nachfolgender Rückgang des hohen Volumens
  • 50-Tage-MA unter 150-Tage-MA
  • Jüngste bärische Kerzen mit erhöhter Lautstärke

Strategische Vorteile

  1. Kreuzvalidierung mehrerer technischer Indikatoren verringert Fehleinschätzungen
  2. Strenge Anforderungen an die Trendbeständigkeit filtern kurzfristige Schwankungen
  3. Integration der Volumenanalyse verbessert die Signalzuverlässigkeit
  4. Klarer Stop-Loss- und Gewinnspielraum zur effektiven Risikokontrolle
  5. Geeignet für die Erfassung mittelfristiger bis langfristiger Trends und zur Verringerung der Handelsfrequenz
  6. Klare Strategie-Logik, leicht zu verstehen und umzusetzen

Strategische Risiken

  1. Das gleitende Durchschnittssystem hat Verzögerungen, kann frühe Trendstadien verpassen
  2. Strenge Eintrittsbedingungen können einige Handelschancen verpassen
  3. Kann häufige falsche Signale in unruhigen Märkten erzeugen
  4. Verzögerung bei der Feststellung von Marktumkehrungen
  5. Erfordert einen größeren Kapitalbetrag, um Abzügen standzuhalten

Empfehlungen zur Risikokontrolle:

  • Festlegung angemessener Stop-Loss-Positionen
  • Konservatives Geldmanagement
  • Erwägen Sie, Trendbestätigungsindikatoren hinzuzufügen
  • Anpassung der Parameter anhand des Marktumfelds

Strategieoptimierungsrichtlinien

  1. Anpassungsparameter hinzufügen
  • Dynamische Anpassung der MA-Perioden anhand der Marktvolatilität
  • Optimierung der RSI-Schwellenwerte
  1. Verbesserung des Stop-Loss-Mechanismus
  • Hinzufügen von Trailing Stops
  • Zeitbasierte Stopps festlegen
  1. Einführung einer Analyse des Marktumfelds
  • Hinzufügen von Trendstärkenindikatoren
  • Überwachen Sie Volatilitätsindikatoren
  1. Optimieren Sie die Handelsgröße
  • Entwurf des dynamischen Positionsmanagements
  • Anpassung nach Signalstärke

Zusammenfassung

Es handelt sich um eine streng entwickelte Trend-Folge-Strategie, die durch den koordinierten Einsatz mehrerer technischer Indikatoren starke Trendchancen effektiv erfasst. Die Hauptvorteile der Strategie liegen in ihrem umfassenden Signalbestätigungsmechanismus und strengen Risikokontrollsystemen. Während es eine gewisse Verzögerung gibt, kann die Strategie durch angemessene Parameteroptimierung und Risikomanagement eine stabile Leistung im langfristigen Betrieb aufrechterhalten. Anlegern wird geraten, bei der Anwendung der Strategie im Live-Handel auf die Anpassungsfähigkeit des Marktumfelds zu achten, Positionen vernünftigerweise zu steuern und gezielte Optimierungen basierend auf den tatsächlichen Bedingungen vorzunehmen.


/*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")


Verwandt

Mehr