Integriertes Ichimoku Keltner-Handelssystem basierend auf der gleitenden Durchschnittsstrategie


Erstellungsdatum: 2023-12-20 13:40:08 zuletzt geändert: 2023-12-20 13:40:08
Kopie: 0 Klicks: 745
1
konzentrieren Sie sich auf
1621
Anhänger

Integriertes Ichimoku Keltner-Handelssystem basierend auf der gleitenden Durchschnittsstrategie

Überblick

Die Strategie integriert die Gleichgewichtsstrategie, die Ichimoku-Wolkenkarte und die Keltner-Kanal-Technik, um Trend-Tracking und Breakout-Trading zu ermöglichen, die für den Handel mit Hochfrequenz-Algorithmen geeignet sind.

Strategieprinzip

  1. Verwenden des Keltner-Kanals, um zu beurteilen, ob die Aktienpreise über den Auf- und Abstieg des Kanals hinausgehen, als Lagerungssignal
  2. Ichimoku-Wolkenkarten zur Trendschätzung in Verbindung mit dem Keltner-Kanal
  3. Einheitliche Strategie sendet Ausgleichssignale

Analyse der Stärken

  1. Integration von mehreren technischen Kennzahlen, umfassende Beurteilung und bessere Entscheidungsgenauigkeit
  2. Keltner Channel: Überkauf und Überverkauf verhindern, dass Positionen nach Höhen und Tiefen geführt werden
  3. Ichimoku Cloud Chart: Beurteilen Sie die Trends und vermeiden Sie einen Abwärtstrend
  4. Einheitliche Strategie zur Filterung von Erschütterungen und zur Verhinderung von Überempfindlichkeit

Risikoanalyse

  1. Mehrere Indikatoren integriert, die Parameter sind komplex und müssen sorgfältig getestet werden
  2. Die Kreuzung von Cloudgraph Conversion Line und Benchmark Line ist nicht immer ein zuverlässiges Handelssignal
  3. Die Keltner-Kanäle erfordert eine Anpassung der Parameter an verschiedene Aktienmerkmale

Optimierungsrichtung

  1. Bewertung der Serverleistung, angemessene Verkürzung der Durchschnittszyklus und Erhöhung der Transaktionsfrequenz
  2. Testen der Empfindlichkeit verschiedener Aktien gegenüber Parametern, Einstellung von Anpassungsparametern
  3. Erhöhung der Stop-Loss-Strategie und Verringerung der Einzelschäden

Zusammenfassen

Die Strategie integriert mehrere technische Indikatoren der Ichimoku-Wolkenkarte, des Keltner-Kanals und der Gleichgewichtsstrategie und ermöglicht Trendverfolgung und hohe Effizienz beim Durchbruch von Geschäften. Im Vergleich zu einem einzelnen Indikator ist die Strategie umfassender und genauer beurteilt und vermeidet bestimmte Falschsignale. Es gibt auch komplexe Parameter, die für die Optimierung einzelner Aktien benötigt werden.

Strategiequellcode
/*backtest
start: 2023-11-19 00:00:00
end: 2023-12-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
// Author: Persio Flexa
// Description: Ichimoku Clouds with Keltner Channel, perfect for margin trading 
strategy("Ichimoku Keltner Strategy", overlay=true) 

// -- Keltner ------------------------------------------------------------------
source = close

useTrueRange = input(true)
length = input(18, minval=1) 
mult = input(1.8)

ma = sma(source, length)
range = useTrueRange ? tr : high - low
rangema = sma(range, length)
upper = ma + rangema * mult
lower = ma - rangema * mult

plot(ma, title="BASE", color=orange,transp=85)
plot(upper, title="UPPER", color=red)
plot(lower, title="LOWER", color=green)

//crossUpper = crossover(source, upper)
//crossLower = crossunder(source, lower)
crossUpper = source > upper
crossLower = source  < lower

bprice = 0.0
bprice := crossUpper ? high+syminfo.mintick : nz(bprice[1])

sprice = 0.0
sprice := crossLower ? low -syminfo.mintick : nz(sprice[1]) 

crossBcond = false
crossBcond := crossUpper ? true 
 : na(crossBcond[1]) ? false : crossBcond[1]

crossScond = false
crossScond := crossLower ? true 
 : na(crossScond[1]) ? false : crossScond[1]

cancelBcond = crossBcond and (source < ma or high >= bprice )
cancelScond = crossScond and (source > ma or low <= sprice )

// ---------------------------------------------------------------------


// -- Ichimoku

ATRlength = input(200, minval=1)
ATRMult = input(2.272, minval=1)

ATR = rma(tr(true), ATRlength)

len = input(26, minval=1, title="EMA Length")
src = input(close, title="Source")
out = ema(src, len)

emaup = out+(ATR*ATRMult)
emadw = out-(ATR*ATRMult)

conversionPeriods = input(15, minval=1),
basePeriods = input(35, minval=1)
laggingSpan2Periods = input(52, minval=1),
displacement = input(26, minval=1)

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, color=green,transp=85, title="Lead 1")
p2 = plot(leadLine2, offset = displacement, color=red,transp=85, title="Lead 2")
fill(p1, p2,silver) 

longCond    = crossover(conversionLine, baseLine)
shortCond   = crossunder(conversionLine, baseLine)
// -------------------------------------------------------------------------

if (crossUpper and (conversionLine > baseLine))
    strategy.entry("long", strategy.long, stop=bprice, comment="LONG")

if (crossLower and (conversionLine < baseLine))
    strategy.entry("short", strategy.short, stop=sprice, comment="SHORT")
    
strategy.close("long", when = (shortCond and source < lower))
strategy.close("short", when = (longCond and source > upper))