
Die Strategie ist eine Swing-Strategie, die für trendige Märkte wie Kryptowährungen und Aktien verwendet wird. Die Strategie verwendet mehrere Moving Averages, darunter SMA, EMA, VWMA, ALMA, SMMA, LSMA und VWMA, die jeweils für Höhen und Tiefen verwendet werden, um zwei Durchschnittskanäle zu bilden.
Wenn der Schlusskurs höher ist als der Mittelwert, der für die Höchststände angewendet wird, ist ein Plus zu machen; wenn der Schlusskurs niedriger ist als der Mittelwert, der für die Tiefstände angewendet wird, ist ein Minus zu machen.
Die Strategie verwendet sieben verschiedene Moving Average-Indikatoren, darunter SMA, EMA, VWMA, ALMA, SMMA, LSMA und VWMA. Diese Moving Averages werden jeweils auf den Höchst- und den Tiefstpreis der K-Linie angewendet, um zwei Mittelwerte zu erzeugen.
Der Mittelwert, der für den höchsten Preis verwendet wird, wird als “avg_high” bezeichnet, der Mittelwert, der für den niedrigsten Preis verwendet wird, als “avg_low”. Die beiden Mittelwerte bilden einen Kanal.
Wenn der Schlusskurs größer ist als der durchschnittliche Höchstwert, wird ein Plus getätigt; wenn der Schlusskurs niedriger ist als der durchschnittliche niedrige Wert, wird ein Minus getätigt.
Der Stop-Loss-Wert wird als Avg_low und der Stop-Loss-Wert als Startpreis bezeichnet.(1+tp_long); Stop-Line ist der Startpreis der Position und Stop-Line ist der Startpreis der Position(1-tp_short)。
Der größte Vorteil dieser Strategie besteht darin, dass die Gewinnwahrscheinlichkeit durch die Verwendung mehrerer Moving-Average-Indikatoren erhöht wird. Moving-Average-Indikatoren mit unterschiedlichen Perioden und Berechnungsmethoden reagieren unterschiedlich schnell auf die Preise und können in Kombination zu einem zuverlässigeren Handelssignal verwendet werden.
Ein weiterer Vorteil besteht darin, dass der Handel mit einem Channel-Methode durchgeführt wird. Auf- und Abwärtskanäle begrenzen den Stop-Loss-Bereich und verringern das Risiko, was für eine Swing-Strategie geeignet ist.
Es gibt zwei große Risiken bei dieser Strategie:
Es werden verschiedene Kombinationen von Moving Average-Indikatoren verwendet, wobei die Parameter eingestellt werden müssen, was eine Menge Tests und Optimierungen erfordert, um die optimale Kombination zu finden.
In horizontalen und nicht eindeutig trendigen Märkten kann diese Strategie zu Verlusten führen und zu mehreren unwirksamen Durchbrüchen führen.
Um diese Risiken zu verringern, ist es notwendig, trendige Handelsarten auszuwählen und gleichzeitig die Parameterkombinationen intensiv zu testen und zu optimieren, um die Parameter-Sätze zu finden, die für die aktuellen Marktsituationen am besten geeignet sind.
Die Strategie erfordert auch Optimierungen in folgenden Bereichen:
Test mehr Arten von Moving Averages, um bessere Kombinationen zu finden. Sie können SMA, EMA, KAMA, TEMA usw. in Betracht ziehen.
Parameteroptimierung für die Länge des Moving Averages und die Breite der Kanäle, um die optimalen Parameter-Einstellungen zu finden.
Verschiedene Stop-Loss-Einstellungen können getestet werden. Ein Trailing Stop oder ein dynamischer Stop-Loss können in Betracht gezogen werden.
Vermeiden Sie häufigen Handel in Märkten ohne eindeutige Trends, z. B. ADX, ATR usw.
Optimierung der Entry- und Exit-Logik, zusätzliche Filterbedingungen und weniger ungültige Transaktionen.
Diese Strategie ist eine Swing-Trend-Tracking-Strategie, die die Probabilität von Gewinnen durch verschiedene bewegliche Durchschnittsindikatoren erhöht und das Risiko durch einen Auf- und Abwärtskanal verringert. Die Strategie ist für handelsübliche Handelsarten geeignet, die deutlich trendiger sind, und wirkt nach Optimierung der Parameter besser.
/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © exlux99
//@version=4
strategy(title="High/Low channel swing", shorttitle="Multi MA swing", overlay=true)
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2000, title = "From Year", minval = 1970)
//monday and session
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2021, title = "To Year", minval = 1970)
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
//////
length_ma= input(defval=12, title="Length Moving averages", minval=1)
////////////////////////////////SETUP///////////////////////////////////////////
sma_high = sma(high, length_ma)
ema_high = ema(high, length_ma)
wma_high = wma(high, length_ma)
alma_high = alma(high,length_ma, 0.85, 6)
smma_high = rma(high,length_ma)
lsma_high = linreg(high, length_ma, 0)
vwma_high = vwma(high,length_ma)
avg_high = (sma_high+ema_high+wma_high+alma_high+smma_high+lsma_high+vwma_high)/7
///////////////////////////////////////////
sma_low = sma(low, length_ma)
ema_low = ema(low, length_ma)
wma_low = wma(low, length_ma)
alma_low = alma(low,length_ma, 0.85, 6)
smma_low = rma(low,length_ma)
lsma_low = linreg(low, length_ma, 0)
vwma_low = vwma(low,length_ma)
avg_low = (sma_low+ema_low+wma_low+alma_low+smma_low+lsma_low+vwma_low)/7
////////////////////////////PLOTTING////////////////////////////////////////////
plot(avg_high , title="avg", color=color.green, linewidth = 4)
plot(avg_low , title="avg", color=color.red, linewidth = 4)
long= close > avg_high
short = close < avg_low
tplong=input(0.06, title="TP Long", step=0.01)
sllong=input(0.05, title="SL Long", step=0.01)
tpshort=input(0.045, title="TP Short", step=0.01)
slshort=input(0.05, title="SL Short", step=0.01)
if(time_cond)
strategy.entry("long",1,when=long)
strategy.exit("closelong", "long" , profit = close * tplong / syminfo.mintick, loss = close * sllong / syminfo.mintick, alert_message = "closelong")
strategy.close("long", when=crossunder(low,avg_low))
strategy.entry("short",0,when=short)
strategy.exit("closeshort", "short" , profit = close * tpshort / syminfo.mintick, loss = close * slshort / syminfo.mintick, alert_message = "closeshort")
strategy.close("short",when=crossover(high,avg_high))