
Strategi ini menggabungkan ciri-ciri penunjuk AlphaTrend dan strategi Bollinger Bands. Penunjuk AlphaTrend digunakan untuk menangkap trend pasaran, strategi Bollinger Bands digunakan untuk menangkap ciri-ciri pulangan rata-rata pasaran. Gagasan utama strategi ini adalah: lakukan lebih banyak apabila harga menembusi Bollinger Bands ke atas dan penunjuk AlphaTrend ke atas; lakukan kosong apabila harga menembusi Bollinger Bands ke bawah dan penunjuk AlphaTrend ke bawah.
Strategi ini menggabungkan ciri-ciri pengesanan trend dan pulangan nilai rata-rata, mengikuti trend apabila trend jelas, dan memperoleh keuntungan tambahan dalam pasaran yang bergolak. Penunjuk AlphaTrend dapat menyesuaikan diri dengan pergerakan harga secara fleksibel, dan mempunyai kecenderungan yang lebih baik.
Mengenai risiko tersebut, langkah-langkah berikut boleh diambil:
Terdapat banyak ruang untuk pengoptimuman strategi. Pengoptimuman parameter dan penapisan isyarat dapat meningkatkan prestasi strategi secara intuitif. Pengenalan pengurusan kedudukan dapat meratakan keluk keuntungan.
Strategi ini dengan cerdik menggabungkan dua pemikiran strategi kuantitatif yang biasa, iaitu trend tracking dan mean reversion, dan menggunakan penunjuk AlphaTrend dan penunjuk Brin klasik. Penunjuk AlphaTrend memanfaatkan sepenuhnya maklumat harga dan jumlah transaksi, menyesuaikan diri dengan baik dengan irama pasaran sambil menangkap trend.
Strategi logik keseluruhan jelas, parameter yang ditetapkan fleksibel, mudah untuk mengoptimumkan untuk pelbagai jenis dan kitaran. Pada masa yang sama, titik risiko strategi juga lebih jelas, pengurusan kedudukan dan halangan kerugian memerlukan pengoptimuman lebih lanjut. Selain itu, untuk meningkatkan kebolehpercayaan isyarat, anda juga boleh mempertimbangkan untuk memperkenalkan indikator jenis trend seperti ADX, indikator momentum seperti RSI dan lain-lain.
/*backtest
start: 2023-03-22 00:00:00
end: 2024-03-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © brlu99
//@version=5
strategy(title="AlphaTrend and Bollinger Bands 120324 Strategy", shorttitle="AT_BB120324", overlay=true, format=format.price, precision=2, pyramiding=0)
// AlphaTrend Indicator
coeff = input.float(1, 'Multiplier', step=0.1)
AP = input(14, 'Common Period')
ATR = ta.sma(ta.tr, 20)
src = input(close)
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
// Bollinger Bands Strategy
BBPeriod = input.int(20, title="BB Period", minval=1)
BBMultiplier = input.float(2.0, title="BB Multiplier", minval=0.1)
basis = ta.sma(close, BBPeriod)
dev = ta.stdev(close, BBPeriod)
upper = basis + BBMultiplier * dev
lower = basis - BBMultiplier * dev
// Strategy Conditions
longCondition = ta.crossover(close, upper) and ta.crossover(AlphaTrend, AlphaTrend[1])
shortCondition = ta.crossunder(close, lower) and ta.crossunder(AlphaTrend, AlphaTrend[1])
// Exit conditions for Strategy 6
longExit_AT_6 = ta.crossover(close, AlphaTrend)
shortExit_AT_6 = ta.crossunder(close, AlphaTrend)
// Exit condition series
exit1 = input.bool(true, title="Enable Exit Condition for Strategy 1")
// Define exit conditions for each strategy
exit1_condition = close < AlphaTrend ? 1.0 : na
// Strategy Actions
strategy.entry("Buy", strategy.long, when=longCondition)
strategy.entry("Sell", strategy.short, when=shortCondition)
// Exit conditions for Strategy 1
strategy.exit("Buy", "longExit_AT_6", stop = exit1_condition, when =shortExit_AT_6 )
strategy.exit("Sell", "shortExit_AT_6", stop = exit1_condition, when =longExit_AT_6)
// Plotting
plot(AlphaTrend, color=color.blue, title="AlphaTrend")
plot(upper, color=color.green, title="Upper Bollinger Band")
plot(lower, color=color.red, title="Lower Bollinger Band")
// Alerts
alertcondition(longCondition, title='Potential Buy Signal', message='AlphaTrend crossed above Upper Bollinger Band')
alertcondition(shortCondition, title='Potential Sell Signal', message='AlphaTrend crossed below Lower Bollinger Band')