K-Algo-Trendfolgestrategie

ATR supertrend GANN HEIKIN-ASHI EMA
Erstellungsdatum: 2025-08-26 11:23:33 zuletzt geändert: 2025-08-26 11:23:33
Kopie: 0 Klicks: 288
2
konzentrieren Sie sich auf
319
Anhänger

K-Algo-Trendfolgestrategie K-Algo-Trendfolgestrategie

Das ist kein gewöhnlicher Supertrend, sondern ein Trendjäger für mehrdimensionale Fusion.

Der K-algo-Trail ist keine einfache ATR-Tracking-Strategie. Das System kombiniert die drei Technologien SuperTrend, Gann Nine-Side-Graph und Heikin Ashi Smooth, um einen dreidimensionalen Trenderkennungsrahmen zu bilden. Der 10-Zyklus-ATR ist mit einem 3-fach-Multiplikator ausgestattet, der sowohl die Tendenzempfindlichkeit gewährleistet als auch den Marktlärm wirksam filtert.

Der Heikin Ashi mit der doppelten EMA-Glattheit ist der wahre Signalfilter

Die Kerninnovation der Strategie liegt in der Heikin-Ashi-Karte, die mit einer doppelten 11-Zyklus-EMA-Gleichbehandlung behandelt wird. Die traditionelle Heikin-Ashi ist anfällig für Falschsignale, aber nach zwei Runden EMA-Gleichbehandlung verbessert sich die Signalqualität erheblich. Wenn der Eröffnungspreis nach dem Gleichen unter dem Schlusskurs liegt und der SuperTrend einen Aufwärtstrend zeigt, wird das Mehrkopfsignal bestätigt; das Gegenteil gilt für das Leerkopfsignal.

1.7:2.5:3.0 Profit-Verlust-Vergleich: Das Design zeigt professionelle Qualität

Die Stop-Loss-Einstellung verwendet direkt die SuperTrend-Linie, was die vernünftigste dynamische Stop-Solution ist. Noch interessanter ist die Dreigrad-Stopp-Design: 1,7x, 2,5x und 3,0x die Risikostrecke. Diese schrittweise Stop-Stop-Einstellung gewährleistet sowohl einen Basisgewinn als auch genügend Raum für die Trendsituation.

Die Aufnahme der Gann-Neuner ist keine Dekoration, sondern eine wichtige Resistenz.

Die Berechnung des Gann-Quadrats von 9 im Code scheint einfach zu sein, aber es ist sehr praktisch. Durch die Berechnung der Quadratwurzel des aktuellen Preises werden die Resistenzpositionen für die Unterstützung nach oben und unten berechnet, was den Strategien zusätzliche Preismarkierungen bietet. Obwohl die Strategie-Master-Logik diese Positionen nicht direkt verwendet, sind sie wichtige Referenzen für die manuelle Anpassung und Risikobewertung.

Für mittelfristige Trendbewegungen, allgemeine Marktergebnisse bei Schwankungen

Diese Strategie funktioniert besonders gut in einseitigen Trendmärkten, insbesondere in volatilen Märkten wie Kryptowährungen und Aktienindex-Futures. Es muss jedoch klar sein, dass häufige False-Breakouts zu kleinen Verlusten führen können. Es wird empfohlen, diese Strategie in Zeiten hoher und tendenzieller Marktvolatilität zu verwenden, um die unsichere Zeit vor der Veröffentlichung wichtiger Wirtschaftsdaten zu vermeiden.

Risiko-Hinweis: Vergangenheit ist kein Hinweis auf zukünftige Erträge

Jede quantitative Strategie birgt das Risiko von Verlusten, und diese Strategie ist keine Ausnahme. Obwohl die Rückmeldedaten eine gute Rendite nach Risikobereinigung zeigen, kann es im tatsächlichen Handel immer noch zu fortlaufenden Verlusten kommen. Es wird empfohlen, die einzelnen Positionen streng auf nicht mehr als 2% des Gesamtkapitals zu beschränken und nach 3 aufeinanderfolgenden Verlusten den Handel auszusetzen und die Marktumgebung neu zu bewerten.

