
UT Bot’s Dynamic Trend Tracking and RSI Compound Strategy adalah strategi perdagangan kuantitatif yang menggabungkan sistem pelacakan tren adaptif dengan indeks yang relatif kuat (RSI). Inti dari strategi ini adalah membangun dukungan dan resistance band dinamis dengan menggunakan rata-rata true amplitude (ATR), bekerja dengan RSI untuk menangkap sinyal overbought dan oversold di titik pivot pasar, sambil mengintegrasikan 200-periodik indeks moving average (EMA200) untuk konfirmasi tren. Strategi ini juga merancang mekanisme stop loss dinamis berdasarkan ATR ganda, yang dapat secara otomatis menyesuaikan parameter manajemen risiko sesuai dengan volatilitas pasar.
Prinsip inti dari strategi ini didasarkan pada dua sistem indikator teknis utama: sistem pelacakan tren UT Bot dan indikator RSI oscillation.
Sistem pelacakan tren UT Bot menghitung kisaran pergerakan harga melalui indikator ATR dan dengan demikian membangun tren naik turun yang dinamis:
Sistem ini memelihara sebuah jalur untuk menentukan arah tren saat ini:
Pada saat yang sama, strategi ini memfilter sinyal dengan RSI:
Selain itu, strategi ini mengintegrasikan EMA200 sebagai garis referensi tren jangka panjang, dan menyiapkan mekanisme stop-loss berbasis persentase:
Beradaptasi dengan Dinamis: Mengatur bandwidth perdagangan secara otomatis melalui indikator ATR, sehingga strategi dapat beradaptasi dengan berbagai lingkungan pasar yang berfluktuasi, dan dapat beroperasi secara efektif di pasar yang berfluktuasi tinggi dan rendah.
Tren dan GuncanganStrategi ini menggabungkan dua pemikiran: trend tracking dan shock trading, mengikuti tren ketika tren jelas, mencari peluang untuk berbalik ketika pasar overbought dan oversold, meningkatkan strategi holistik.
Tempat Masuk yang Tepat: Dengan RSI ((60⁄40) overbought overbought level widening setting, meningkatkan frekuensi sinyal perdagangan, sekaligus menjamin kualitas sinyal, dan mengoptimalkan waktu masuk.
Peningkatan manajemen risikoTerintegrasi dengan mekanisme stop loss dan stop loss dinamis, stop loss rasio ((3%) lebih besar dari stop loss rasio ((1.5%), sesuai dengan prinsip perdagangan nilai ekspektasi positif, menguntungkan keuntungan stabil jangka panjang.
Sinyal peringatan instanStrategi ini dilengkapi dengan fitur peringatan untuk sinyal jual beli, yang membantu trader untuk menangkap peluang pasar.
Struktur yang jelas dan modularStruktur kode yang jelas, setiap modul fungsi yang jelas, memudahkan pemeliharaan dan pengoptimalan.
Sinyal palsu di pasar yang bergoyangDalam pasar yang tidak jelas tren, strategi dapat menghasilkan sinyal silang yang sering, yang menyebabkan kerugian berturut-turut. Solusinya adalah dengan menambahkan kondisi penyaringan intensitas tren, seperti indikator ADX atau persyaratan durasi tren.
Tidak terlalu besar.: Stop loss yang ditetapkan saat ini 1.5% mungkin terlalu kecil di beberapa pasar yang berfluktuasi tinggi dan mudah dipicu oleh kebisingan pasar. Disarankan untuk menyesuaikan stop loss rasio sesuai dengan karakteristik varietas perdagangan dan dinamika siklus waktu.
Parameter SensitivitasKinerja strategi sensitif terhadap parameter seperti panjang RSI, tingkat overbought dan oversold, dan faktor ATR. Kombinasi parameter yang berbeda menunjukkan performa yang sangat berbeda dalam lingkungan pasar yang berbeda.
Kurangnya identifikasi status pasarStrategi tidak membedakan dengan jelas antara kondisi pasar yang berbeda (trend, shock, consolidation) dan mungkin tidak berkinerja baik dalam beberapa kondisi pasar tertentu.
Referensi EMA200 tidak memadaiMeskipun garis EMA200 telah dipetakan, strategi ini tidak digunakan sebagai kondisi perdagangan dan tidak memanfaatkan informasi tren jangka panjang.
趋势强度 = ta.adx(14) > 25
买入条件 = 趋势强度 and trendUp and rsi < rsiUnder
stopLoss = atr * slFactor
strategy.exit("TP/SL", from_entry="Buy", profit=tpPercent, loss=stopLoss/close*100)
volumeConfirmation = volume > ta.sma(volume, 20) * 1.5
buy = trendUp and rsi < rsiUnder and volumeConfirmation
isVolatile = atr/close*100 > 历史平均水平
isTrending = ta.adx(14) > 25
validTradingHour = (hour >= 9 and hour <= 16)
buy = validTradingHour and trendUp and rsi < rsiUnder
UT Bot’s Dynamic Trend Tracking and RSI Composite Strategy adalah sistem perdagangan komprehensif yang menggabungkan channel volatilitas dinamis dan indikator getaran. Ini menangkap perubahan tren melalui saluran adaptasi UT Bot dan menggunakan sinyal masuk yang dikonfirmasi oleh tingkat overbought dan oversold RSI, sambil mengintegrasikan mekanisme manajemen risiko berbasis persentase.
Namun, strategi ini dapat menghasilkan sinyal palsu di pasar yang bergoyang dan sensitif terhadap pengaturan parameter. Arah optimasi di masa depan harus berfokus pada peningkatan penyaringan intensitas tren, peningkatan manajemen risiko dinamis, pengenalan konfirmasi volume dan perdagangan klasifikasi status pasar. Melalui optimasi ini, strategi ini diharapkan untuk meningkatkan stabilitas dan fleksibilitas lebih lanjut, menjadi sistem perdagangan kuantitatif yang lebih komprehensif dan stabil, dengan mempertahankan keunggulan aslinya.
Secara keseluruhan, ini adalah strategi kuantitatif yang dirancang dengan logika yang jelas dan masuk akal, yang cocok untuk digunakan oleh pedagang dengan basis analisis teknis tertentu. Dengan penerapan arah penyesuaian dan pengoptimalan yang tepat dari parameter, strategi ini diharapkan untuk menghasilkan keuntungan yang stabil dalam perdagangan aktual.
/*backtest
start: 2024-08-04 00:00:00
end: 2025-08-02 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("✅ BACKTEST: UT Bot + RSI", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
rsiLen = input.int(14, "RSI Length")
rsiOver = input.int(60, "RSI Overbought Level")
rsiUnder = input.int(40, "RSI Oversold Level")
atrLen = input.int(10, "ATR Length")
factor = input.float(1.0, "UT Bot Factor", step=0.1)
tpPercent = input.float(3.0, "Take Profit %")
slPercent = input.float(1.5, "Stop Loss %")
rsi = ta.rsi(close, rsiLen)
atr = ta.atr(atrLen)
ema200 = ta.ema(close, 200)
upperBand = close + factor * atr
lowerBand = close - factor * atr
var float trail = na
var int dir = 0
if na(trail)
trail := lowerBand
dir := 0
if close > trail
trail := math.max(trail, lowerBand)
dir := 1
else if close < trail
trail := math.min(trail, upperBand)
dir := -1
else
trail := trail[1]
dir := dir[1]
trendUp = dir == 1 and dir[1] == -1
trendDown = dir == -1 and dir[1] == 1
buy = trendUp and rsi < rsiUnder
sell = trendDown and rsi > rsiOver
if (buy)
strategy.entry("Buy", strategy.long)
strategy.close("Sell")
if (sell)
strategy.entry("Sell", strategy.short)
strategy.close("Buy")
strategy.exit("TP/SL", from_entry="Buy", profit=tpPercent, loss=slPercent)
strategy.exit("TP/SL", from_entry="Sell", profit=tpPercent, loss=slPercent)
// plotting
plot (ema200, "EMA 200, color=color.orange")
// === ALERT SIGNALS ===
alertcondition(buy, title="Buy Signal", message="BUY")
alertcondition(sell, title="Sell Signal", message="SELL")