Hanyue - Trendfolgende Handelsstrategie basierend auf mehreren EMA, ATR und RSI

EMA ATR RSI
Erstellungsdatum: 2024-05-14 16:37:52 zuletzt geändert: 2024-05-14 16:37:52
Kopie: 1 Klicks: 601
1
konzentrieren Sie sich auf
1617
Anhänger

Hanyue - Trendfolgende Handelsstrategie basierend auf mehreren EMA, ATR und RSI

Überblick

Die Strategie nutzt die Index-Moving Averages (EMA) aus drei verschiedenen Zeitabschnitten, um Markttrends zu beurteilen, und kombiniert die relativ starken und schwachen Indizes (RSI) und die mittlere reale Breite (ATR), um Einstiegspunkte und Stop Losses zu bestimmen. Die Strategie löst ein Lageröffnungssignal aus, wenn der Preis die drei EMAs durchbricht und der RSI seinen Moving Average überschreitet.

Strategieprinzip

  1. Berechnen Sie EMAs für drei verschiedene Perioden: kurz-, mittel- und langfristig, um die Gesamttrends des Marktes zu beurteilen.
  2. Der RSI-Indikator wird verwendet, um die Stärke und Dauerhaftigkeit eines Trends zu überprüfen. Wenn der RSI seinen gleitenden Durchschnitt überschreitet, zeigt dies eine Trendänderung an.
  3. Die Kombination der Beziehung zwischen dem Preis und dem EMA-Kanal und dem RSI-Signal erzeugt ein Lageröffnungssignal: Wenn der Preis den EMA-Kanal durchbricht und der RSI auch seinen Moving Average durchbricht, öffnet sich das Lager in der Richtung des Trends.
  4. Die ATR wird verwendet, um die Größe von Positionen und Stop-Loss-Positionen zu bestimmen und die Risikobereitschaft für jeden Handel zu kontrollieren.
  5. Ein Stop-Loss basierend auf dem gewünschten Gewinnrisiko (z. B. 1,5:1) wird eingesetzt, um die Profitabilität der Strategie sicherzustellen.

Überlegenheit

  1. Einfach und effektiv: Die Strategie verwendet nur einige gängige technische Kennzahlen, die Logik ist klar und leicht zu verstehen und umzusetzen.
  2. Trends Following: Durch die Kombination von EMA-Kanal und RSI kann die Strategie den Markttrends folgen und größere Preisschwankungen erfassen.
  3. Risikokontrolle: Die Verwendung von ATRs zur Einstellung von Stop-Loss-Leistungen und zur Kontrolle der Positionsgröße begrenzt die Risikothek pro Handel.
  4. Flexibilität: Strategieparameter (wie EMA-Zyklen, RSI-Zyklen, ATR-Multiplikatoren usw.) können anhand verschiedener Märkte und Handelsstile angepasst werden, um die Leistung zu optimieren.

Risikoanalyse

  1. Optimierung der Parameter: Die Performance einer Strategie hängt stark von der Wahl der Parameter ab. Fehlende Einstellung von Parametern kann dazu führen, dass die Strategie nicht funktioniert oder schlecht funktioniert.
  2. Marktrisiko: Bei einem unerwarteten Ereignis oder einem Extremfall kann die Strategie einen größeren Verlust erleiden, insbesondere bei einer Trendwende oder einem Marktrampel.
  3. Über simulation: Über simulation der historischen Daten während der Optimierung der Parameter kann dazu führen, dass die Strategie in der Praxis schlecht funktioniert.

Verbesserungen

  1. Dynamische Parameter: Strategieparameter, die sich an die Veränderung der Marktbedingungen anpassen, z. B. die Verwendung eines längeren EMA-Zyklus in einem Trend, der kürzeren Zyklus in einem Wrack.
  2. Kombination mit anderen Indikatoren: Einführung von anderen technischen Indikatoren (wie Brinband, MACD usw.) zur Verbesserung der Zuverlässigkeit und Genauigkeit der Lageröffnungssignale.
  3. Marktstimmung einbinden: Kombination von Marktstimmungskennzahlen (z. B. der Angst-Großsucht-Index) zur Anpassung der Strategie an die Risikothek und die Lagerhaltung.
  4. Multi-Time-Frame-Analyse: Analyse von Markttrends und -signalen in verschiedenen Zeiträumen, um ein umfassenderes Marktbild und stabilere Handelsentscheidungen zu erhalten.

