Sumber daya yang dimuat... Pemuatan...

Strategi Pelacakan Tren Berdasarkan Model Multi-Faktor dengan Adaptive Trailing Stoploss

Penulis:ChaoZhang, Tanggal: 2023-12-19 11:04:27
Tag:

img

Gambaran umum

Strategi ini adalah strategi pelacakan tren yang didorong oleh model multi-faktor dengan stoploss trailing adaptif. Ini menggabungkan beberapa indikator seperti RSI, MACD, Stochastics untuk membangun model multi-faktor untuk menentukan arah tren. Sementara itu, ini menampilkan mekanisme stoploss trailing adaptif yang secara dinamis menyesuaikan harga stoploss berdasarkan ATR untuk mewujudkan kontrol risiko.

Prinsip-prinsip

Strategi ini memanfaatkan beberapa indikator untuk membangun model untuk menilai tren. Pertama, menggabungkan RSI dan MACD untuk menentukan arah tren; kemudian menggunakan Stochastics untuk menyaring sinyal yang terlalu banyak dibeli atau terlalu banyak dijual. Setelah memasukkan pesanan, menggunakan ATR untuk menghitung parameter risiko dan menerapkan stop loss adaptif.

Secara khusus, ini menghasilkan sinyal beli ketika RSI berada di atas 52 dan MACD golden cross terjadi; ini menghasilkan sinyal jual ketika RSI berada di bawah 48 dan MACD dead cross terjadi. Untuk menyaring sinyal palsu, ini juga mendeteksi apakah Stochastic overbought atau oversold. Untuk stop loss, ini menghitung parameter berdasarkan ATR untuk mewujudkan adaptive stop loss, yang dapat secara efektif mengendalikan risiko stop loss tunggal.

Keuntungan

Keuntungan terbesar dari strategi ini terletak pada kemampuan pengendalian risiko yang kuat. Dengan menilai arah tren dengan model multi-faktor, ia dapat menyaring beberapa kebisingan dan meningkatkan kualitas sinyal. Sementara itu, mekanisme stop loss adaptif dapat menyesuaikan rentang stop loss berdasarkan volatilitas pasar untuk secara efektif mengendalikan kerugian tunggal.

Selain itu, parameter strategi ini cukup ditetapkan dengan hasil backtesting yang baik. aset siklus yang berbeda dapat mencapai optimasi melalui penyesuaian parameter.

Risiko

Risiko utama dari strategi ini adalah kualitas konstruksi model multi-faktor. Jika model gagal secara efektif menentukan tren, itu akan menghasilkan sinyal palsu besar-besaran. Juga, strategi stoploss secara inheren membawa risiko diburu.

Untuk mengurangi risiko ini, perbaikan dapat dilakukan dari aspek seperti menyesuaikan berat model, mengoptimalkan pengaturan parameter, menggabungkan dengan strategi stop loss lainnya.

Arahan Optimasi

Strategi ini dapat dioptimalkan dari aspek berikut:

  1. Sesuaikan bobot indikator dalam model multifaktor untuk menemukan kombinasi optimal

  2. Uji lebih banyak indikator seperti CCI, volatilitas dll untuk memperkaya model multifaktor

  3. Mengoptimalkan pengaturan parameter agar sesuai dengan lebih banyak produk dan siklus

  4. Coba strategi stoploss yang berbeda untuk menemukan kombinasi yang optimal

  5. Tambahkan modul pelatihan model dan penilaian strategi untuk memungkinkan drive pembelajaran mesin

Ringkasan

Strategi ini mengintegrasikan model multi-faktor dan mekanisme stop loss adaptif untuk mencapai kombinasi organik penilaian tren dan pengendalian risiko.


/*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)

Lebih banyak