Strategie für den Ausbruch von mehreren gleitenden Durchschnitten

Schriftsteller:ChaoZhang, Datum: 2023-11-22 13:41:38
Tags:

img

Übersicht

Diese Strategie erzeugt Handelssignale basierend auf dem Durchbruch und dem Rückruf mehrerer gleitender Durchschnittslinien.

Strategie Logik

Der Code verwendet 4 gleitende Durchschnittslinien mit unterschiedlichen Perioden - 21-Tage, 50-Tage, 100-Tage und 200-Tage. Er tritt in Long-Positionen ein, wenn der Preis diese MA-Linien durchbricht und in Short-Positionen eintritt, wenn der Preis unter diese MA-Linien fällt. Darüber hinaus werden Stop-Loss- und Take-Profit-Level in der Strategie festgelegt. Insbesondere wird der Stop-Loss in der Nähe des tiefsten Punktes der vorherigen Kerze gesetzt, und der Take-Profit wird auf das 3-fache der Entfernung zwischen dem tiefsten Punkt und dem höchsten Punkt der vorherigen Kerze gesetzt.

Der Kerngedanke dieser Strategie besteht darin, den Trend mit gleitenden Durchschnitten zu beurteilen. Wenn der Preis durch die aufwärts gerichteten MA-Linien bricht, zeigt dies einen Aufwärtstrend an, so dass er lang gehen sollte. Wenn der Preis unter die abwärts gerichteten MA-Linien fällt, zeigt er einen Abwärtstrend an, so dass er kurz gehen sollte. Die Verwendung mehrerer MA-Linien mit verschiedenen Perioden kann den Trend genauer beurteilen und auch Handelssignale durch Konsistenz des Trends überprüfen.

Analyse der Vorteile

Die wichtigsten Vorteile dieser Strategie sind:

  1. Die Verwendung mehrerer MAs kann falsche Signale effektiv filtern
  2. Die Einstellung von Stop-Loss und Take-Profit kann Einzelverluste begrenzen
  3. Einfach umzusetzen

Risikoanalyse

Die wichtigsten Risiken dieser Strategie sind:

  1. Die MA-Strategien sind anfällig für Fehlausrichtung und vermissen somit Preisumkehrpunkte
  2. Durchbruch falsche Signale können Verluste verursachen
  3. Unzulässige Stop-Loss- und Take-Profit-Einstellungen können Verluste verstärken

Diese Risiken können reduziert werden, indem die MA-Parameter angepasst und Stop-Loss und Take-Profit optimiert werden.

Optimierung

Diese Strategie kann in folgenden Aspekten optimiert werden:

  1. Testen Sie mehr MA-Kombinationen, um optimale Parameter zu finden
  2. Hinzufügen anderer Indikatoren, um falsche Ausbrüche zu vermeiden
  3. Optimieren Sie Stop-Loss und Gewinngewinn für ein besseres Risiko-Rendite-Verhältnis
  4. Anpassung der Parameter an die unterschiedlichen Marktbedingungen, um die Strategie zu stärken

Zusammenfassung

Im Allgemeinen ist dies ein typischer Trend nach der Strategie. Die Vorteile sind klare Logik und leicht zu verstehen und umzusetzen. Der Nachteil ist, dass sie anfällig für falsche Signale ist. Die Strategie kann durch Parameter-Tuning und Hinzufügen anderer Indikatoren verbessert werden. Sie eignet sich für mittelfristige bis langfristige Holdings und kann auch als Bestandteil von kurzfristigen Handelsstrategien verwendet werden.


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

//@version=5
strategy("DolarBasar by AlperDursun", shorttitle="DOLARBASAR", overlay=true)

// Input for Moving Averages
ma21 = ta.sma(close, 21)
ma50 = ta.sma(close, 50)
ma100 = ta.sma(close, 100)
ma200 = ta.sma(close, 200)

// Calculate the lowest point of the previous candle for stop loss
lowestLow = ta.lowest(low, 2)

// Calculate the highest point of the previous candle for stop loss
highestHigh = ta.highest(high, 2)

// Calculate take profit levels
takeProfitLong = lowestLow - 3 * (lowestLow - highestHigh)
takeProfitShort = highestHigh + 3 * (lowestLow - highestHigh)

// Entry Conditions
longCondition = ta.crossover(close, ma21) or ta.crossover(close, ma50) or ta.crossover(close, ma100) or ta.crossover(close, ma200)
shortCondition = ta.crossunder(close, ma21) or ta.crossunder(close, ma50) or ta.crossunder(close, ma100) or ta.crossunder(close, ma200)

// Stop Loss Levels
stopLossLong = lowestLow * 0.995
stopLossShort = highestHigh * 1.005

// Exit Conditions
longExitCondition = low < stopLossLong or high > takeProfitLong
shortExitCondition = high > stopLossShort or low < takeProfitShort

if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)

if (longExitCondition)
    strategy.exit("Long Exit", from_entry="Long", stop=stopLossLong, limit=takeProfitLong)

if (shortExitCondition)
    strategy.exit("Short Exit", from_entry="Short", stop=stopLossShort, limit=takeProfitShort)


Mehr