Strategi ini menggabungkan indikator RSI dan purata bergerak, membuat keputusan trend dan menghasilkan isyarat perdagangan, dan menggunakan cara menghentikan kerugian bergerak untuk mengunci keuntungan dan mengawal risiko. Ia adalah strategi perdagangan yang mengikuti trend.
Prinsip-prinsip strategi:
Hitung RSI untuk menilai keadaan overbought dan oversold. RSI lebih tinggi daripada 50 adalah isyarat berbilang.
Untuk mengira purata bergerak perlahan-lahan, golden cross berbentuk isyarat berbilang kepala.
RSI yang terus meningkat juga boleh digunakan sebagai isyarat perdagangan untuk dijejaki.
Setelah masuk, sediakan garis hentian dan hentian bergerak.
Barisan hentian tetap di bawah harga, barisan hentian tetap di atas harga.
Harga menyentuh garisan stop loss dan meletak jawatan.
Kelebihan strategi ini:
Indeks RSI menilai terlalu banyak membeli dan terlalu banyak menjual, mengelakkan mengejar kenaikan dan penurunan.
Rata-rata bergerak mengenal pasti arah trend. Kombinasi meningkatkan ketepatan penghakiman.
Mod Stop Loss Mobile, yang boleh menyesuaikan kedudukan Stop Loss mengikut perubahan harga dalam masa nyata.
Risiko strategi ini:
Indeks RSI dan garis rata-rata mudah menghasilkan isyarat salah dalam keadaan goyah.
Penangguhan Kerosakan Bergerak memerlukan penyetempatan yang berhati-hati, terlalu besar atau terlalu kecil boleh menjadi masalah.
Tidak boleh membatasi jumlah kerugian tunggal, dan ada risiko kerugian besar.
Ringkasnya, strategi ini menggabungkan kelebihan RSI dan rata-rata, dan menggunakan kaedah stop loss bergerak untuk pengurusan risiko. Penambahbaikan dalam pengoptimuman parameter dan kawalan risiko dapat memberikan kesan yang lebih baik.
/*backtest
start: 2022-09-06 00:00:00
end: 2023-09-12 00:00:00
period: 4d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("RSI and MA Strategy with Trailing Stop Loss and Take Profit",
overlay=true,
initial_capital=1000,
process_orders_on_close=true,
default_qty_type=strategy.percent_of_equity,
default_qty_value=100,
commission_type=strategy.commission.percent,
commission_value=0.1)
showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2022, 1, 1, 0, 0)
notInTrade = strategy.position_size <= 0
//==================================Buy Conditions============================================
//RSI
length = input(14)
rsi = ta.rsi(close, length)
buyCondition1 = rsi > 50
//MA
SMA9 = ta.sma(close, 9)
SMA50 = ta.sma(close, 50)
SMA100 = ta.sma(close, 100)
plot(SMA9, color = color.green)
plot(SMA50, color = color.orange)
plot(SMA100, color = color.blue)
buyCondition2 = SMA9 > SMA50//ta.crossover(SMA9, SMA100)
//RSI Increase
increase = 5
buyCondition3 = (rsi > rsi[1] + increase)
if (buyCondition1 and buyCondition2 and buyCondition3 and timePeriod) //and buyCondition
strategy.entry("Long", strategy.long)
//==================================Sell Conditions============================================
//Trailing Stop Loss and Take Profit
longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=2) * 0.01
shortTrailPerc = input.float(title='Trail Short Loss (%)', minval=0.0, step=0.1, defval=1) * 0.01
longStopPrice = 0.0
shortStopPrice = 0.0
longStopPrice := if strategy.position_size > 0
stopValue = close * (1 - longTrailPerc)
math.max(stopValue, longStopPrice[1])
else
0
shortStopPrice := if strategy.position_size < 0
stopValue = close * (1 + shortTrailPerc)
math.min(stopValue, shortStopPrice[1])
else
999999
strategy.exit(id="Exit", stop = longStopPrice, limit = shortStopPrice)