Trendverfolgungsstrategie auf Basis des gleitenden Durchschnitts und des realen Durchschnittsbereichs

Schriftsteller:ChaoZhang, Datum: 2024-01-12 11:14:01
Tags:

img

Übersicht

Diese Strategie verwendet gleitende Durchschnitte und tatsächliche Durchschnittsbereiche, um die Markttrendrichtung für den Trendverfolgungshandel zu bestimmen.

Grundsätze

Diese Strategie verwendet den gleitenden Durchschnitt der einzelnen Perioden und das zweimal so hohe tatsächliche Durchschnittsintervall der einzelnen Perioden, um die Marktentwicklung zu bestimmen.

Wenn das Tief größer ist als der gleitende Durchschnitt plus der durchschnittliche wahre Bereich (Tief > ma + atr), wird es als Aufwärtstrend beurteilt. Wenn das Höchstmaß kleiner ist als der gleitende Durchschnitt minus der durchschnittlichen wahren Bandbreite (höchst < ma - atr), wird es als Abwärtstrend beurteilt.

In anderen Fällen wird das vorangegangene Urteil beibehalten.

Wenn ein Aufwärtstrend festgestellt wird, gehen Sie bei einem bestimmten Prozentsatz lang, wenn es erlaubt ist, lang zu gehen. Wenn ein Abwärtstrend festgestellt wird, gehen Sie bei einem bestimmten Prozentsatz kurz, wenn Sie kurz gehen dürfen.

Die Schlusskondition besteht darin, das angegebene Handelsende zu erreichen.

Analyse der Vorteile

Die Vorteile dieser Strategie sind:

  1. Verwenden Sie gleitenden Durchschnitt, um die allgemeine Trendrichtung zu bestimmen und sich nicht durch kurzfristige Marktschwankungen irrezuführen.
  2. Bei der Einstellung eines dynamischen Stopp-Losses, der zur Risikokontrolle beiträgt, wird der durchschnittliche wahre Bereich verwendet.
  3. Kann Trendchancen rechtzeitig nach dem Trend erfassen, mit hohem Gewinnpotenzial.
  4. Einfache und einfach zu bedienende Regeln.

Risikoanalyse

Die wichtigsten Risiken dieser Strategie sind:

  1. Es ist anfällig für mehrfache Verluste in einem stark schwankenden Markt.
  2. Da man Trends umkehren kann, besteht die Gefahr, Höchststände zu verfolgen und Tiefstände zu vernichten.
  3. Bei falschen Einstellungen von Parametern mit durchschnittlichem wahren Bereich kann es zu zu lockeren oder zu strengen Ausgangspunkten kommen.

Lösungen:

  1. Die gleitenden Durchschnittsparameter sind entsprechend anzupassen, um stabilere Parameter zu verwenden.
  2. Bestätigen Sie Signale mit anderen Indikatoren, um Höhen zu verfolgen und Tiefs zu töten.
  3. Optimieren und testen Sie die tatsächlichen Durchschnittsparameter, um geeignete Parameter festzulegen.

Optimierungsrichtlinien

Die Strategie kann aus folgenden Gesichtspunkten optimiert werden:

  1. Verschiedene gleitende Durchschnittssysteme testen, um stabilere Parameterkombinationen zu finden.
  2. Hinzufügen anderer Hilfsindikatoren zur Beurteilung der Zuverlässigkeit der Signale.
  3. Testen Sie die durchschnittlichen wahren Bereichsparameter, um die optimalen Parameter zu finden.
  4. Optimierung der Kapitalnutzung durch Hebelwirkung zur Steigerung der Kapitalrendite.
  5. Kombination von maschinellem Lernen und anderen Methoden zur Erreichung einer dynamischen Parameteroptimierung.

Zusammenfassung

Die allgemeine Idee dieser Strategie ist klar und leicht zu verstehen. Sie verwendet gleitende Durchschnitte, um die Trendrichtung zu bestimmen, und verwendet den durchschnittlichen wahren Bereich, um Stopps zu setzen. Sie kann Trends effektiv verfolgen. Es gibt jedoch bestimmte Risiken und es ist eine weitere Optimierung der Parameter-Einstellungen und das Hinzufügen anderer Beurteilungsindikatoren erforderlich. Im Allgemeinen bietet diese Strategie einen praktikablen Ansatz für den Trend-Tracking-Handel.


/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//2019
//Noro

//@version=4
strategy(title = "Noro's MA+ATR Strategy", shorttitle = "MA+ATR str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
len = input(30, minval = 2, title = "MA Length")
src = input(ohlc4, title = "MA Source")
limitmode = input(false)
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//MA + BG
atr = sma(tr, len) * 2
ma = sma(src, len)
plot(ma, color = color.blue, linewidth = 4)
trend = 0
trend := low > ma + atr ? 1 : high < ma - atr ? -1 : trend[1]
col = trend == 1 ? color.lime : color.red
bgcolor(col, transp = 70)

//Trading
lot = 0.0
lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]
if trend == 1 and limitmode == false
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
if trend == -1 and limitmode == false
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
if trend == 1 and limitmode
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
if trend == -1 and limitmode
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
// if time > timestamp(toyear, tomonth, today, 23, 59)
//     strategy.close_all()

Mehr