Ichimoku Kinko Hyo-basierte BTC-Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-12-20 13:34:08
Tags:

img

Übersicht

Diese Strategie heißt Ichimoku Kinko Hyo Strategie. Es ist eine BTC-Handelsstrategie, die auf dem Ichimoku Kinko Hyo-System basiert und mit anderen technischen Indikatoren kombiniert wird.

Strategie Logik

Die Strategie basiert hauptsächlich auf dem Ichimoku Kinko Hyo-System, das mehrere technische Indikatoren für den Trendhandel enthält.

Kijun Sen: stellt die Markttrendrichtung dar. Es ist der Mittelpunkt des höchsten und niedrigsten Preises in den letzten 26 Tagen, fungiert als Unterstützungs- und Widerstandslinie. Kauf- und Verkaufssignale werden erzeugt, wenn der Schlusskurs den Kijun Sen überschreitet.

Tenkan Sen: stellt die Dynamik des Preises dar. Es ist der Mittelpunkt des höchsten und niedrigsten Preises in den letzten 9 Tagen, hilft bei der Bestimmung der besten Ein- und Ausstiegspunkte.

Senkou Span A: stellt die mittelfristige Linie von Ichimoku dar.

Senkou Span B: stellt die langfristige Trendlinie dar. Es ist der Mittelpunkt der letzten 52 Tage.

Darüber hinaus enthält die Strategie auch den RSI-Indikator, um Handelssignale in Überkauf- und Überverkaufszonen zu erzeugen.

Kaufsignale werden erzeugt, wenn der Schlusskurs über Kijun Sen bricht und sich über der Wolke befindet. Verkaufssignale werden erzeugt, wenn der Schlusskurs unter Kijun Sen bricht und sich unter der Wolke befindet.

Vorteile

  1. Ichimoku-System bestimmt Trends mit relativ hoher Gewinnrate.

  2. Die Einbeziehung mehrerer Indikatoren verhindert fehlende Chancen.

  3. Der RSI bestimmt effektiv Umkehrpunkte.

  4. Die Cloud präsentiert intuitiv langfristige und kurzfristige Trends.

Risikoanalyse

  1. Ichimoku-System hat eine gewisse Verzögerung, braucht Einbeziehung anderer Indikatoren.

  2. Das funktioniert sehr gut auf Trendmärkten, aber nur bescheiden auf unterschiedlichen Märkten.

  3. Die RSI-Parameter müssen anhand der Märkte angepasst werden.

  4. Die Cloud-Konstruktion ist komplex und erfordert geschickte Manipulation.

Ichimoku-Parameter können optimiert oder weitere Indikatoren hinzugefügt werden.

Optimierungsrichtlinien

  1. Ich optimiere die Parameter von Ichimoku, um Trends schneller zu bestimmen.

  2. Fügen Sie mehr Indikatoren wie gleitende Durchschnitte hinzu, um die Signalgenauigkeit zu verbessern.

  3. Anpassung des RSI-Parameters auf der Grundlage verschiedener Märkte.

  4. Es sollte in Betracht gezogen werden, Stop-Loss-Mechanismen hinzuzufügen, um Risiken zu kontrollieren.

Schlussfolgerung

Ichimoku kombiniert mit Indikatoren wie dem RSI hat eine hohe Genauigkeit bei der Erfassung von Aufwärtstrends. Nachzulassen von Ichimoku und Unanpassungsfähigkeit in den verschiedenen Märkten sind große Risiken. Eine richtige Parameter-Ausrichtung und das Hinzufügen mehrerer Indikatoren können diese Risiken erheblich mindern und die Strategie solider und zuverlässiger machen.


/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("My Ichimoku Strat v2", overlay=true,default_qty_type=strategy.fixed, default_qty_value=1, initial_capital=1000, currency=currency.EUR,commission_type=strategy.commission.percent,commission_value=0.05)
// === BACKTEST RANGE ===
FromMonth = input(defval = 3, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2018, title = "From Year", minval = 2014)
ToMonth   = input(defval = 1, title = "To Month", minval = 1)
ToDay     = input(defval = 1, title = "To Day", minval = 1)
ToYear    = input(defval = 9999, title = "To Year", minval = 2014)