Zusammenfassung

Die Strategie kombiniert mehrere gängige technische Indikatoren, wie EMA, RSI und ATR, um ein einfaches und effektives Trend-Follow-Handelssystem zu schaffen. Es nutzt den EMA-Kanal, um die Markttrends zu beurteilen, den RSI, um die Trendstärke zu bestätigen, und die ATR, um das Risiko zu kontrollieren. Die Strategie hat den Vorteil, dass sie einfach und anpassungsfähig ist und sich den Trends unter verschiedenen Marktbedingungen anpasst.

Strategiequellcode
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
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/
// © hatnxkld

//@version=4
strategy("Win ha", overlay=true)

ss2 = input("0300-1700", title = "Khung thời gian")

t2 = time(timeframe.period,ss2)
c2 = #cacae6

bgcolor(t2 ? c2 : na, transp = 70)


//3ema
emangan=input(title="Ema ngắn", defval = 12)
ngan=ema(close, emangan)
a= plot(ngan, title="EMA ngắn", color=color.yellow)
ematb=input(title="Ema trung bình", defval = 100)
tb=ema(close, ematb)
b= plot(tb, title="EMA trung bình", color=color.blue)
//emadai=input(title="Ema dai", defval = 288)
//dai=ema(close,emadai)
//c= plot(dai, title="EMA dai", color=color.red)




// nhập hệ số nhân ATR
i=input(title="Hệ số nhân với ATR", defval=1.25)

// RSI
rsi=rsi(close, emangan)
marsi=sma(rsi, emangan)

// Kênh keltler
//heso=input(defval=1, title="Hệ số Kênh Keltler")
//atr=atr(emangan)
//tren=ngan+atr*heso
//d=plot(tren, title="Kênh trên", color=color.white)
//duoi=ngan-atr*heso
//e=plot(duoi, title="Kênh dưới", color=color.white)
//fill(d,e, color=color.rgb(48, 58, 53))

ban = ( close[1]>open[1] and (high[1]-close[1])>(close[1]-low[1]) and open>close and close<low[1]   ) 


