Diese Strategie verwendet gleitende Durchschnitte und tatsächliche Durchschnittsbereiche, um die Markttrendrichtung für den Trendverfolgungshandel zu bestimmen.
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.
Die Vorteile dieser Strategie sind:
Die wichtigsten Risiken dieser Strategie sind:
Lösungen:
Die Strategie kann aus folgenden Gesichtspunkten optimiert werden:
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()