Ichimoku Cloud Quant Strategie

Schriftsteller:ChaoZhang, Datum: 2023-11-24 10:15:15
Tags:

img

Übersicht

Die Strategie beurteilt die Trendrichtung durch den Ichimoku-Indikator, kombiniert mit K-Linienmustern, gleitenden Durchschnitten und dem Stochastic RSI-Indikator, um Signale zu filtern und bei besseren Einstiegspunkten lang zu gehen, wenn der Trend nach oben geht.

Strategieprinzip

Die Hauptkriterien der Strategie sind:

  1. Ichimoku-Leadline 1 überschreitet die Leadline 2, was auf einen Aufwärtstrend hinweist
  2. Der Schlusskurs der K-Linie überschreitet die Leitlinie 1 und erfüllt die Bedingung, dem Trend zu folgen.
  3. K-Line ist eine grüne Kerze, der Trend geht nach oben
  4. Wenn gleitende Durchschnitte aktiviert sind, überschreitet der schnelle MA den langsamen MA
  5. Wenn der Stochastische RSI aktiviert ist, kreuzt die Linie %K die Linie %D.

Wenn alle oben genannten Bedingungen gleichzeitig erfüllt sind, wird die Strategie Long-Positionen eröffnen.

Die Strategie verwendet hauptsächlich die Ichimoku-Wolke, um die Haupttrendrichtung zu bestimmen, kombiniert mit Hilfsindikatoren, um Signale zu filtern und an besseren Punkten lang zu gehen, wenn der Trend nach oben geht.

Vorteile der Strategie

  1. Verwenden Sie Ichimoku Cloud, um den Haupttrend zu bestimmen, Backtest zeigt hohe Genauigkeit
  2. In Kombination mit mehreren Hilfsindikatoren zur Filterung von Einstiegspunkten kann die Gewinnrate erheblich verbessert werden
  3. Langzeitstrategie, geeignet für Währungen, die sich in einem Bullenmarkt befinden
  4. Großer Raum für die Optimierung von Parametern, kann Indikatorparameter für weitere Optimierung anpassen

Risiken der Strategie

  1. Ich bin der Meinung, dass Ichimoku den Trend falsch beurteilen könnte.
  2. Der Stop-Loss-Punkt kann bei plötzlichen Marktveränderungen gebrochen werden, was zu größeren Verlusten führt.
  3. Für Bullenmärkte bestimmt, nicht geeignet für Währungen mit versteckten Anzeichen einer Trendumkehrung
  4. Falsche Einstellungen von Parametern können zu übermäßig aggressiven Einträgen oder zu konservativen Aktionen führen

Gegenmaßnahmen:

  1. Mehr Indikatoren kombinieren, um den Trend zu beurteilen, die Genauigkeit verbessern
  2. Festlegen von angemessenen Stop-Loss-Punkten zur strikten Kontrolle einzelner Verluste
  3. Auswahl geeigneter Strategien entsprechend den Marktbedingungen verschiedener Währungen
  4. Sorgfältige Prüfung und Optimierung von Parametern, um die Strategie stabiler zu machen

Richtungen für die Optimierung der Strategie

  1. Optimierung der Parameter-Einstellungen der Hilfsindikatoren zur weiteren Verbesserung der Stabilität
  2. Hinzufügen von Stop-Loss-Mechanismen wie Trailing-Stop-Loss, exponentieller gleitender Durchschnitts-Stop-Loss usw.
  3. Fügen Sie Positionsmanagement wie feste Positionsgrößen, Positionsdurchschnitt usw. hinzu.
  4. Parameteranpassungen und Optimierungen für bestimmte Währungen vornehmen

Zusammenfassung

Diese Ichimoku Cloud Quant-Strategie erzielt eine hohe Gewinnrate, aber eine risikobeherrschbare, nur lange Strategie, indem sie die Trendrichtungen beurteilt. Die Vorteile der Strategie sind offensichtlich und sie zeigt eine hervorragende Leistung in Bullenmärkten. Der nächste Schritt besteht darin, Aspekte wie Indikatoroptimierung, Stop-Loss-Mechanismus, Positionsmanagement zu verbessern, um die Strategie umfassender und stabiler zu machen.


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