//or (    open[1] > close[1] and (high[1]-open[1])>(open[1]-low[1]) and (open[1]-close[1])>(close[1]-low[1]) and open>close and close <low[1]     )   )  //and time(timeframe.period,"2200-1300")
//and (close[1]-open[1])>(open[1]-low[1]) 
//high > ngan and close < ngan and ngan<tb and 
// and time(timeframe.period,"1000-2300")
bgcolor(color = ban ? color.rgb(235, 106, 123) : na)
//bgcolor(color.rgb(82, 255, 154),transp = 100, offset = 1, show_last = 2)
//and time(timeframe.period,"2300-1500") and ((open>ngan and close<ngan) or (open>tren and close<tren))
plotshape(ban , style=shape.arrowdown, location=location.abovebar, color=#ff00ff, size=size.tiny, textcolor=color.rgb(255, 59, 213))
alertcondition(ban, "Ban", "Ban")

mua=  (  open[1]>close[1] and (close[1]-low[1])>(high[1]-close[1]) and close > open and close > high[1]  )  //and time(timeframe.period,"2200-1300")


//or  (  close[1]>open[1] and (open[1]-low[1]) > (high[1]-open[1]) and (close[1]-open[1])>(high[1]-close[1]) and close>open and close>high[1]      ) )
//and (open[1]-close[1])>(high[1]-open[1])
//low < ngan and close > ngan and ngan>tb and
//or  (  close[1]>open[1] and (open[1]-low[1]) > (high[1]-open[1]) and (close[1]-open[1])>(high[1]-close[1]) and close>open and close>high[1]      )

// and time(timeframe.period,"1000-2300")
bgcolor(color= mua? color.rgb(108, 231, 139):na)
//and time(timeframe.period,"2300-1500") and ((open<ngan and close>ngan)or (open<duoi and close>duoi) )
plotshape(mua , style=shape.arrowup, location=location.belowbar, color=#00ff6a, size=size.tiny, textcolor=color.rgb(83, 253, 60))
alertcondition(mua , "Mua", "Mua")


//len1 = ban==true and (high-low)>2*atr
//plotshape(len1 , style=shape.flag, location=location.abovebar, color=#ff00ff, size=size.tiny, title="Sell Signal", text="Xuong 1", textcolor=color.rgb(255, 59, 213))

//bann= ban==true and rsi < marsi and marsi[2]>marsi[1]
//plotshape(bann , style=shape.labeldown, location=location.abovebar, color=#ff00ff, size=size.tiny, title="Sell Signal", text="BAN 2", textcolor=color.rgb(240, 234, 239))

//bannn = mua==true and rsi>marsi and marsi[2]<marsi[1]
//plotshape(bannn , style=shape.labelup, location=location.belowbar, color=#00ff6a, size=size.tiny, title="Buy Signal", text="Mua 2", textcolor=color.rgb(237, 241, 236))

//a1= ban==true and (high - low)<atr 
//plotshape(a1 , style=shape.xcross, location=location.bottom, color=#00ff6a, size=size.tiny, title="Sell", text="<atr", textcolor=color.rgb(240, 95, 76))

//a2 = ban ==true and (high - low)>atr and (high - low)<(2*atr) 
//plotshape(a2 , style=shape.xcross, location=location.bottom, color=#00ff6a, size=size.tiny, title="Sell", text="<2atr", textcolor=color.rgb(237, 241, 236))

//a3= ban==true and (high - low)>(2*atr) 
//plotshape(a3 , style=shape.xcross, location=location.bottom, color=#00ff6a, size=size.tiny, title="Sell", text=">2atr", textcolor=color.rgb(234, 252, 74))


//b1= mua==true and (high - low)<atr 
//plotshape(b1 , style=shape.xcross, location=location.bottom, color=#00ff6a, size=size.tiny, title="Buy", text="<atr", textcolor=color.rgb(237, 241, 236))

//b2 = mua ==true and (high - low)>atr and (high - low)<(2*atr) 
//plotshape(b2 , style=shape.xcross, location=location.bottom, color=#00ff6a, size=size.tiny, title="Buy", text="<2atr", textcolor=color.rgb(237, 241, 236))

//b3= mua==true and (high - low)>(2*atr) 
//plotshape(b3 , style=shape.xcross, location=location.bottom, color=#00ff6a, size=size.tiny, title="Buy", text=">2atr", textcolor=color.rgb(237, 241, 236))

// Đặt SL TP ENTRY
risk= input(title="Rủi ro % per Trade", defval=0.5)
rr= input(title="RR", defval=1.5)
onlylong= input(defval=false)
onlyshort=input(defval=false)

stlong = mua and strategy.position_size<=0 ? low[1]:na
stoplong= fixnan(stlong)

stshort = ban and strategy.position_size>=0 ? high[1]:na
stopshort= fixnan(stshort)

enlong = mua and strategy.position_size<=0 ? close:na
entrylong =fixnan(enlong)

enshort = ban and strategy.position_size>=0 ? close:na
entryshort = fixnan(enshort)

amountL = risk/100* strategy.initial_capital / (entrylong - stoplong)
amountS = risk/100* strategy.initial_capital / (stopshort - entryshort)

TPlong= mua and strategy.position_size<=0? entrylong + (entrylong -stoplong)*rr:na
takeprofitlong =fixnan(TPlong)
TPshort = ban and strategy.position_size>=0? entryshort - (stopshort - entryshort)*rr:na 
takeprofitshort = fixnan(TPshort)

strategy.entry("Long", strategy.long , when = enlong and not onlyshort, qty= amountL )
strategy.exit("exitL", "Long", stop = stoplong, limit= takeprofitlong)

strategy.entry("Short", strategy.short , when = enshort and not onlylong, qty= amountS )
strategy.exit("exitS", "Short", stop = stopshort, limit= takeprofitshort)