
Die Dual Moving Average Trend Tracking Strategy ist eine quantitative Trading-Strategie, die eine Kombination aus schnellen Moving Averages und langsamen Moving Averages verwendet, um die Richtung des Trends zu bestimmen, und die K-Line-Entity-Farbe als Einstiegssignal kombiniert. Die Strategie hat die Eigenschaft, sowohl Trends zu verfolgen als auch zu handeln.
Die Strategie nutzt einen langsamen Moving Average mit einer Länge von 20 um die Richtung des Gesamttrends zu bestimmen, der als Aufwärtstrend beurteilt wird, wenn der Preis aufsteigt, und als Abwärtstrend, wenn der Preis untergeht. Die Strategie nutzt auch einen schnellen Moving Average mit einer Länge von 5 als Einstiegsfilter, der nur dann einen Handel auslöst, wenn der Preis den schnellen Moving Average durchbricht.
Die Strategie analysiert die Informationen in drei Dimensionen: Gesamttrend, kurzfristige Durchschnittslinie und K-Linie-Einheit, wodurch die Zuverlässigkeit des Handelssignals erhöht wird. Das Handelssignal wird erst ausgegeben, wenn die drei Richtungen übereinstimmen, wodurch ein Teil des Rauschs wirksam gefiltert wird.
Es bietet die Möglichkeit, Trends zu verfolgen und umgekehrt zu handeln, und kann sich an unterschiedliche Marktbedingungen anpassen.
Das ist eine sehr einfache Methode, um falsche Signale zu filtern und die Gewinnrate zu erhöhen.
Die Parameter können optimiert werden, indem die Länge des gleitenden Durchschnitts, die Farbe der K-Linien, die Anzahl der Wurzeln, etc. angepasst werden.
Die Strategie ist klar und einfach zu verstehen und für Anfänger geeignet.
Bei starken Erschütterungen kann leicht eine Osing-Streak gebildet werden, was zu einem größeren Rückzug führt. Die Moving Average-Parameter können entsprechend angepasst oder ein Stop-Loss hinzugefügt werden, um dies zu vermeiden.
In der Horizontal-Sortierung-Phase kann leicht eine Whipsaw gebildet werden, was zu Verlusten führt. Die Wurzeln der K-Linien-Entität können entsprechend angepasst werden, um die Farbe zu beurteilen, oder der Umkehrhandel kann geschlossen werden.
Es muss eine ausreichende Rückvergleiche durchgeführt werden, um sicherzustellen, dass die Parameter angemessen eingestellt sind, da dies die Performance der Strategie erheblich beeinträchtigen kann.
Versuchen Sie mit verschiedenen Arten von Moving Averages, wie dem Index Moving Average, dem Kaufman Adaptive Moving Average usw.
Erhöhung der Handelsvolumen-Kontrollen, wie z. B. die Festlegung des Handelsvolumens oder die Anpassung an die Konto-Interessen.
Erhöhung der Stop-Loss-Mechanismen. Ein Stop-Out kann in Betracht gezogen werden, wenn der Preis wieder unter den langsamen gleitenden Durchschnitten fällt.
Es ist möglich, verschiedene Sorten zu testen, um die Stabilität und Anpassungsfähigkeit der Strategie zu beurteilen.
Die Dual-Moving-Even-Line-Trend-Tracking-Strategie kombiniert Trend-Urteilen und Umkehrhandel, um den Überschuss des mittleren und langen Trends effektiv zu erfassen und zusätzliche Gewinne auf den kurzen Linien zu erzielen. Durch die Optimierung der Parameter und die Verbesserung der Mechanismen kann der Gewinnspielraum weiter erweitert werden. Die Strategie ist einfach und klar in der Logik und eignet sich hervorragend für Anfängerstudien.
/*backtest
start: 2024-01-04 00:00:00
end: 2024-02-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy(title = "Noro's Trend MAs 1.5", shorttitle = "Trend MAs 1.5", 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")
type = input(7, defval = 7, minval = 1, maxval = 7, title = "Type of Slow MA")
src = input(close, defval = close, title = "Source of Slow MA")
usefastsma = input(true, "Use fast MA Filter")
fastlen = input(5, defval = 5, minval = 1, maxval = 50, title = "fast MA Period")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "slow MA Period")
bars = input(2, defval = 2, minval = 0, maxval = 3, title = "Bars Q")
fastsma = ema(src, fastlen)
//DEMA
dema = 2 * ema(src, len) - ema(ema(close, len), len)
//TEMA
xPrice = close
xEMA1 = ema(src, len)
xEMA2 = ema(xEMA1, len)
xEMA3 = ema(xEMA2, len)
tema = 3 * xEMA1 - 3 * xEMA2 + xEMA3
//KAMA
xvnoise = abs(src - src[1])
nfastend = 0.20
nslowend = 0.05
nsignal = abs(src - src[len])
nnoise = sum(xvnoise, len)
nefratio = iff(nnoise != 0, nsignal / nnoise, 0)
nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2)
kama = nz(kama[1]) + nsmooth * (src - nz(kama[1]))
//PriceChannel
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2
//Trend
ma = type == 1 ? sma(src, len) : type == 2 ? ema(src, len) : type == 3 ? vwma(src, len) : type == 4 ? dema : type == 5 ? tema : type == 6 ? kama : type == 7 ? center : 0
trend = low > ma ? 1 : high < ma ? -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
//Signals
up = trend == 1 and (low < fastsma or usefastsma == false) and redbars == 1 ? 1 : 0
dn = trend == -1 and (high > fastsma or usefastsma == false) and greenbars == 1 ? 1 : 0
//Lines
colorfastsma = usefastsma == true ? red : na
plot(fastsma, color = colorfastsma, title = "Fast MA")
plot(ma, color = blue, linewidth = 3, transp = 0, title = "Slow MA")
//Trading
longCondition = up == 1
if (longCondition)
strategy.entry("Long", strategy.long, needlong == false ? 0 : na)
shortCondition = dn == 1
if (shortCondition)
strategy.entry("Short", strategy.short, needshort == false ? 0 : na)