Trend nach einer auf gleitenden Durchschnitten basierenden Strategie

Schriftsteller:ChaoZhang, Datum: 2023-11-27 15:57:15
Tags:

img

Übersicht

Es verwendet den Ichimoku Cloud-Indikator, um die Trendrichtung zu bestimmen, kombiniert mit dem 200-Tage- gleitenden Durchschnitt, um Signale zu filtern und so den Trend zu verfolgen.

Strategieprinzip

Die Strategie verwendet hauptsächlich die Konversionslinie und die Basislinie der Ichimoku Cloud, um die Trendrichtung zu beurteilen. Die Konversionslinie ist der 9-tägige Medianpreisdurchschnitt und die Basislinie ist der 26-tägige Medianpreisdurchschnitt. Ein Kaufsignal wird erzeugt, wenn die Konversionslinie über die Basislinie überschreitet und ein Verkaufssignal, wenn sie darunter überschreitet.

Die Strategie verwendet auch den 200-Tage- gleitenden Durchschnitt, um Signale zu filtern. Nur wenn der Schlusskurs über der 200-Tage-Linie liegt, wird ein Kaufsignal ausgelöst. Dies filtert die meisten falschen Signale aus.

Auf der Ausstiegsseite verwendet die Strategie einfach die Umwandlungslinie, die unter der Basislinie kreuzt, als Schlusssignal.

Analyse der Vorteile

Die Strategie kombiniert den Trendbeurteilungsindikator Ichimoku Cloud und den langfristigen Trendfilterindikator 200-Tage-Linie, der Trends effektiv verfolgen und die meisten falschen Signale herausfiltern kann.

Diese Strategie kann im Vergleich zur ausschließlichen Verwendung gleitender Durchschnitte Trendwendepunkte besser erfassen und die Positionen rechtzeitig anpassen.

Risikoanalyse

Die Strategie stützt sich hauptsächlich auf die Ichimoku Cloud, um die Trendrichtung zu bestimmen, was selbst auch falsche Signale erzeugen könnte.

Darüber hinaus könnten unsachgemäße Parameter-Einstellungen auch zu schlechter Strategieleistung führen. Wenn der Konversionslinieparameter zu kurz ist, bilden sich leicht falsche Signale; wenn der Basislinieparameter zu lang ist, verschlechtert sich der Tracking-Effekt. Parameter-Tuning für das Gleichgewicht ist erforderlich.

Optimierungsrichtlinien

Überlegen Sie, andere Indikatoren einzubeziehen, um die Signalqualität zu verbessern, z. B. den KDJ-Indikator, um Signale in überkauften/überverkauften Bereichen zu filtern, oder verwenden Sie den ATR-Indikator, um einen Stop-Loss festzulegen.

Auf der Parameterseite testen Sie mehr Kombinationen, wie z. B. die Anpassung des Konversionslinienparameters auf 5 oder 7 Tage für empfindlichere Handelssignale.

Darüber hinaus sollten Sie die Strategie unter bestimmten volatilen Umgebungen deaktivieren, um die Auswirkungen von wildem Schwanken zu vermeiden.

Schlussfolgerung

Die Strategie integriert die Vorteile von Trendbeurteilungen und langfristigen Filterindikatoren, die mittelfristige und langfristige Trends effektiv verfolgen können. In der Zwischenzeit müssen Parameter-Einstellungen und Risikokontrollmaßnahmen auch kontinuierlich optimiert werden, um falsche Signale und Auswirkungen von Schwankungen zu reduzieren. Insgesamt hat die Strategie eine anständige Leistung und einen praktischen Wert für den tatsächlichen Handel.


/*backtest
start: 2023-10-27 00:00:00
end: 2023-11-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="TK Cross > EMA200 Strat",  overlay=true)

ema200 = ema(close, 200)
conversionPeriods = input(9, minval=1, title="Conversion Line Periods"),
basePeriods = input(26, minval=1, title="Base Line Periods")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods"),
displacement = input(26, minval=1, title="Displacement")

donchian(len) => avg(lowest(len), highest(len))

conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

plot(conversionLine, color=#0496ff, title="Conversion Line", linewidth=3)
plot(baseLine, color=#991515, title="Base Line", linewidth=3)
plot(close, offset = -displacement, color=#459915, title="Lagging Span")

p1 = plot(leadLine1, offset = displacement, color=green,
 title="Lead 1")
p2 = plot(leadLine2, offset = displacement, color=red, 
 title="Lead 2")
fill(p1, p2, color = leadLine1 > leadLine2 ? green : red)

plot(ema200, color=purple, linewidth=4,title='ema200')
strategy.initial_capital = 50000

strategy.entry('tkcross', strategy.long, strategy.initial_capital / close, when=conversionLine>baseLine and close > ema200)
strategy.close('tkcross', when=conversionLine<baseLine)


start = input(2, minval=0, maxval=10, title="Start - Default = 2 - Multiplied by .01")
increment = input(2, minval=0, maxval=10, title="Step Setting (Sensitivity) - Default = 2 - Multiplied by .01" )
maximum = input(2, minval=1, maxval=10, title="Maximum Step (Sensitivity) - Default = 2 - Multiplied by .10")
sus = input(true, "Show Up Trending Parabolic Sar")
sds = input(true, "Show Down Trending Parabolic Sar")
disc = input(false, title="Start and Step settings are *.01 so 2 = .02 etc, Maximum Step is *.10 so 2 = .2")
//"------Step Setting Definition------"
//"A higher step moves SAR closer to the price action, which makes a reversal more likely."
//"The indicator will reverse too often if the step is set too high."

//"------Maximum Step Definition-----")
//"The sensitivity of the indicator can also be adjusted using the Maximum Step."
//"While the Maximum Step can influence sensitivity, the Step carries more weight"
//"because it sets the incremental rate-of-increase as the trend develops"

startCalc = start * .01
incrementCalc = increment * .01
maximumCalc = maximum * .10

sarUp = sar(startCalc, incrementCalc, maximumCalc)
sarDown = sar(startCalc, incrementCalc, maximumCalc)

colUp = close >= sarDown ? lime : na
colDown = close <= sarUp ? red : na

plot(sus and sarUp ? sarUp : na, title="Up Trending SAR", style=circles, linewidth=3,color=colUp)
plot(sds and sarDown ? sarDown : na, title="Up Trending SAR", style=circles, linewidth=3,color=colDown)





Mehr