Strategie für die Übertragung von doppelten gleitenden Durchschnitten

Schriftsteller:ChaoZhang, Datum: 2024-01-31 11:29:45
Tags:

img

Übersicht

Dies ist eine Handelsstrategie, die auf einem doppelten gleitenden Durchschnitts-Crossover basiert. Es erzeugt Kauf- und Verkaufssignale, wenn sich zwei gleitende Durchschnittswerte unterschiedlicher Länge kreuzen.

Strategie Logik

Die Kernlogik dieser Strategie liegt in den Crossover-Prinzipien zwischen zwei gleitenden Durchschnitten. Ein gleitender Durchschnitt ist der arithmetische Durchschnittspreis über einen bestimmten Zeitraum. Er hilft, Marktlärm zu filtern und deutliche Preistrends aufzudecken.

In dieser Strategie erfasst die kurzfristige MA kurzfristige Trends, während die längerfristige MA langfristige Trends erfasst.

Insbesondere berechnet die Strategie die MA mit ta.sma über die von den Benutzern definierten long_period und short_period. Sie verwendet dann ta.crossover und ta.crossunder, um den goldenen Crossover und den Death Crossover zwischen den beiden MA zu erkennen. Wenn der kurze MA über den langen MA überschreitet, gehen Sie lang. Wenn der kurze MA unterhalb überschreitet, gehen Sie kurz.

Vorteile

Zu den Hauptvorteilen dieser Strategie gehören:

  1. Einfache Logik, leicht zu befolgen.
  2. Anpassungsfähige Parameter, die an verschiedene Märkte angepasst werden können.
  3. Der MA-Crossover filtert Geräusche aus und erfasst die Trendumkehr.
  4. Hohe Empfindlichkeit bei der Erfassung von Kurswechselpunkten.

Risiken

Es gibt auch mehrere Risiken:

  1. Zu kleine Abstände zwischen den MAs verursachen falsche Signale.
  2. Falsche MA-Perioden verpassen wichtige Trends.
  3. Umkehrungen bedeuten nicht immer eine Trendänderung.
  4. Die Parameter müssen angepasst werden, um eine Überanpassung zu vermeiden.

Zur Verringerung der Risiken können Parameter angepasst, Stop-Loss und Take-Profit eingeführt oder andere technische Indikatoren hinzugefügt werden.

Optimierung

Es gibt Raum für weitere Optimierungen:

  1. Optimierung der adaptive MA-Perioden.
  2. Fügen Sie den Lautstärkungsfilter hinzu, um einen falschen Ausbruch zu vermeiden.
  3. Andere Indikatoren wie MACD, KDJ.
  4. Die Risikopositionen werden in der Tabelle 1 aufgeführt.
  5. Verbesserung der Codestruktur für eine bessere Skalierbarkeit.

Schlussfolgerung

Zusammenfassend ist dies eine ideale Starterstrategie für den algorithmischen Handel, dank seiner Einfachheit in Logik und Parametern, während es immer noch in der Lage ist, Marktumkehrungen effektiv zu erfassen.


/*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"}]
*/

//@version=5
strategy("Cross 2 Moving Average Strategy", shorttitle="2MA Cross", overlay=true)

// User-defined input for moving averages
long_period = input(20, title="Long Period")
short_period = input(5, title="Short Period")
type_ma = input.string("SMA", title = "MA type", options = ["SMA", "EMA"])

// Calculating moving averages
long_ma = ta.sma(close, long_period)
short_ma = ta.sma(close, short_period)

// Plot moving averages
plot(long_ma, title="Long Moving Average", color=color.red)
plot(short_ma, title="Short Moving Average", color=color.green)

// Strategy logic for crossing of moving averages
longCondition = ta.crossover(short_ma, long_ma)
shortCondition = ta.crossunder(short_ma, long_ma)

// Entry orders
if (longCondition)
    strategy.entry("Long", strategy.long)

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

// Optional: Add stop loss and take profit
stop_loss_perc = input(1, title="Stop Loss (%)") / 100
take_profit_perc = input(2, title="Take Profit (%)") / 100

strategy.exit("Exit Long", from_entry="Long", stop=close*(1-stop_loss_perc), limit=close*(1+take_profit_perc))
strategy.exit("Exit Short", from_entry="Short", stop=close*(1+stop_loss_perc), limit=close*(1-take_profit_perc))


Mehr