
Strategi ini dinamakan RSI-MA Trend Tracking Strategy, yang menggunakan RSI dan garis MA untuk menentukan trend harga dan menghantar isyarat perdagangan. Isyarat perdagangan dihasilkan apabila RSI melebihi nilai kenaikan dan penurunan yang ditetapkan, dan garis MA digunakan untuk menyaring isyarat palsu, dan hanya akan menghantar isyarat apabila harga terus naik atau turun. Ini dapat menyaring pergerakan getaran dengan berkesan sambil mengekalkan ruang keuntungan.
Strategi ini menggunakan indikator RSI dan garis purata MA. RSI digunakan untuk menilai overbought dan oversold, dan MA digunakan untuk menentukan arah trend. Logiknya ialah:
Hitung nilai penunjuk RSI, dan tetapkan paras naik 90 dan turun 10. Apabila RSI melebihi 90 adalah isyarat overbuy, dan kurang daripada 10 adalah isyarat oversell.
Hitung garis MA purata untuk tempoh tertentu (seperti 4 hari). Apabila harga terus meningkat, garis MA naik; Apabila harga terus menurun, garis MA turun.
Apabila RSI melebihi 90 dan MA pada masa yang sama naik, buat shorting; apabila RSI kurang daripada 10 dan MA pada masa yang sama turun, buat plus.
Stop loss ditetapkan sebagai jumlah mata tetap untuk setiap tangan, dan stop loss ditetapkan sebagai peratusan untuk setiap tangan.
Strategi ini menggabungkan penyaringan ganda RSI dan MA rata-rata, yang dapat menyaring isyarat palsu dengan berkesan dalam keadaan goyah. Pada masa yang sama, dengan menetapkan RSI, mengelakkan isyarat datang terlambat, dan menjamin ruang keuntungan tertentu. Menggunakan MA untuk menentukan arah trend, mengelakkan perdagangan berlawanan.
Risiko utama strategi ini ialah:
RSI dan MA tidak bertindak balas dan boleh menyebabkan kerugian yang lebih besar.
RSI dan MA mungkin sering memberi isyarat dalam keadaan goyah, menyebabkan kos dagangan dan slippage yang meningkat kerana terlalu sering berdagang.
Penetapan parameter yang tidak betul juga boleh mempengaruhi prestasi strategi, seperti RSI atas dan bawah had yang terlalu luas menetapkan isyarat kelewatan, yang terlalu ketat menetapkan isyarat terlalu kerap.
Strategi ini boleh dioptimumkan dengan cara berikut:
Ujian dan pengoptimuman berdasarkan pelbagai varieti dan parameter kitaran, menetapkan kombinasi parameter yang optimum.
Menambah gabungan penunjuk lain, seperti penambahan KDJ, BOLL dan lain-lain, menetapkan syarat penapisan yang lebih ketat, mengurangkan kebarangkalian perdagangan yang salah.
Setting adaptive stop loss mechanism, seperti secara dinamik menyesuaikan harga stop loss berdasarkan kadar turun naik dan ATR.
Menambah algoritma pembelajaran mesin, menyesuaikan parameter strategi secara automatik mengikut keadaan pasaran, dan mencapai pengoptimuman dinamik parameter.
Strategi RSI-MA secara keseluruhannya lebih mudah dan praktikal, dan menggabungkan pengesanan trend dan overbought dan oversold untuk mendapatkan keuntungan yang lebih baik dalam keadaan pasaran yang baik. Namun, terdapat risiko perdagangan yang salah dengan kebarangkalian tertentu, yang memerlukan pengoptimuman lebih lanjut untuk mengurangkan risiko dan meningkatkan kestabilan.
/*backtest
start: 2023-11-10 00:00:00
end: 2023-12-10 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
//This strategy is best used with the Chrome Extension AutoView for automating TradingView alerts.
//You can get the AutoView extension for FREE using the following link
//https://chrome.google.com/webstore/detail/autoview/okdhadoplaoehmeldlpakhpekjcpljmb?utm_source=chrome-app-launcher-info-dialog
strategy("4All", shorttitle="Strategy", overlay=false)
src = close
len = input(4, minval=1, title="Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
plot(rsi, color=purple)
band1 = hline(90)
band0 = hline(10)
fill(band1, band0, color=purple, transp=90)
rsin = input(5)
sn = 100 - rsin
ln = 0 + rsin
short = crossover(rsi, sn)
long = crossunder(rsi, ln)
strategy.entry("long", strategy.long, when=long)
strategy.entry("short", strategy.short, when=short)
TP = input(15) * 10
SL = input(23) * 10
TS = input(0) * 10
CQ = 100
TPP = (TP > 0) ? TP : na
SLP = (SL > 0) ? SL : na
TSP = (TS > 0) ? TS : na
strategy.exit("Close Long", "long", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)
strategy.exit("Close Short", "short", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)