Strategi ini adalah sistem trend-following yang menggabungkan indikator AlphaTrend dengan Kaufman Adaptive Moving Average (KAMA), sementara juga menggabungkan fitur manajemen risiko. Strategi ini bertujuan untuk menangkap tren pasar sambil mengelola risiko melalui pengambilan keuntungan parsial. Pada intinya, strategi menggunakan indikator AlphaTrend untuk mengidentifikasi arah tren keseluruhan, sementara KAMA digunakan untuk menghasilkan sinyal masuk dan keluar yang lebih tepat. Selain itu, strategi ini mencakup mekanisme pengambilan keuntungan parsial berbasis persentase untuk mengunci keuntungan ketika target tertentu tercapai.
Perhitungan indikator AlphaTrend:
Perhitungan KAMA:
Generasi sinyal perdagangan:
Manajemen Risiko:
Manajemen Posisi:
Adaptabilitas Tren yang Kuat: Kombinasi AlphaTrend dan KAMA memungkinkan adaptasi yang lebih baik terhadap berbagai lingkungan pasar.
Keandalan sinyal yang tinggi: Konfirmasi kondisi ganda meningkatkan keandalan sinyal perdagangan.
Manajemen Risiko yang Komprehensif: Mekanisme mengambil keuntungan parsial membantu mengamankan keuntungan di pasar yang tidak stabil.
Manajemen Posisi Fleksibel: Ukuran posisi berbasis ekuitas disesuaikan dengan skala modal yang berbeda.
Visualisasi yang sangat baik: Strategi ini menyediakan antarmuka grafis yang jelas untuk analisis dan pemantauan yang mudah.
Risiko Pelanggaran Palsu: Dapat menghasilkan sinyal palsu yang sering terjadi di pasar yang bergolak.
Lag: Sebagai strategi trend-mengikuti, itu mungkin bereaksi perlahan untuk pembalikan tren.
Sensitivitas Parameter: Kinerja strategi mungkin sensitif terhadap pengaturan parameter.
Risiko Penarikan: Mengambil sebagian keuntungan dapat mengakibatkan kehilangan pergerakan besar di pasar dengan tren yang kuat.
Adaptifitas pasar: Strategi mungkin kurang berkinerja dalam kondisi pasar tertentu.
Pengaturan parameter dinamis:
Analisis Multi-Timeframe:
Penyaringan Volatilitas:
Stop-Loss cerdas:
Klasifikasi Negara Pasar:
Adaptive Trend Following Strategy Menggabungkan AlphaTrend dan KAMA dengan Risk Management adalah sistem perdagangan yang komprehensif dan kuat. Ini mencapai penangkapan tren pasar yang tepat dengan menggabungkan kekuatan indikator AlphaTrend dan KAMA. Mekanisme manajemen risiko strategi, terutama fitur mengambil keuntungan parsial, menyediakan pedagang dengan alat yang efektif untuk melindungi keuntungan di pasar yang tidak stabil. Meskipun ada risiko yang melekat, seperti kebocoran palsu dan sensitivitas parameter, pengoptimalan dan penyesuaian terus-menerus memberikan strategi ini potensi untuk menjadi sistem perdagangan yang dapat diandalkan. Arahan optimasi masa depan, seperti penyesuaian parameter dinamis dan analisis multi-frame timeframe, akan lebih meningkatkan fleksibilitas dan ketahanan strategi
/*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!')