Strategi ini adalah sistem mengikuti trend yang menggabungkan penunjuk AlphaTrend dengan Kaufman Adaptive Moving Average (KAMA), sementara juga menggabungkan ciri pengurusan risiko. Strategi ini bertujuan untuk menangkap trend pasaran sambil menguruskan risiko melalui pengambilan keuntungan separa. Pada intinya, strategi menggunakan penunjuk AlphaTrend untuk mengenal pasti arah trend keseluruhan, sementara KAMA digunakan untuk menjana isyarat kemasukan dan keluar yang lebih tepat. Di samping itu, strategi ini termasuk mekanisme pengambilan keuntungan separa berasaskan peratusan untuk mengunci keuntungan apabila sasaran tertentu dicapai.
Pengiraan Indikator AlphaTrend:
Pengiraan KAMA:
Generasi Isyarat Perdagangan:
Pengurusan Risiko:
Pengurusan Kedudukan:
Kebolehsesuaian Trend yang Kuat: Gabungan AlphaTrend dan KAMA membolehkan penyesuaian yang lebih baik kepada pelbagai persekitaran pasaran.
Kebolehpercayaan Isyarat Tinggi: Pengesahan keadaan berbilang kali meningkatkan kebolehpercayaan isyarat perdagangan.
Pengurusan Risiko Komprehensif: Mekanisme mengambil keuntungan separa membantu memastikan keuntungan di pasaran yang tidak menentu.
Pengurusan Posisi Fleksibel: Ukuran kedudukan berasaskan ekuiti disesuaikan dengan skala modal yang berbeza.
Visualisasi yang sangat baik: Strategi ini menyediakan antara muka grafik yang jelas untuk analisis dan pemantauan yang mudah.
Risiko pecah palsu: Boleh menghasilkan isyarat palsu yang kerap di pasaran yang bergolak.
Lag: Sebagai strategi trend-mengikuti, ia mungkin bertindak balas perlahan kepada pembalikan trend.
Sensitiviti Parameter: Prestasi strategi mungkin sensitif kepada tetapan parameter.
Risiko Penarikan: Mengambil keuntungan sebahagiannya boleh mengakibatkan kehilangan pergerakan besar di pasaran yang mempunyai trend yang kuat.
Kesesuaian pasaran: Strategi mungkin kurang berprestasi dalam keadaan pasaran tertentu.
Penyesuaian Parameter Dinamik:
Analisis Pelbagai Tempoh:
Penapis Volatiliti:
Stop-Loss pintar:
Klasifikasi Negara Pasaran:
Adaptive Trend Following Strategy Menggabungkan AlphaTrend dan KAMA dengan Pengurusan Risiko adalah sistem perdagangan yang komprehensif dan berkuasa. Ia mencapai penangkapan trend pasaran yang tepat dengan menggabungkan kekuatan penunjuk AlphaTrend dan KAMA. Mekanisme pengurusan risiko strategi, terutamanya ciri mengambil keuntungan separa, menyediakan peniaga dengan alat yang berkesan untuk melindungi keuntungan di pasaran yang tidak menentu. Walaupun terdapat risiko yang melekat, seperti pecah palsu dan sensitiviti parameter, pengoptimuman dan penyesuaian berterusan memberikan strategi ini potensi untuk menjadi sistem perdagangan yang boleh dipercayai. Arahan pengoptimuman masa depan, seperti penyesuaian parameter dinamik dan analisis jangka masa pelbagai, akan meningkatkan lagi fleksibiliti 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!')