
Es handelt sich um eine quantitative Handelsstrategie, die auf doppelte Gleichlinien-Kreuzsignale basiert. Die Strategie verwendet zwei Moving Averages, einen als Hauptsignallinie und einen anderen als Gleitsignallinie. Sie erzeugt Handelssignale durch die Überwachung der Kreuzung von Preisen und Gleitsignallinien, um Markttrends zu erfassen und die Dynamik zu verfolgen.
Die Strategie verwendet zwei Ebenen der Moving-Average-Berechnung. Zuerst wird ein Basis-Moving-Average berechnet (die Standard-Periode ist 9), der dann zweimal abgeflacht wird (die Standard-Periode ist 5). Die Strategie bietet verschiedene Methoden zur Berechnung von Ebenen an, darunter einfache Moving-Averagen (SMA), Index-Moving-Averagen (EMA), Flat-Sliding-Averagen (SMMA), Gewichts-Weighted-Moving-Averagen (WMA) und Volumen-Weighted-Moving-Averagen (VWMA).
Dies ist eine verbesserte Version der klassischen Trend-Tracking-Strategie, die durch die Gestaltung von zwei Ebenen von Moving Averages die Stabilität erhöht, während die Einfachheit der Strategie beibehalten wird. Die Strategie hat eine gute Skalierbarkeit und Flexibilität, kann sich an unterschiedliche Marktumgebungen anpassen, indem sie die Parameter optimiert und die Funktionen erweitert wird.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Moving Average 1.0 Strategy", overlay=true)
// Input for Moving Average Length
len = input.int(9, minval=1, title="Length")
src = input(close, title="Source")
offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)
// Calculate the Moving Average
out = ta.sma(src, len)
// Plot the Moving Average
plot(out, color=color.blue, title="MA", offset=offset)
// Function to choose the type of moving average
ma(source, length, type) =>
switch type
"SMA" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
// Input for Smoothing Method and Length
typeMA = input.string(title="Method", defval="SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Smoothing")
smoothingLength = input.int(title="Smoothing Length", defval=5, minval=1, maxval=100, group="Smoothing")
// Calculate the Smoothing Line
smoothingLine = ma(out, smoothingLength, typeMA)
// Plot the Smoothing Line
plot(smoothingLine, title="Smoothing Line", color=color.rgb(120, 66, 134, 35), offset=offset)
// Strategy Logic
if (ta.crossover(close, smoothingLine))
strategy.entry("Buy", strategy.long)
if (ta.crossunder(close, smoothingLine))
strategy.entry("Sell", strategy.short)