
Strategi ini adalah strategi pelacakan tren adaptif yang didorong oleh model multi-faktor. Ini mengintegrasikan beberapa indikator seperti RSI, MACD, dan Stochastics untuk membangun model multi-faktor untuk menentukan arah tren. Ini juga memiliki mekanisme stop loss adaptif yang dapat menyesuaikan harga stop loss berdasarkan dinamika ATR untuk mengendalikan risiko.
Strategi ini menggunakan beberapa indikator untuk membangun model untuk menilai tren. Pertama, ia menilai arah tren dengan kombinasi RSI, MACD; Kemudian, ia menilai apakah ada overbought atau oversold dengan kombinasi Stochastics, dan memfilter beberapa sinyal. Setelah masuk ke dalam pesanan, ia menggunakan ATR untuk menghitung parameter risiko, untuk mencapai stop loss adaptif.
Secara khusus, ia menghasilkan sinyal beli ketika RSI lebih tinggi dari 52 dan MACD Gold Forks; menghasilkan sinyal jual ketika RSI lebih rendah dari 48 dan MACD Dead Forks. Untuk menyaring sinyal palsu, ia juga mendeteksi apakah Stochastics terlalu banyak membeli atau terlalu banyak menjual.
Keuntungan terbesar dari strategi ini adalah kemampuan pengendalian risiko yang kuat. Melalui model multi-faktor untuk menentukan arah tren, dapat disaring sebagian dari kebisingan, meningkatkan kualitas sinyal. Sementara itu, mekanisme stop loss adaptif dapat menyesuaikan amplitudo stop loss sesuai dengan tingkat fluktuasi pasar, secara efektif mengendalikan kerugian tunggal.
Selain itu, pengaturan parameter strategi ini masuk akal dan pengukuran yang lebih baik. Aset dengan siklus yang berbeda dapat dioptimalkan dengan menyesuaikan parameter.
Risiko utama dari strategi ini adalah kualitas model yang dibangun dengan banyak faktor. Jika model tidak dibangun dengan baik, tidak dapat menentukan tren secara efektif, maka akan menghasilkan banyak sinyal yang salah. Selain itu, strategi stop loss sendiri memiliki risiko untuk di-arbitrage.
Untuk mengurangi risiko ini, perbaikan dapat dilakukan dari penyesuaian bobot model, pengaturan parameter yang dioptimalkan, dan kombinasi strategi stop loss lainnya. Intervensi manual juga diperlukan ketika terjadi pasar yang tidak normal.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Menyesuaikan bobot indikator dalam model multi-faktor untuk menemukan kombinasi bobot optimal
Uji lebih banyak indikator, seperti CCI, volatilitas, dan model multi-faktor yang kaya
Pengaturan parameter yang dioptimalkan untuk lebih banyak varietas dan siklus
Mencoba berbagai strategi stop loss untuk menemukan kombinasi terbaik
Menambahkan modul pelatihan model dan evaluasi strategi, untuk memungkinkan pembelajaran mesin
Strategi ini mengintegrasikan model multi-faktor dan mekanisme stop loss adaptif, yang memungkinkan kombinasi organik antara penilaian tren dan pengendalian risiko. Strategi ini memiliki pengembalian yang baik dan dapat diperluas. Dengan pengoptimalan berkelanjutan, strategi ini dapat menjadi strategi kuantitatif yang layak untuk dimiliki dalam jangka panjang.
/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy(title="TradersAI_UTBot", overlay = true)
// CREDITS to @HPotter for the orginal code.
// CREDITS to @Yo_adriiiiaan for recently publishing the UT Bot study based on the original code -
// I just added some simple code to turn it into a strategy so that you all can backtest it to see the results for yourself!
// Use this strategy on your favorite instrumnet and timeframe, with your favorite settings
// While @Yo_adriiiiaan mentions it works best on a 4-hour timeframe or above,
// I am happy to share here this working on a 15-minute chart on e-mini S&P 500 Index (using the KeyValue setting at 10)
// I am sure different people would discover different settings that work best for their preferred instrumnet/timeframe etc.
// Play with it and enjoy! And, don't forget to share any positive results you might get! Good luck with your trading!
SOURCE = input(hlc3)
RSILENGTH = input(14, title = "RSI LENGTH")
RSICENTERLINE = input(52, title = "RSI CENTER LINE")
MACDFASTLENGTH = input(7, title = "MACD FAST LENGTH")
MACDSLOWLENGTH = input(12, title = "MACD SLOW LENGTH")
MACDSIGNALSMOOTHING = input(12, title = "MACD SIGNAL SMOOTHING")
a = input(10, title = "Key Vaule. 'This changes the sensitivity'")
SmoothK = input(3)
SmoothD = input(3)
LengthRSI = input(14)
LengthStoch = input(14)
RSISource = input(close)
c = input(10, title="ATR Period")
xATR = atr(c)
nLoss = a * xATR
xATRTrailingStop = iff(close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), close - nLoss),
iff(close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), close + nLoss),
iff(close > nz(xATRTrailingStop[1], 0), close - nLoss, close + nLoss)))
pos = iff(close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0), 1,
iff(close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0)))
color = pos == -1 ? red: pos == 1 ? green : blue
ema= ema(close,1)
above = crossover(ema,xATRTrailingStop )
below = crossover(xATRTrailingStop,ema)
buy = close > xATRTrailingStop and above
sell = close < xATRTrailingStop and below
barbuy = close > xATRTrailingStop
barsell = close < xATRTrailingStop
plotshape(buy, title = "Buy", text = 'Buy', style = shape.labelup, location = location.belowbar, color= green,textcolor = white, transp = 0, size = size.tiny)
plotshape(sell, title = "Sell", text = 'Sell', style = shape.labeldown, location = location.abovebar, color= red,textcolor = white, transp = 0, size = size.tiny)
barcolor(barbuy? green:na)
barcolor(barsell? red:na)
alertcondition(buy, title='Buy', message='Buy')
alertcondition(sell, title='Sell', message='Sell')
if(buy)
strategy.entry("UTBotBuy",strategy.long)
if(sell)
strategy.entry("UTBotSell",strategy.short)