Strategie zur Umkehrung des doppelten gleitenden Durchschnitts

Schriftsteller:ChaoZhang, Datum: 2023-12-01 16:56:43
Tags:

img

Übersicht

Die Dual Moving Average Crossover Reversal Strategie ist eine typische quantitative Handelsstrategie, die Trends verfolgt. Die Strategie nutzt die Crossover-Signale von der 9-Tage-Linie und der 14-Tage-Linie im Dual Moving Average-Indikator, um Kauf- und Verkaufssignale zu konstruieren. Sie kauft, wenn die 9-Tage-Linie von unten durch die 14-Tage-Linie bricht, um ein goldenes Kreuz zu bilden, und verkauft, wenn die 9-Tage-Linie von oben durch die 14-Tage-Linie bricht, um ein Todeskreuz zu bilden. Um falsche Signale zu filtern, führt die Strategie auch den 50-Tage-Linie-Indikator ein, um festzustellen, ob der Preis durchbricht.

Strategieprinzip

Diese Strategie handelt hauptsächlich auf der Grundlage der goldenen Kreuz- und Death-Cross-Signale aus dem doppelten gleitenden Durchschnittsindikator. Bei den doppelten gleitenden Durchschnitten stellt die 9-Tage-Linie kurzfristige Trends dar, die 14-Tage-Linie repräsentiert mittelfristige Trends, und ihr Crossover ist ein effektiver technischer Indikator zur Beurteilung von Wendungen in den Markttrends. Wenn die kurzfristige Trendlinie von unten durch die mittelfristige Trendlinie bricht, um ein goldenes Kreuz zu bilden, deutet sie darauf hin, dass die kurzfristige Trendlinie stärker wird, was ein Kaufsignal ist; wenn sie von oben durchbricht, um ein Todeskreuz zu bilden, deutet sie darauf hin, dass die kurzfristige Trendlinie schwächer wird, was ein Verkaufssignal ist.

Darüber hinaus führt die Strategie auch die 50-Tage-Linie ein, um irreführende Signale zu filtern. Sie erzeugt nur einen Kauf, wenn der Preis über der 50-Tage-Linie liegt; und erzeugt nur einen Verkauf, wenn der Preis unter der 50-Tage-Linie liegt. Die 50-Tage-Linie repräsentiert mittelfristige bis langfristige Trends. Nur wenn mittelfristige bis langfristige Trends übereinstimmen, werden kurzfristige Operationen durchgeführt.

Die Grundlogik lautet:

// Buy condition: 9-day line crosses above 14-day line and close price is above 50-day line 
buyCondition = ta.crossover(sma9, sma14) and close > sma50 

// Sell condition: 9-day line crosses below 14-day line and close price is below 50-day line
sellCondition = ta.crossunder(sma9, sma14) and close < sma50

Analyse der Vorteile

Die Vorteile der doppelten gleitenden Durchschnittsstrategie liegen auf der Hand:

  1. Einfach zu verstehen und umzusetzen, geeignet für Anfänger.
  2. Folgen Sie dem Trend, vermeiden Sie, in den Märkten der Bandbreite gefangen zu werden.
  3. Verwenden Sie mittelfristige bis langfristige Indikatoren, um irreführende Signale zu filtern und sich nicht von kurzfristigen Marktlärm täuschen zu lassen.
  4. Kann Markttrends verfolgen und über längere Zeit effizient profitieren.

Risikoanalyse

Die Strategie des doppelten gleitenden Durchschnitts birgt ebenfalls einige Risiken:

  1. In extremen Marktbedingungen wie Marktcrashs kann es zu großen Rückgängen kommen, bevor sich ein Todeskreuz bildet.
  2. In den Ranging-Märkten wechseln sich Goldkreuze und Todekreuze ab und öffnen wiederholt Positionen, was zu erhöhten Transaktionskosten führt.

Um den Risiken entgegenzuwirken, können folgende Optimierungen vorgenommen werden:

  1. Einführung anderer Indikatoren, um Verluste bei einbrechenden Marktbedingungen schnell zu reduzieren.
  2. Fügen Sie mehr Öffnungsfilter hinzu, um abwechselnde Kreuzungen in verschiedenen Märkten zu vermeiden.

Optimierungsrichtlinien

Die doppelte gleitende Durchschnittsstrategie kann in mehreren Aspekten optimiert werden:

  1. Parameteroptimierung, Anpassung der gleitenden Durchschnittsperioden, Optimierung der Indikatorparameter.
  2. Filtern Sie die Öffnungssignale weiter aus und verwenden Sie mehr Indikatoren, um die Marktbedingungen zu beurteilen und falsche Signale zu vermeiden.
  3. Einführung von Stop-Loss-Mechanismen, Einsatz von beweglichen Stop-Loss, Penetration Stop-Loss und anderen Stop-Methoden.
  4. Kombination mit anderen Handelsstrategien wie Volumen- und Volatilitätsstrategien.
  5. Um die Betriebseffizienz zu verbessern, muss die Hebelwirkung angemessen eingesetzt werden.

Zusammenfassung

Die doppelte gleitende Durchschnittsstrategie ist im Allgemeinen eine effiziente Gewinngenerierungsstrategie. Sie kann durch kontinuierliche Trends profitieren. Gleichzeitig birgt sie gewisse Risiken und muss weiter verbessert werden. Durch die Optimierung von Parametern, Stop-Methoden und Strategiekombinationen können die Effekte dieser Strategie weiter verbessert werden.


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

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

// Define the length for the SMAs
sma9Length = input(9, title="SMA 9 Length")
sma14Length = input(14, title="SMA 14 Length")
sma50Length = input(50, title="SMA 50 Length")  // Add input for SMA 50

// Calculate SMAs
sma9 = ta.sma(close, sma9Length)
sma14 = ta.sma(close, sma14Length)
sma50 = ta.sma(close, sma50Length)  // Calculate SMA 50

// Buy condition: SMA 9 crosses above SMA 14 and current price is above SMA 50
buyCondition = ta.crossover(sma9, sma14) and close > sma50

// Sell condition: SMA 9 crosses below SMA 14 and current price is below SMA 50
sellCondition = ta.crossunder(sma9, sma14) and close < sma50

// Track the time since position was opened
var float timeElapsed = na
if (buyCondition)
    timeElapsed := 0
else
    timeElapsed := na(timeElapsed[1]) ? timeElapsed[1] : timeElapsed[1] + 1

// Close the buy position after 5 minutes
if (timeElapsed >= 5)
    strategy.close("Buy")

// Track the time since position was opened
var float timeElapsedSell = na
if (sellCondition)
    timeElapsedSell := 0
else
    timeElapsedSell := na(timeElapsedSell[1]) ? timeElapsedSell[1] : timeElapsedSell[1] + 1

// Close the sell position after 5 minutes
if (timeElapsedSell >= 5)
    strategy.close("Sell")

// Plot the SMAs on the chart
plot(sma9, title="SMA 9", color=color.blue)
plot(sma14, title="SMA 14", color=color.red)
plot(sma50, title="SMA 50", color=color.green)  // Plot SMA 50 on the chart

// Strategy entry and exit conditions using if statements
if (buyCondition)
    strategy.entry("Buy", strategy.long)

if (sellCondition)
    strategy.entry("Sell", strategy.short)


Mehr