//@version=4

strategy(title="Ichimoku only Long Strategy", shorttitle="Ichimoku only Long", overlay = true, pyramiding = 0, calc_on_order_fills = false, commission_type =  strategy.commission.percent, commission_value = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital=10000, currency=currency.USD)

// Time Range
FromMonth=input(defval=1,title="FromMonth",minval=1,maxval=12)
FromDay=input(defval=1,title="FromDay",minval=1,maxval=31)
FromYear=input(defval=2017,title="FromYear",minval=2017)
ToMonth=input(defval=1,title="ToMonth",minval=1,maxval=12)
ToDay=input(defval=1,title="ToDay",minval=1,maxval=31)
ToYear=input(defval=9999,title="ToYear",minval=2017)
start=timestamp(FromYear,FromMonth,FromDay,00,00)
finish=timestamp(ToYear,ToMonth,ToDay,23,59)
window()=>true
// See if this bar's time happened on/after start date
afterStartDate = time >= start and time<=finish?true:false

//Enable RSI
enableema = input(true, title="Enable EMA?")
enablestochrsi = input(false, title="Enable Stochastik RSI?")

//EMA
emasrc = close, 
len1 = input(24, minval=1, title="EMA 1")
len2 = input(90, minval=1, title="EMA 2")

ema1 = ema(emasrc, len1)
ema2 = ema(emasrc, len2)

col1 = color.lime
col2 = color.red

//EMA Plots
plot(ema1, title="EMA 1", linewidth=1, color=col1)
plot(ema2, title="EMA 2", linewidth=1, color=col2)

//STOCH RSI
smoothK = input(3, minval=1, title="RSI K Line")
smoothD = input(3, minval=1, title="RSI D Line")
lengthRSI = input(14, minval=1, title="RSI Length")
lengthStoch = input(14, minval=1, title="Stochastik Length")
src = input(close, title="RSI Source")

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)

//Ichimoku
conversionPeriods = input(9, minval=1, title="Ichi Conversion Line Length")
basePeriods = input(26, minval=1, title="Ichi Base Line Length")
laggingSpan2Periods = input(52, minval=1, title="Ichi Lagging Span 2 Length")
displacement = input(1, minval=0, title="Ichi Displacement")
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
p1 = plot(leadLine1, offset = displacement - 1, color=color.green,
	 title="Lead 1")
p2 = plot(leadLine2, offset = displacement - 1, color=color.red,
	 title="Lead 2")
fill(p1, p2, color = leadLine1 > leadLine2 ? color.green : color.red)


//Long Condition
crossup = k[0] > d[0] and k[1] <= d[1]
ichigreenabovered = leadLine1 > leadLine2
ichimokulong = close > leadLine1
greencandle =  close > open
redcandle = close < open
emacond = ema1 > ema2
longcondition = ichigreenabovered and ichimokulong and greencandle

//Exit Condition
ichimokuexit = close < leadLine1

exitcondition = ichimokuexit and redcandle

//Entrys

if (enablestochrsi == false) and (enableema == false) and (longcondition) and (afterStartDate) and (strategy.opentrades < 1)
    strategy.entry("Long", strategy.long)
    
if (enablestochrsi == true) and (enableema == false) and (longcondition) and (crossup) and (afterStartDate) and (strategy.opentrades < 1)
    strategy.entry("Long", strategy.long)

if (enableema == true) and (enablestochrsi == false) and (longcondition) and (emacond) and (afterStartDate) and (strategy.opentrades < 1)
    strategy.entry("Long", strategy.long)

if (enableema == true) and (enablestochrsi == true) and (longcondition) and (emacond) and (crossup) and (afterStartDate) and (strategy.opentrades < 1)
    strategy.entry("Long", strategy.long)


//Exits
if (afterStartDate)
    strategy.close(id = "Long", when = exitcondition)









Mehr