Strategi mengikut arah aliran suai berdasarkan model berbilang faktor


Tarikh penciptaan: 2023-12-19 11:04:27 Akhirnya diubah suai: 2023-12-19 11:04:27
Salin: 1 Bilangan klik: 653
1
fokus pada
1621
Pengikut

Strategi mengikut arah aliran suai berdasarkan model berbilang faktor

Gambaran keseluruhan

Strategi ini adalah strategi pemantauan trend penyesuaian diri yang didorong oleh model pelbagai faktor. Ia menggabungkan beberapa indikator seperti RSI, MACD, dan Stochastics untuk membina model pelbagai faktor untuk menentukan arah trend. Ia juga mempunyai mekanisme penangguhan diri yang dapat menyesuaikan harga penangguhan diri berdasarkan dinamik ATR untuk mengawal risiko.

Prinsip

Strategi ini menggunakan beberapa model penunjuk untuk menentukan trend. Pertama, ia menggunakan RSI, MACD untuk menentukan arah trend; kemudian, dengan Stochastics untuk menentukan sama ada overbought atau oversold, menapis beberapa isyarat.

Khususnya, ia menghasilkan isyarat beli apabila RSI lebih tinggi daripada 52 dan MACD Gold Fork; ia menghasilkan isyarat jual apabila RSI lebih rendah daripada 48 dan MACD Dead Fork. Untuk menyaring isyarat palsu, ia juga akan mengesan sama ada Stochastics telah membeli lebih banyak daripada menjual. Dari segi hentikan, ia dapat mengawal risiko hentikan tunggal dengan berkesan, berdasarkan parameter pengiraan ATR.

Kelebihan

Kelebihan terbesar strategi ini adalah keupayaan kawalan risiko yang kuat. Melalui model pelbagai faktor untuk menentukan arah trend, anda boleh menapis sebahagian daripada bunyi bising dan meningkatkan kualiti isyarat. Pada masa yang sama, mekanisme berhenti kerugian yang beradaptasi dapat menyesuaikan lebar berhenti kerugian mengikut tahap turun naik pasaran, dan mengawal kerugian tunggal dengan berkesan.

Selain itu, parameter strategi ini ditetapkan dengan munasabah, dan pengukuran semula yang lebih baik. Aset yang berbeza kitaran boleh dioptimumkan dengan menyesuaikan parameter. Ia boleh menyesuaikan diri dengan lebih banyak keadaan pasaran melalui pengoptimuman parameter.

Risiko

Risiko utama strategi ini adalah kualiti pembinaan model pelbagai faktor. Jika model dibina dengan tidak betul, ia tidak dapat menentukan trend dengan berkesan, dan akan menghasilkan banyak isyarat yang salah. Selain itu, strategi stop loss itu sendiri mempunyai risiko untuk diboikot.

Untuk mengurangkan risiko ini, penyesuaian boleh dilakukan dari segi penyesuaian model, penyesuaian parameter, dan kombinasi strategi hentikan kerugian lain. Intervensi manual juga diperlukan apabila terdapat pasaran yang tidak normal.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Menyesuaikan berat indeks dalam model multi faktor untuk mencari kombinasi berat indeks yang optimum

  2. Uji lebih banyak petunjuk, seperti CCI, kadar turun naik, dan model pelbagai faktor yang kaya

  3. Tetapan parameter yang dioptimumkan untuk lebih banyak jenis dan kitaran

  4. Mencuba pelbagai strategi berhenti kerugian untuk mencari kombinasi yang terbaik

  5. Tambah modul latihan model dan penilaian strategi untuk mewujudkan pembelajaran mesin yang digerakkan

ringkaskan

Strategi ini mengintegrasikan model multi-faktor dan mekanisme henti rugi yang beradaptasi, mewujudkan kombinasi organik penilaian trend dan kawalan risiko. Ia mempunyai kesan pengembalian yang baik dan berskala. Dengan pengoptimuman berterusan, ia boleh menjadi strategi kuantitatif yang bernilai jangka panjang.

Kod sumber strategi
/*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)