Trendverfolgungsstrategie auf der Grundlage mehrerer Indikatoren

Schriftsteller:ChaoZhang, Datum: 23.11.2023
Tags:

img

Übersicht

Diese Strategie identifiziert Trends, indem sie mehrere Indikatoren wie RSI, MA, EMA und Bollinger Bands kombiniert, um Trendverfolgung umzusetzen.

Grundsätze

Die Kernlogik dieser Strategie besteht darin, Preistrends zu identifizieren, indem RSI, MA, EMA und Bollinger Bands kombiniert werden. Insbesondere werden gleichzeitig zwei MA-Linien gezeichnet, eine auf 10 Perioden und die andere auf 5 Perioden. Gleichzeitig werden zwei EMA-Linien mit Parametern von 30 und 20 gezogen. Der RSI-Indikatorparameter ist auf 7 festgelegt.

Wenn der Schlusskurs unter die 5-Perioden-MA-Linie, die 20-Perioden-EMA-Linie und die unteren Schienen fällt, während der RSI-Indikator unter die 25-Überkauft-Linie fällt, wird in der Strategie davon ausgegangen, dass die Preise relativ steigen und eine Long-Position eingehen werden.

Im Gegenteil, wenn der Schlusskurs über die 10-Perioden-MA-Linie, die 30-Perioden-EMA-Linie und den oberen Schienenwert bricht, während der RSI-Indikator über die 75-Überverkauft-Linie bricht, wird in der Strategie davon ausgegangen, dass die Preise relativ rückläufig sind und eine Leerposition eingehen.

Wie Sie sehen können, identifiziert diese Strategie potenzielle Trends, indem sie die Logik des Preisbruchs des gleitenden Durchschnitts und der Umkehrung des RSI-Indikators kombiniert und dann diesen Trend verfolgt.

Analyse der Vorteile

Der größte Vorteil dieser Strategie besteht darin, dass sie mehrere Indikatoren verwendet, um Trends zu identifizieren, die falsche Signale effektiv reduzieren können. Insbesondere muss der Preis den gleitenden Durchschnitt und Bollinger Bands gleichzeitig durchbrechen, um Handelssignale auszulösen, und der RSI-Indikator muss auch eine Langarde-Wende durchlaufen, die viel Lärm filtert.

Darüber hinaus verfolgt die Strategie relativ klare Trends und nicht kurzfristige Geräusche, was auch die Gewinnwahrscheinlichkeit erhöht.

Risikoanalyse

Es ist zu beachten, dass keine Strategie zu 100% profitabel sein kann, und diese Strategie ist keine Ausnahme. Das Hauptrisiko besteht darin, dass das Kombinationsurteil mehrerer Indikatoren falsch läuft, was zu falschen Trades führt. Darüber hinaus können plötzliche Ereignisse die Strategie auch ungültig machen.

Um Risiken zu reduzieren, können Indikatorparameter angemessen angepasst werden, um die Rentabilität zu optimieren. Darüber hinaus ist es auch sehr notwendig, Stop-Loss-Punkte festzulegen, um einzelne Verluste zu kontrollieren. Natürlich erfordern unausweichliche systemische Risiken eine psychologische Vorbereitung von Investoren.

Optimierung

Die wichtigsten Optimierungen für diese Strategie sind:

  1. Testkombinationen von mehr Indikatortypen, um bessere Kombinationen von mehreren Indikatoren zu finden;

  2. Optimierung der Indikatorparameter zur Verbesserung der Strategie-Stabilität;

  3. Erhöhung von Modellen des maschinellen Lernens zur Unterstützung von Urteilen und zur Verbesserung der Genauigkeit;

  4. Erhöhung der Adaptiv-Stop-Loss-Mechanismen zur Risikokontrolle;

  5. Zur Verbesserung der Stabilität und Rentabilität wird eine Optimierung der Backtests durchgeführt.

Schlussfolgerung

