Trendfolgestrategie basierend auf Ichimoku Kinko Hyo


Erstellungsdatum: 2023-12-11 15:00:29 zuletzt geändert: 2023-12-11 15:00:29
Kopie: 0 Klicks: 666
1
konzentrieren Sie sich auf
1621
Anhänger

Trendfolgestrategie basierend auf Ichimoku Kinko Hyo

Überblick

Die Strategie basiert auf der Konzeption der Ichimoku-Technik und nutzt Trend-Tracking- und Balance-Breakout-Trading-Methoden, um mittlere und längere Preistrends zu erfassen und stabile Gewinne zu erzielen.

Strategieprinzip

Die Strategie nutzt die fünf Linien der ersten Gleichgewichtstabelle - die Wendelinie, die Benchmarklinie, die Frontlinie, die Vorreiterlinie und die Verzögerungslinie, um Preistrends und Unterstützungswiderstände zu beurteilen. Die spezifischen Beurteilungsregeln sind:

  1. Wenn der Schlusskurs die Referenzlinie überschreitet und die Referenzlinie unüblich ist, wird ein Kaufsignal erzeugt.
  2. Wenn der Schlusskurs unterhalb der Basislinie liegt und die Basislinie unüblich ist, wird ein Verkaufssignal erzeugt.
  3. Wenn der Schlusskurs höher als der Cloud-Level ist, ist die Liquidität besser und es ist möglich, Lager zu bauen.
  4. Wenn der Abschlusspreis unterhalb der Cloud-Reihe liegt, ist die Liquidität schlechter und die Lagerung ist verboten.
  5. Die Verzögerungslinie führt zu einem Kaufsignal.
  6. Die Verzögerung unterhalb der Linie führt zu einem Verkaufssignal.

Der Zeitpunkt des endgültigen Eintritts wird nach einer Analyse der oben genannten Handelssignale festgelegt.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Mit einer Gleichgewichtstabelle kann man Trends auf einen Blick erkennen, Marktgeräusche filtern und die mittleren und langen Trends blockieren.
  2. In Kombination mit Clouds kann die Liquidität beurteilt werden, um das Risiko eines Lagers zu vermeiden.
  3. Die Verzögerungslinie dient als Bestätigungssignal, um falsche Durchbrüche zu vermeiden.
  4. Die Regeln sind einfach, klar und leicht umzusetzen.

Risikoanalyse

Die Strategie birgt auch folgende Risiken:

  1. Eine falsche Einstellung der Parameter kann zu verpassten Handelschancen führen.
  2. Wenn die Tendenz mutate, kann man die Verzögerung nicht rechtzeitig stoppen.
  3. Die Risiken für die Verlustgefahr von mehreren Positionen sind höher.

Die oben genannten Risiken können durch die Einstellung von Optimierungsparametern in Kombination mit anderen Indikatoren beurteilt werden, um Trendveränderungen und strenge Stopps zu erkennen.

Optimierungsrichtung

Die Strategie kann auch in folgenden Bereichen optimiert werden:

  1. Optimierung der Parameter einer Gleichgewichtstabelle auf der Suche nach der optimalen Kombination.
  2. Der Markt ist in der Lage, sich zu verbessern, indem die Preise für die Produkte, die in den Märkten angeboten werden, erhöht werden.
  3. Der Wendepunkt wird in Kombination mit den Volatilitätsindikatoren beurteilt.
  4. Einzug in ein maschinelles Lernmodell, um Trends zu bestimmen.

Zusammenfassen

Die Strategie nutzt die Gleichgewichtstabelle, um die Preisentwicklung und die Liquidität zu beurteilen. Die Trendverfolgungsmodell filtert effektiv den Medium-Langstrecken-Trend und reduziert das Rücktrittsrisiko. Die Strategie kann den Profit-Faktor verbessern, indem die Parameter-Einstellungen weiter optimiert, die Hilfsfilter-Indikatoren hinzugefügt und Trendwende-Signale ausgegraben werden.

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

//@version=3
strategy("My Ichimoku Strat", overlay=true,default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=1000, currency=currency.EUR)
// === BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2017, 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

sell= sell2 and sell3 or (sell1 and buyCompteur <= 8)
buy=buy2 and buy3 or (buy1 and sellCompteur <=8)
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))))