Strategiequellcode
/*backtest
start: 2025-06-11 00:00:00
end: 2025-08-25 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy('K-algo trail', overlay=true)
// ===== INPUTS =====
Periods = input(title='ATR Period', defval=10)
src = input(hl2, title='Source')
Multiplier = input.float(title='ATR Multiplier', step=0.1, defval=3)
changeATR = input(title='Change ATR Calculation Method ?', defval=true)
showsignals = input(title='Show Buy/Sell Signals ?', defval=true)
// ===== ATR & SUPER TREND (K-TREND) CALCULATION =====
atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2
up = src - Multiplier * atr
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up
dn = src + Multiplier * atr
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
// Plot SuperTrend
upPlot = plot(trend == 1 ? up : na, title='Up Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.green, 0))
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title='UpTrend Begins', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.green, 0))
dnPlot = plot(trend == 1 ? na : dn, title='Down Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.red, 0))
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title='DownTrend Begins', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.red, 0))
// ===== GANN SQUARE OF 9 =====
normalise_squareRootCurrentClose = math.floor(math.sqrt(close))
upperGannLevel_1 = (normalise_squareRootCurrentClose + 1) * (normalise_squareRootCurrentClose + 1)
upperGannLevel_2 = (normalise_squareRootCurrentClose + 2) * (normalise_squareRootCurrentClose + 2)
zeroGannLevel = normalise_squareRootCurrentClose * normalise_squareRootCurrentClose
lowerGannLevel_1 = (normalise_squareRootCurrentClose - 1) * (normalise_squareRootCurrentClose - 1)
lowerGannLevel_2 = (normalise_squareRootCurrentClose - 2) * (normalise_squareRootCurrentClose - 2)
// ===== SMOOTHED HEIKIN ASHI CALCULATION =====
ma1_len = input.int(title='MA1', defval=11, minval=1, maxval=100, step=1)
ma2_len = input.int(title='MA2', defval=11, minval=1, maxval=100, step=1)
// First Smoothing (11,11)
o = ta.ema(open, ma1_len)
c = ta.ema(close, ma1_len)
h = ta.ema(high, ma1_len)
l = ta.ema(low, ma1_len)
ha_t = ticker.heikinashi(syminfo.tickerid)
ha_o = request.security(ha_t, timeframe.period, o)
ha_c = request.security(ha_t, timeframe.period, c)
ha_h = request.security(ha_t, timeframe.period, h)
ha_l = request.security(ha_t, timeframe.period, l)
o2 = ta.ema(ha_o, ma2_len)
c2 = ta.ema(ha_c, ma2_len)
h2 = ta.ema(ha_h, ma2_len)
l2 = ta.ema(ha_l, ma2_len)
ha_col = o2 > c2 ? color.orange : color.blue
plotcandle(o2, h2, l2, c2, title='Heikin Ashi Smoothed', color=ha_col, wickcolor=#00000000)
// ===== STRATEGY LOGIC =====
// Final Combined Long Condition
longCondition = (o2 < c2 and trend == 1) and barstate.isconfirmed
// Final Combined Short Condition
shortCondition = (o2 > c2 and trend == -1) and barstate.isconfirmed
// ===== STRATEGY EXECUTION =====
if longCondition
    SL = math.round(up, 2)
    range_1 = math.abs(close - SL)
    TARGET1 = close + range_1 * 1.7
    TARGET2 = close + range_1 * 2.5
    TARGET3 = close + range_1 * 3.0
    strategy.entry('BUY', strategy.long)
    strategy.exit('BUY T1', 'BUY', qty=1, limit=TARGET1)
    strategy.exit('BUY T2', 'BUY', qty=1, limit=TARGET2)
    strategy.exit('BUY T3', 'BUY', qty=1, limit=TARGET3)
    strategy.exit('BUY SL', 'BUY', stop=SL)
if shortCondition
    SL = math.round(dn, 2)
    range_2 = math.abs(close - SL)
    TARGET1 = close - range_2 * 1.7
    TARGET2 = close - range_2 * 2.5
    TARGET3 = close - range_2 * 3.0
    strategy.entry('SELL', strategy.short)
    strategy.exit('SELL T1', 'SELL', qty=1, limit=TARGET1)
    strategy.exit('SELL T2', 'SELL', qty=1, limit=TARGET2)
    strategy.exit('SELL T3', 'SELL', qty=1, limit=TARGET3)
    strategy.exit('SELL SL', 'SELL', stop=SL)
// Plot entry signals
plotshape(longCondition ? close : na, title='Buy', text='BUY', location=location.belowbar, style=shape.labelup, size=size.tiny, color=color.new(color.green, 0), textcolor=color.new(color.white, 0))
plotshape(shortCondition ? close : na, title='Sell', text='SELL', location=location.abovebar, style=shape.labeldown, size=size.tiny, color=color.new(color.red, 0), textcolor=color.new(color.white, 0))