Trendumkehrstrategie mit doppeltem gleitenden Durchschnitt


Erstellungsdatum: 2024-01-08 11:01:11 zuletzt geändert: 2024-01-08 11:01:11
Kopie: 0 Klicks: 384
1
konzentrieren Sie sich auf
1166
Anhänger

Trendumkehrstrategie mit doppeltem gleitenden Durchschnitt

Überblick

Die Doppel-Moving-Average-Umkehrtrendstrategie ist eine Strategie, die hauptsächlich für den mittelfristigen Handel in den Devisenmärkten verwendet wird. Die Strategie verwendet zwei unterschiedliche Perioden von Moving-Averagen zur Handelssignalgeneration.

Strategieprinzip

Die Strategie verwendet zwei Zeitperioden, nämlich 1-Stunden- und 1-Tage-Moving Averages. Ein 1-Stunden-Moving Average reagiert besser auf Preisänderungen und kann als schneller Moving Average verwendet werden. Ein 1-Tage-Moving Average reagiert langsamer auf Preisänderungen und kann als langsamer Moving Average verwendet werden.

Der Grundsatz für die Einführung von Über- oder Kurzschlüssen ist, dass ein Goldkreuz oder ein Todesfork zwischen einem schnellen und einem langsamen beweglichen Durchschnitt ein Zeichen dafür ist, dass der Markt möglicherweise eine Kehrtwende erzeugt. Ein Durchbruch der schnellen Linie oder ein Durchbruch der langsamen Linie ist eine Zeit, in der ein Kehrsignal erzeugt wird.

Die Strategie setzt außerdem die Zeit- und Datumsfilterbedingungen für den Handel fest. Der Handel erfolgt nur innerhalb des festgelegten Datums und innerhalb der festgelegten Handelszeit, um den Handel in ungeeigneten Zeitabschnitten zu vermeiden.

Analyse der Stärken

Eine Trendwende mit zwei gleitenden Durchschnitten hat folgende Vorteile:

  1. Umkehrstrategien haben die Vorteile, dass sie einen großen Gewinnraum bieten. Umkehrgeschäfte ermöglichen einen höheren Gewinn in Situationen mit hoher Preisschwankung, indem sie umgekehrt an Schlüsselpunkten operieren.

  2. Die Verwendung von doppelten Moving Averages in Kombination filtert Signale, um Falschsignale zu vermeiden. Ein einzelner Indikator kann leicht falsche Signale erzeugen, während eine Kombination aus zwei Indikatoren die Reliabilität des Signals erhöht und einige falsche Signale filtert, was die Handelschancen zuverlässiger macht.

  3. Setzen Sie die Handelszeiten und -termine und vermeiden Sie die Aktivität der Märkte. Nur innerhalb der festgelegten Handelszeiten und -termine können Sie handeln, um die Zeit zu vermeiden, in der die Preise stark schwanken, um die Handelshemmnisse zu vermeiden.

  4. Die Umkehrstrategie eignet sich für den mittelfristigen Handel. Im Vergleich zum Hochfrequenzhandel ist die mittelfristige Handelsstrategie stabiler und vermeidet zu häufige Kauf- und Verkaufsgeschäfte.

  5. Maximale Rücknahme-Kontrollen sind für die Vermögensverwaltung nützlich. Die Einrichtung eines maximalen Rücknahme-Ratios kann die Overnight-Risiken gut kontrollieren und erhebliche Verluste verhindern.

Risikoanalyse

Eine Trendwende mit zwei gleitenden Durchschnitten birgt auch folgende Risiken:

  1. Ein Rückschlagsignal kann fehlschlagen und zu Verlusten führen. Ein Preisrückschlagsignal ist nicht immer zuverlässig. Wenn der Preis ohne Rückschlag weitergeht, besteht das Risiko eines Verlusts.

  2. Trend-Abweichungen führen zu Verlusten. Wenn der doppelte Moving Average bereits deutlich getrennt ist, kann es zu einem Verlustrisiko kommen. Der Zeitpunkt des Umkehrens kann durch die Beobachtung des Moving Average-Intervalls bestimmt werden.

  3. Wenn die Handelszeiten nicht richtig eingestellt sind, kann es zu verpassten Gelegenheiten kommen. Wenn die Handelszeiten zu streng eingestellt sind, können einige Handelsmöglichkeiten verpasst werden.

  4. Nach der Umkehrung kann die Verlustverhinderung nicht rechtzeitig ausgeweitet werden. Wenn der Preis nach der Umkehrung in der ursprünglichen Tendenz weiterläuft, muss die Verlustverhinderung rechtzeitig erfolgen.

Optimierungsrichtung