Diese Strategie entwarf eine Reihe von relativ aufsteigenden Tracking-Mechanismen, die auf RSI, MA, EMA und Bollinger Bands basieren, und tritt nach Beurteilung der Preistrends durch Kombination mehrerer Indikatoren in Richtungspositionen ein. Die Integration mehrerer Indikatoren zum Beurteilen kann die Wahrscheinlichkeit von Fehleinschätzungen effektiv reduzieren und das Geräusch bis zu einem gewissen Grad filtern und relativ klare Trends verfolgen. Natürlich braucht auch das Risikomanagement Aufmerksamkeit. Insgesamt hat diese Strategie einen großen Optimierungsraum und kann mit maschinellem Lernen und anderen Mitteln bessere Ergebnisse erzielen.


/*backtest
start: 2022-11-16 00:00:00
end: 2023-11-22 00:00:00
period: 1d
basePeriod: 1h
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/
// © lepstick-TC
//@version=4
strategy("1", overlay=true)
length = input(5, minval=1)
src = input(close, title="Source")
mult = input(1.5, minval=0.001, maxval=50)
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
plot(basis, color=color.red)
p1 = plot(upper, color=color.blue)
p2 = plot(lower, color=color.blue)
fill(p1, p2)
rsicok=input(75,minval=0,title="Rsi yüksek")
rsiaz=input(25,maxval=50,title="Rsi düşük")
rsizaman=input(7,minval=0,title="Rsi zaman")
smadeger=input(10,minval=0,title="Ma üst")
smadeger2=input(5,minval=0,title="Ma alt")
emadeger=input(30,minval=0,title="Ema üst")
emadeger2=input(20,minval=0,title="Ema alt")
myrsi=rsi(close,rsizaman)
myrsi2=rsi(close,rsiaz)
myrsi3=rsi(close,rsicok)
myma=sma(close,smadeger)
myma2=sma(close,smadeger2)
myema=ema(close,emadeger)
myema2=ema(close,emadeger2)
mycond =myrsi >rsicok and close> myma and close>myema
mycond2=myrsi<rsiaz and close<myma2 and close<myema2
barcolor(mycond? #2196F3: na)
barcolor(mycond2? #FF9800: na)
plot(myma,title="Ma yüksek",color=color.black,linewidth=0)
plot(myma2,title="Ma düşük",color=color.blue,linewidth=0)
plot(myema,title="Ema yüksek",color=color.yellow,linewidth=0)
plot(myema2,title="Ema düşük",color=color.gray,linewidth=0)
idunno =close< sma(close,smadeger2) and close < sma(close,smadeger) and close<ema(close,emadeger)and close<ema(close,emadeger2)and crossunder(close,lower)and crossunder(myrsi,myrsi2)and crossunder(close,basis) 
plotchar(idunno,char="A",color=#808000 ,location=location.belowbar) 
idunno2 =close> sma(close,smadeger2) and close> sma(close,smadeger) and close>ema(close,emadeger)and close>ema(close,emadeger2)and crossover(close,upper)and crossover(myrsi,myrsi3)and crossover(close,basis)
plotchar(idunno2,char="S",color=#787B86 ,location=location.abovebar)
strategy.entry("Al",true,when =idunno)
strategy.entry("Sat",false,when = idunno2)
strategy.close("Al",when=ema(close,emadeger)and crossover(open,upper))
strategy.close("Sat",when=sma(close,smadeger2)and crossunder(open,lower))
//strategy.exit("Al çıkış","Al",limit=upper)
//strategy.exit("Sat çıkış","Sat",limit=lower)
//strategy.exit("Al çıkış","Al",trail_points=close*0.1/syminfo.mintick,trail_offset=close*0.005/syminfo.mintick)
//strategy.exit("Sat çıkış","Sat",trail_points=close*0.1/syminfo.mintick,trail_offset=close*0.005/syminfo.mintick)


Mehr