
Die Strategie ist ein Trend-Tracking-System, das die AlphaTrend-Anzeige und den Kaufmann Adaptive Moving Average (KAMA) kombiniert und gleichzeitig Risikomanagement-Funktionen integriert. Die Strategie zielt darauf ab, Markttrends zu erfassen und gleichzeitig Risiken durch Teilstopps zu verwalten. Der Kern der Strategie besteht darin, die AlphaTrend-Anzeige zu verwenden, um die allgemeine Trendrichtung zu identifizieren, während die KAMA verwendet wird, um genauere Ein- und Ausstiegssignale zu erzeugen.
Der AlphaTrend Index berechnet sich wie folgt:
KAMA hat berechnet:
Handelssignale werden erzeugt:
Risikomanagement:
Positionsverwaltung:
Trendadaptivität: In Kombination mit AlphaTrend und KAMA ist es möglich, sich besser an unterschiedliche Marktbedingungen anzupassen.
Hohe Signalzuverlässigkeit: Die Zuverlässigkeit des Handelssignals wird durch die Bestätigung mehrerer Bedingungen erhöht.
Gute Risikomanagement: Ein teilweiser Stop-Stop-Mechanismus hilft, Gewinne in schwankenden Märkten zu sichern.
Flexible Positionsverwaltung: Positionsverwaltung basierend auf dem Nettowert des Kontos, die sich an die Größe des Kontos anpasst.
Die Strategie bietet eine übersichtliche grafische Oberfläche für die Analyse und Überwachung.
Falsche Durchbruchgefahr: Häufige falsche Durchbruchsignale können in einem schwankenden Markt entstehen.
Nachlässigkeit: Als Trend-Tracking-Strategie kann es sein, dass man zu Beginn einer Trendwende langsam reagiert.
Parameter-Sensitivität: Die Strategie kann auf Parameter-Einstellungen reagieren.
Zurückziehungsrisiko: In einem stark trendigen Markt kann ein teilweiser Stopp dazu führen, dass ein großer Markt verpasst wird.
Marktanpassungsfähigkeit: Strategien können unter bestimmten Marktbedingungen schlechte Leistungen erbringen.
Anpassung der dynamischen Parameter:
Mehrfache Zeitrahmenanalyse:
Der Fluktuationsrate-Filter:
Das ist eine sehr schwierige Aufgabe.
Marktstatistiken nach Kategorien:
AlphaTrend in Kombination mit KAMA ist ein umfassendes und leistungsfähiges Handelssystem, das die Vorteile von AlphaTrend und KAMA kombiniert, um Markttrends genau zu erfassen. Die Risikomanagementmechanismen der Strategie, insbesondere die teilweise Stop-Off-Funktion, bieten Anlegern effektive Instrumente zum Schutz von Gewinnen in volatilen Märkten. Trotz einiger inhärenter Risiken wie False Breakouts und Parameter-Sensitivität hat die Strategie das Potenzial, durch kontinuierliche Optimierung und Anpassung zu einem zuverlässigen Handelssystem zu werden.
/*backtest
start: 2024-06-01 00:00:00
end: 2024-06-30 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('AlphaTrend with KAMA and Risk Management', shorttitle='AT+KAMA+RM', overlay=true, format=format.price, precision=2, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// AlphaTrend Inputs
coeff = input.float(1, 'AT Multiplier', step=0.1)
AP = input.int(14, 'AT Common Period', minval=1)
src = input.source(close, 'AT Source')
showsignals = input.bool(true, 'Show Signals?')
novolumedata = input.bool(false, 'Change calculation (no volume data)?')
// KAMA Inputs
kamaLength = input.int(21, 'KAMA Length', minval=1)
// Risk Management Inputs
profitTarget = input.float(10, 'Profit Target for Partial Exit (%)', minval=1, step=0.1)
// Yeni değişkenler
var float entryPrice = na
var string currentPosition = "flat" // "long", "short", veya "flat"
var float partialExitPrice = na
// AlphaTrend Calculation
ATR = ta.sma(ta.tr, AP)
upT = low - ATR * coeff
downT = high + ATR * coeff
AlphaTrend = 0.0
AlphaTrend := (novolumedata ? ta.rsi(src, AP) >= 50 : ta.mfi(hlc3, AP) >= 50) ? upT < nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : upT : downT > nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : downT
// KAMA Calculation
xPrice = close
xvnoise = math.abs(xPrice - xPrice[1])
nAMA = 0.0
nfastend = 0.666
nslowend = 0.0645
nsignal = math.abs(xPrice - xPrice[kamaLength])
// Manual calculation of sum
nnoise = 0.0
for i = 0 to kamaLength-1
nnoise := nnoise + xvnoise[i]
nefratio = nnoise != 0 ? nsignal / nnoise : 0
nsmooth = math.pow(nefratio * (nfastend - nslowend) + nslowend, 2)
nAMA := nz(nAMA[1]) + nsmooth * (xPrice - nz(nAMA[1]))
// Plotting
color1 = AlphaTrend > AlphaTrend[2] ? #00E60F : AlphaTrend < AlphaTrend[2] ? #80000B : AlphaTrend[1] > AlphaTrend[3] ? #00E60F : #80000B
k1 = plot(AlphaTrend, color=color.new(#0022FC, 0), linewidth=3, title='AlphaTrend')
k2 = plot(AlphaTrend[2], color=color.new(#FC0400, 0), linewidth=3)
fill(k1, k2, color=color1)
plot(nAMA, color=color.yellow, linewidth=2, title='KAMA')
// Sinyal koşulları
buyCondition = (ta.crossover(nAMA, AlphaTrend) and ta.crossover(nAMA, AlphaTrend[2])) or
(ta.crossover(nAMA, AlphaTrend) and nAMA > AlphaTrend[2]) or
(ta.crossover(nAMA, AlphaTrend[2]) and nAMA > AlphaTrend)
sellCondition = (ta.crossunder(nAMA, AlphaTrend) and ta.crossunder(nAMA, AlphaTrend[2])) or
(ta.crossunder(nAMA, AlphaTrend) and nAMA < AlphaTrend[2]) or
(ta.crossunder(nAMA, AlphaTrend[2]) and nAMA < AlphaTrend)
// Yeni Sinyaller
buySignal = buyCondition
sellSignal = sellCondition
// Alım satım mantığı
if (buySignal and currentPosition != "long")
if (currentPosition == "short")
strategy.close("Short")
strategy.entry("Long", strategy.long)
entryPrice := close
currentPosition := "long"
partialExitPrice := entryPrice * (1 + profitTarget / 100)
if (sellSignal and currentPosition != "short")
if (currentPosition == "long")
strategy.close("Long")
strategy.entry("Short", strategy.short)
entryPrice := close
currentPosition := "short"
partialExitPrice := entryPrice * (1 - profitTarget / 100)
// Kısmi çıkış mantığı
if (currentPosition == "long" and high >= partialExitPrice)
strategy.close("Long", comment="Partial Exit at " + str.tostring(profitTarget) + "% profit", qty_percent=50)
partialExitPrice := na
if (currentPosition == "short" and low <= partialExitPrice)
strategy.close("Short", comment="Partial Exit at " + str.tostring(profitTarget) + "% profit", qty_percent=50)
partialExitPrice := na
// Plotting signals
plotshape(buySignal and showsignals ? AlphaTrend * 0.9999 : na, title='BUY', text='BUY', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(#0022FC, 0), textcolor=color.new(color.white, 0))
plotshape(sellSignal and showsignals ? AlphaTrend * 1.0001 : na, title='SELL', text='SELL', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.maroon, 0), textcolor=color.new(color.white, 0))
plotshape(currentPosition == "long" and high >= partialExitPrice ? high : na, title='PARTIAL EXIT LONG', text='PARTIAL', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.orange, 0), textcolor=color.new(color.white, 0))
plotshape(currentPosition == "short" and low <= partialExitPrice ? low : na, title='PARTIAL EXIT SHORT', text='PARTIAL', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(color.orange, 0), textcolor=color.new(color.white, 0))
// Alerts
alertcondition(buySignal, title='BUY Signal', message='KAMA crossed above AlphaTrend - BUY!')
alertcondition(sellSignal, title='SELL Signal', message='KAMA crossed below AlphaTrend - SELL!')
alertcondition((currentPosition == "long" and high >= partialExitPrice) or (currentPosition == "short" and low <= partialExitPrice), title='Partial Exit', message='Profit target reached - Closing half position!')