Diese Strategie verwendet eine Kombination aus schnellen und langsamen gleitenden Durchschnitten, um die Trendrichtung zu bestimmen und die mittelfristigen bis langfristigen Trends für den Trendhandel zu erfassen.
Die Strategie stützt sich hauptsächlich auf das goldene Kreuz und das Todeskreuz der gleitenden Durchschnitte, um Markttrends zu bestimmen.
Wenn der schnelle MA über den langsamen MA überschreitet, signalisiert dies einen Aufwärtstrend auf dem Markt, und die Strategie wird bei der Öffnung der nächsten Bar lang gehen.
Darüber hinaus ist der
Für den Kryptohandel beinhaltet die Strategie auch eine extreme Wertlogik - nur wenn sowohl schnelle als auch langsame MAs extreme Bereiche erreichen, werden Handelssignale ausgelöst.
Die Exit-Regel ist einfach und direkt - Schließposition, wenn der Stop-Loss erreicht wird.
Die Risiken können verringert werden, indem
Die Strategie kann in folgenden Aspekten verbessert werden:
Test mehr MA-Kombinationen, um die optimalen Parameter für den aktuellen Markt zu finden, z. B. 10-Perioden-schnelle MA und 50-Perioden-langsamere MA.
Test, bei dem MACD, KDJ und andere Indikatoren addiert werden, um strengere Einstiegsregeln festzulegen und falsche Signale zu vermeiden.
Der derzeitige einfache doppelte MA-Eintrag kann erweitert werden:
Testen Sie andere Stoppmechanismen, wie z. B. einen Rückhalt, um einen vorzeitigen Stopp zu vermeiden.
Erlaubt erneute Eintritte nach Stopps, um zu vermeiden, dass Trends übersehen werden.
Zusammenfassend lässt sich sagen, dass diese grundlegende Trendfolgestrategie eine einfache und unkomplizierte Logik aufweist - die Verwendung von doppelten MAs für die Trendrichtung und beweglichen Stopps für das Risikomanagement. Die Vorteile sind leicht zu verstehen, können von Trends profitieren und Risiken verwalten. Aber es gibt auch Einschränkungen, wie schlechte Signale während von Konsolidierungen, vorzeitige Stopps usw. Live-Tuning und Optimierung sind erforderlich, wie das Hinzufügen von Filtern, das Anpassen von Stopps, um sie an unterschiedliche Marktumgebungen anpassbar zu machen. Als einführende Trendhandelsstrategie ist sie für Anfänger geeignet, sie zu lernen und anzuwenden. Aber ihre Einschränkungen sollten beachtet werden und fortgeschrittene Strategien sollten erforscht werden. Nur durch kontinuierliche Verbesserungen kann man nachhaltige Gewinne in ständig wechselnden Märkten erzielen.
/*backtest start: 2023-08-21 00:00:00 end: 2023-09-20 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title = "Noro's Trend MAs Strategy v2.3", shorttitle = "Trend MAs str 2.3", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0) //Settings needlong = input(true, "long") needshort = input(true, "short") needstops = input(false, "stops") stoppercent = input(5, defval = 5, minval = 1, maxval = 50, title = "Stop, %") usefastsma = input(true, "Use fast MA Filter") fastlen = input(5, defval = 5, minval = 1, maxval = 50, title = "fast MA Period") slowlen = input(21, defval = 20, minval = 2, maxval = 200, title = "slow MA Period") bars = input(2, defval = 2, minval = 0, maxval = 3, title = "Bars Q") needbg = input(false, defval = false, title = "Need trend Background?") needex = input(true, defval = true, title = "Need extreme? (crypto/fiat only!!!)") 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") src = close //PriceChannel 1 lasthigh = highest(src, slowlen) lastlow = lowest(src, slowlen) center = (lasthigh + lastlow) / 2 //PriceChannel 2 lasthigh2 = highest(src, fastlen) lastlow2 = lowest(src, fastlen) center2 = (lasthigh2 + lastlow2) / 2 //Trend trend = low > center and low[1] > center[1] ? 1 : high < center and high[1] < center[1] ? -1 : trend[1] //Bars bar = close > open ? 1 : close < open ? -1 : 0 redbars = bars == 0 ? 1 : bars == 1 and bar == -1 ? 1 : bars == 2 and bar == -1 and bar[1] == -1 ? 1 : bars == 3 and bar == -1 and bar[1] == -1 and bar[2] == -1 ? 1 : 0 greenbars = bars == 0 ? 1 : bars == 1 and bar == 1 ? 1 : bars == 2 and bar == 1 and bar[1] == 1 ? 1 : bars == 3 and bar == 1 and bar[1] == 1 and bar[2] == 1 ? 1 : 0 //Fast RSI fastup = rma(max(change(close), 0), 2) fastdown = rma(-min(change(close), 0), 2) fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown)) //CryptoBottom mac = sma(close, 10) len = abs(close - mac) sma = sma(len, 100) max = max(open, close) min = min(open, close) //Signals up1 = trend == 1 and (low < center2 or usefastsma == false) and redbars == 1 dn1 = trend == -1 and (high > center2 or usefastsma == false) and greenbars == 1 up2 = high < center and high < center2 and bar == -1 and needex dn2 = low > center and low > center2 and bar == 1 and needex up3 = close < open and len > sma * 3 and min < min[1] and fastrsi < 10 ? 1 : 0 //Lines plot(center2, color = red, linewidth = 3, transp = 0, title = "Fast MA") plot(center, color = blue, linewidth = 3, transp = 0, title = "Slow MA") //Background col = needbg == false ? na : trend == 1 ? lime : red bgcolor(col, transp = 80) //Trading stoplong = up1 == 1 and needstops == true ? close - (close / 100 * stoppercent) : stoplong[1] stopshort = dn1 == 1 and needstops == true ? close + (close / 100 * stoppercent) : stopshort[1] if up1 or up2 or up3 strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) strategy.exit("Stop Long", "Long", stop = stoplong) if dn1 strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) strategy.exit("Stop Short", "Short", stop = stopshort) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all()