
Strategi pelacakan dua arah AlphaTrend adalah strategi untuk melakukan perdagangan berdasarkan sinyal beli dan jual dari indikator AlphaTrend. Strategi ini dapat membuka posisi overhead dan overhead di area di mana indikator AlphaTrend menghasilkan sinyal beli dan jual.
Inti dari strategi pelacakan dua arah AlphaTrend adalah indikator AlphaTrend. Indikator AlphaTrend didasarkan pada kombinasi rata-rata gelombang nyata yang disesuaikan (ATR) dan harga (harga penutupan atau harga rata-rata tertimbang).
Uptrend = harga terendah - ATR * faktor Jalur bawah = harga tertinggi + ATR * faktor
Di mana ATR adalah rata-rata amplitudo riil dari periode tertentu yang lalu, dan koefisien adalah parameter yang dapat disesuaikan. Ketika harga lebih tinggi dari tren atas, garis indikator mendekati tren atas; Ketika harga lebih rendah dari tren bawah, garis indikator mendekati tren bawah. Dengan demikian, indikator AlphaTrend membentuk saluran yang beradaptasi.
Strategi pelacakan AlphaTrend bidirectional didasarkan pada sinyal dari indikator AlphaTrend untuk membangun posisi overhead dan overhead kosong. Logika spesifiknya adalah:
Dengan demikian, transaksi yang dilacak dua arah berdasarkan AlphaTrend indicator channel dinamika akan selesai.
Keuntungan terbesar dari strategi pelacakan dua arah AlphaTrend adalah kemampuan untuk melacak perubahan tren pasar. ATR yang dapat beradaptasi dapat menyesuaikan ruang saluran sesuai dengan perubahan volatilitas pasar, menghindari masalah bahwa indikator tradisional seperti Bollinger Bands mudah gagal karena meningkatnya volatilitas.
Selain itu, indikator AlphaTrend yang menggabungkan harga dan volume transaksi (atau momentum) dapat memfilter beberapa terobosan palsu. Ini juga meningkatkan kualitas sinyal strategi.
Risiko utama dari strategi penelusuran dua arah AlphaTrend berasal dari dampak goncangan pasar yang besar pada saluran indikator. Ketika pasar mengalami fluktuasi yang tidak biasa, titik stop loss dapat ditembus dan menyebabkan kerugian yang lebih besar. Ini perlu dikendalikan dengan penyesuaian parameter ATR dan titik stop loss yang sesuai.
Selain itu, indikator ALPHA sendiri akan mengalami lag. Oleh karena itu, sinyal yang salah juga akan dihasilkan di dekat titik balik. Ini perlu dibantu oleh indikator lain untuk mengkonfirmasi.
Strategi pelacakan dua arah AlphaTrend dapat dioptimalkan dalam beberapa hal:
Dengan mengoptimalkan beberapa poin di atas, Anda dapat meningkatkan stabilitas dan profitabilitas strategi AlphaTrend lebih jauh.
Strategi pelacakan dua arah AlphaTrend secara keseluruhan merupakan strategi yang efektif untuk melacak perubahan pasar. Ini memecahkan masalah dengan indikator teknis tradisional yang mudah gagal, dan juga menggabungkan volume transaksi untuk memfilter sinyal. Dengan pengoptimalan yang tepat, strategi ini dapat menjadi alat yang kuat dalam sistem perdagangan kuantitatif.
/*backtest
start: 2024-01-02 00:00:00
end: 2024-02-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// author © KivancOzbilgic
// developer © KivancOzbilgic
//@version=5
strategy('AlphaTrend', shorttitle='AT', overlay=true, format=format.price, precision=2)
coeff = input.float(1, 'Multiplier', step=0.1)
AP = input(14, 'Common Period')
ATR = ta.sma(ta.tr, AP)
src = input(close)
showsignalsk = input(title='Show Signals?', defval=true)
novolumedata = input(title='Change calculation (no volume data)?', defval=false)
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
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)
k2 = plot(AlphaTrend[2], color=color.new(#FC0400, 0), linewidth=3)
fill(k1, k2, color=color1)
buySignalk = ta.crossover(AlphaTrend, AlphaTrend[2])
sellSignalk = ta.crossunder(AlphaTrend, AlphaTrend[2])
K1 = ta.barssince(buySignalk)
K2 = ta.barssince(sellSignalk)
O1 = ta.barssince(buySignalk[1])
O2 = ta.barssince(sellSignalk[1])
//plotshape(buySignalk and showsignalsk and O1 > K2 ? AlphaTrend[2] * 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(sellSignalk and showsignalsk and O2 > K1 ? AlphaTrend[2] * 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))
longCondition = buySignalk and showsignalsk and O1 > K2
if (longCondition)
strategy.entry("BUY", strategy.long, comment = "BUY ENTRY")
shortCondition = sellSignalk and showsignalsk and O2 > K1
if (shortCondition )
strategy.entry("SELL", strategy.short, comment = "SELL ENTRY")
// alertcondition(buySignalk and O1 > K2, title='Potential BUY Alarm', message='BUY SIGNAL!')
// alertcondition(sellSignalk and O2 > K1, title='Potential SELL Alarm', message='SELL SIGNAL!')
// alertcondition(buySignalk[1] and O1[1] > K2, title='Confirmed BUY Alarm', message='BUY SIGNAL APPROVED!')
// alertcondition(sellSignalk[1] and O2[1] > K1, title='Confirmed SELL Alarm', message='SELL SIGNAL APPROVED!')
// alertcondition(ta.cross(close, AlphaTrend), title='Price Cross Alert', message='Price - AlphaTrend Crossing!')
// alertcondition(ta.crossover(low, AlphaTrend), title='Candle CrossOver Alarm', message='LAST BAR is ABOVE ALPHATREND')
// alertcondition(ta.crossunder(high, AlphaTrend), title='Candle CrossUnder Alarm', message='LAST BAR is BELOW ALPHATREND!')
// alertcondition(ta.cross(close[1], AlphaTrend[1]), title='Price Cross Alert After Bar Close', message='Price - AlphaTrend Crossing!')
// alertcondition(ta.crossover(low[1], AlphaTrend[1]), title='Candle CrossOver Alarm After Bar Close', message='LAST BAR is ABOVE ALPHATREND!')
// alertcondition(ta.crossunder(high[1], AlphaTrend[1]), title='Candle CrossUnder Alarm After Bar Close', message='LAST BAR is BELOW ALPHATREND!')