Die Trendwende-Strategie für zwei bewegliche Durchschnitte kann auch in folgenden Bereichen optimiert werden:

  1. Test mehr Kombinationen von Indikatoren, um bessere Handelssignale zu finden. Andere Indikatoren wie MACD, KDJ und andere können mit doppelten Moving Averages kombiniert werden, um die Genauigkeit der Signale zu verbessern.

  2. Optimieren Sie die Periodenparameter eines Moving Averages, um die optimale Parameter zu finden. Die optimale Periodenzahl kann durch Rückmessung von Parametern verschiedener Länge des Moving Averages bestimmt werden.

  3. Erweitern oder verkürzen Sie die Handelszeiten, um die besten Handelszeiten zu finden. Testen Sie die Wirksamkeit der Anpassung der Handelszeiten an die Eigenschaften der verschiedenen Sorten.

  4. Trendfilter können hinzugefügt werden, um Abweichungen zu vermeiden. Indikatoren wie die ADX können hinzugefügt werden, um Trendstärken zu beurteilen und eine Umkehrung zu vermeiden, wenn keine Trends sichtbar sind.

  5. Die Zugabe von Machine Learning-Modellen zur Signalprüfung. Modelle können trainiert werden, um die Zuverlässigkeit von Umkehrsignalen zu beurteilen und einige minderwertige Signale zu filtern.

Zusammenfassen

Die Binäre Moving Average Trend-Umkehr-Strategie ist eine Strategie, die für den Forex-Mittelfristenhandel geeignet ist. Sie verwendet schnelle Moving Averages und Gold-Kreuz-und-Stopp-Signale von schnellen Moving Averages, um Rückwärtsbewegungen an wichtigen Punkten des Marktes zu erzeugen und hat große Vorteile. Sie verwendet auch die Handelszeit und die Einstellung des maximalen Rückzugs, um das Risiko zu kontrollieren.

Strategiequellcode
/*backtest
start: 2023-12-08 00:00:00
end: 2024-01-07 00:00:00
period: 2h
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/
// © SoftKill21

//@version=4
strategy("gbpnzd 1h", overlay=true)

src = close
useCurrentRes = input(true, title="Use Current Chart Resolution?")
resCustom = input(title="Use Different Timeframe? Uncheck Box Above", type=input.resolution, defval="60")
len = input(28, title="Moving Average Length - LookBack Period")
//periodT3 = input(defval=7, title="Tilson T3 Period", minval=1) 
factorT3 = input(defval=7, title="Tilson T3 Factor - *.10 - so 7 = .7 etc.", minval=0) 
atype = input(2,minval=1,maxval=8,title="1=SMA, 2=EMA, 3=WMA, 4=HullMA, 5=VWMA, 6=RMA, 7=TEMA, 8=Tilson T3")

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 = 2020, title = "To Year", minval = 1970)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true

res = useCurrentRes ? timeframe.period : resCustom
resCustom2 = input(title="plm", type=input.resolution, defval="D")
res2 = resCustom2
//hull ma definition
hullma = wma(2*wma(src, len/2)-wma(src, len), round(sqrt(len)))
//TEMA definition
ema1 = ema(src, len)
ema2 = ema(ema1, len)
ema3 = ema(ema2, len)
tema = 3 * (ema1 - ema2) + ema3

//Tilson T3
factor = factorT3 *.10
gd(src, len, factor) => ema(src, len) * (1 + factor) - ema(ema(src, len), len) * factor 
t3(src, len, factor) => gd(gd(gd(src, len, factor), len, factor), len, factor) 
tilT3 = t3(src, len, factor) 
 

avg = atype == 1 ? sma(src,len) : atype == 2 ? ema(src,len) : atype == 3 ? wma(src,len) : atype == 4 ? hullma : atype == 5 ? vwma(src, len) : atype == 6 ? rma(src,len) : atype == 7 ? 3 * (ema1 - ema2) + ema3 : tilT3

out = avg 

ema20 = security(syminfo.tickerid, res, out)



plot3 = security(syminfo.tickerid, res2, ema20)

plot33 = security(syminfo.tickerid, res, ema20)

plot(plot3,linewidth=2,color=color.red) 
plot(plot33,linewidth=2,color=color.white) 

// longC = crossover(close[2], plot3) and close[1] > close[2] and close > close[1]
// shortc = crossunder(close[2],plot3)  and close[1] < close[2] and close < close[1]

volumeMA=input(24)
ema_1 = ema(volume, volumeMA)

timeinrange(res, sess) => time(res, sess) != 0
//entrytime = timeinrange(timeframe.period, "0900-0915")

myspecifictradingtimes = input('0900-2300', type=input.session, title="My Defined Hours")


entrytime = time(timeframe.period, myspecifictradingtimes) != 0

longC = crossover(plot33,plot3)  and time_cond and entrytime
shortc = crossunder(plot33,plot3) and time_cond and entrytime

// exitlong = crossunder(plot33,plot3)
// exitshort = crossover(plot33,plot3)

distanta=input(1.0025)
exitshort = plot33/plot3 > distanta
exitlong  = plot3/plot33 > distanta

inverse = input(true)
exit = input(false)
if(inverse==false)

    strategy.entry("long",1,when=longC)
    strategy.entry("short",0,when=shortc)
if(inverse)
    strategy.entry("long",1,when=shortc)
    strategy.entry("short",0,when=longC)

if(exit)
    strategy.close("long",when=exitlong)
    strategy.close("short",when=exitshort)

// if(dayofweek==dayofweek.friday)
//     strategy.close_all()

// risk = input(25)
// strategy.risk.max_intraday_loss(risk, strategy.percent_of_equity)