// === SERIES SETUP ===



//**** Inputs *******
KijunSenLag = input(6,title="KijunSen Lag",minval=1)

//Kijun-sen
//Support resistance line, buy signal when price crosses it
KijunSen = sma((high+low)/2,26)
buy2 = crossover(close,KijunSen) and (rising(KijunSen,KijunSenLag) or falling(KijunSen,KijunSenLag))
sell2= crossunder(close,KijunSen) and (rising(KijunSen,KijunSenLag) or falling(KijunSen,KijunSenLag))


//Tenkan-Sen
TenkanSen = sma((high+low)/2,9)

//Senkou Span A 
SenkouSpanA = (KijunSen + TenkanSen)/2

//Senkou Span B 
SenkouSpanB = sma((high+low)/2,52)

//Cloud conditions : ignore buy if price is under the cloud
// Huge cloud means safe support and resistance. Little cloud means danger.
buy3 = close > SenkouSpanA and close > SenkouSpanB
sell3 = close < SenkouSpanA and close < SenkouSpanB


//Chikou Span
//Buy signal : crossover(ChikouSpan,close)
//Sell Signal : crossunder(ChikouSpan,close)
ChikouSpan = close
buy1=crossover(ChikouSpan,close[26])
sell1=crossunder(ChikouSpan,close[26])

plotshape(buy1,style=shape.diamond,color=lime,size=size.small)
plotshape(sell1,style=shape.diamond,color=orange,size=size.small)

//Alerts

buyCompteur = -1
buyCompteur := nz(buyCompteur[1],-1)
buyCompteur := buy2 or buy3 ? 1 : buyCompteur
buyCompteur := buyCompteur > 0 ? buyCompteur + 1 : buyCompteur
buyCompteur := sell2 or sell3 ? -1 : buyCompteur

sellCompteur = -1
sellCompteur := nz(sellCompteur[1],-1)
sellCompteur := sell2 or sell3 ? 1 : sellCompteur
sellCompteur := sellCompteur > 0 ? sellCompteur + 1 : sellCompteur
sellCompteur := buy2 or buy3 ? -1 : sellCompteur



//RSI
src = close, len = input(14, minval=1, title="RSI Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
buyRSI = crossover(rsi,40) and close > TenkanSen and rsi[5]<30 and (rsi-rsi[1])>5
sellRSI = crossunder(rsi,60) and close < TenkanSen and rsi[5]>70 and (rsi[1]-rsi)>5
plotshape(buyRSI,style=shape.triangleup,color=lime,transp=0,location=location.belowbar,size=size.small)

sell= sell2 and sell3 or (sell1 and buyCompteur <= 8) or sellRSI
buy=buy2 and buy3 or (buy1 and sellCompteur <=8) or buyRSI
plotchar(buy,char='B',size=size.small,color=lime) 
plotchar(sell,char='S',size=size.small,color=orange)


//plots
plot(KijunSen,title="Kijun-Sen",color=blue,linewidth=4)
plot(TenkanSen,title="Tenkan-Sen",color=red,linewidth=2)
cloudA = plot(SenkouSpanA,title="cloud A", color=lime,offset=26,linewidth=2)
cloudB = plot(SenkouSpanB,title="cloud B", color=orange,offset=26,linewidth=2)
plot(ChikouSpan,title="lag span",color=fuchsia, linewidth=2,offset=-26)
//plot()
fill(cloudA,cloudB,color=SenkouSpanA>SenkouSpanB?lime:orange)
//plot(close,color=silver,linewidth=4)

// === ALERTS ===
strategy.entry("L", strategy.long, when=(buy and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))
strategy.close("L", when=(sell and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))

Mehr