
Strategi ini dinamakan strategi penembusan dua-rail berdasarkan RSI. Strategi ini menggunakan kombinasi dua-rail RSI untuk membuat keputusan dan mencapai tujuan pembelian dan penjualan rendah. Strategi ini dianggap sebagai isyarat pembelian apabila RSI berada di bawah tren rendah yang ditetapkan (default 40) dan pembelian lebih lanjut disahkan jika RSI10 lebih rendah daripada RSI14; apabila RSI berada di atas tren tinggi yang ditetapkan (default 70) dan penjualan disahkan jika RSI10 lebih tinggi daripada RSI14. Strategi ini juga menyediakan mekanisme stop loss dan stop loss bergerak.
Logik teras strategi ini adalah menggunakan dua hala indikator RSI untuk membuat keputusan. Indeks RSI biasanya ditetapkan untuk 14 kitaran, yang mewakili keadaan kuat dan lemah saham selama hampir 14 hari. Strategi ini menambah RSI10 sebagai penunjuk keputusan tambahan.
Apabila RSI14 menembusi 40 orbit, menganggap harga saham jatuh ke arah kelemahan, mungkin peluang untuk membentuk sokongan. Pada masa ini, jika RSI10 lebih kecil daripada RSI14, menunjukkan trend jangka pendek masih ke bawah, isyarat turun naik dapat disahkan lebih lanjut. Oleh itu, isyarat beli dihasilkan apabila RSI14 <= 40 dan RSI10 < RSI14 jatuh.
Apabila RSI14 melepasi 70 lintasan, menganggap harga saham memasuki kawasan kekuatan jangka pendek, mungkin ada peluang untuk melakukan penyesuaian kembali. Pada masa ini, jika RSI10 lebih besar daripada RSI14, menunjukkan trend jangka pendek terus meningkat, isyarat bullish dapat disahkan lebih lanjut. Oleh itu, apabila RSI14 > = 70 dan RSI10 > RSI14 diletakkan, isyarat jual dihasilkan.
Oleh itu, penilaian RSI14 dan RSI10 yang berpasangan membentuk logik utama strategi dua hala.
Untuk memanfaatkan sepenuhnya strategi ini, anda boleh menyesuaikan parameter RSI dengan betul, mengawal kedudukan henti rugi dengan ketat, mengelakkan operasi yang terlalu padat, dan mengejar keuntungan yang stabil dan kekal.
Strategi ini membuat penilaian berdasarkan pemikiran dua jalur RSI, memfilter beberapa isyarat bising hingga tahap tertentu. Tetapi tidak ada strategi penunjuk tunggal yang sempurna, indikator RSI mudah menyesatkan, dan harus berhati-hati. Strategi ini memasukkan mekanisme hentian dan hentian bergerak untuk mengawal risiko, yang sangat diperlukan.
/*backtest
start: 2023-12-31 00:00:00
end: 2024-01-07 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © DojiEmoji
//@version=4
strategy("[KL] RSI 14 + 10 Strategy",overlay=true)
backtest_timeframe_start = input(defval = timestamp("01 Jan 2015 13:30 +0000"), title = "Backtest Start Time", type = input.time)
//backtest_timeframe_end = input(defval = timestamp("19 Mar 2021 19:30 +0000"), title = "Backtest End Time", type = input.time)
TARGET_PROFIT_MODE = input(false,title="Exit when Risk:Reward met")
REWARD_RATIO = input(3,title="Risk:[Reward] (i.e. 3) for exit")
// Trailing stop loss {
TSL_ON = input(true,title="Use trailing stop loss")
var entry_price = float(0)
ATR_multi_len = 26
ATR_multi = input(2, "ATR multiplier for stop loss")
ATR_buffer = atr(ATR_multi_len) * ATR_multi
plotchar(ATR_buffer, "ATR Buffer", "", location = location.top)
risk_reward_buffer = (atr(ATR_multi_len) * ATR_multi) * REWARD_RATIO
take_profit_long = low > entry_price + risk_reward_buffer
take_profit_short = low < entry_price - risk_reward_buffer
var bar_count = 0 //number of bars since entry
var trailing_SL_buffer = float(0)
var stop_loss_price = float(0)
stop_loss_price := max(stop_loss_price, close - trailing_SL_buffer)
// plot TSL line
trail_profit_line_color = color.green
showLine = strategy.position_size == 0
if showLine
trail_profit_line_color := color.black
stop_loss_price := close - trailing_SL_buffer
plot(stop_loss_price,color=trail_profit_line_color)
// }
// RSI
RSI_LOW = input(40,title="RSI entry")
RSI_HIGH = input(70,title="RSI exit")
rsi14 = rsi(close, 14)
rsi10 = rsi(close, 10)
if true// and time <= backtest_timeframe_end
buy_condition = rsi14 <= RSI_LOW and rsi10 < rsi14
exit_condition = rsi14 >= RSI_HIGH and rsi10 > rsi14
//ENTRY:
if strategy.position_size == 0 and buy_condition
entry_price := close
trailing_SL_buffer := ATR_buffer
stop_loss_price := close - ATR_buffer
strategy.entry("Long",strategy.long, comment="buy")
bar_count := 0
else if strategy.position_size > 0
bar_count := bar_count + 1
//EXIT:
// Case (A) hits trailing stop
if TSL_ON and strategy.position_size > 0 and close <= stop_loss_price
if close > entry_price
strategy.close("Long", comment="take profit [trailing]")
stop_loss_price := 0
else if close <= entry_price and bar_count
strategy.close("Long", comment="stop loss")
stop_loss_price := 0
bar_count := 0
// Case (B) take targeted profit relative to risk
if strategy.position_size > 0 and TARGET_PROFIT_MODE
if take_profit_long
strategy.close("Long", comment="take profits [risk:reward]")
stop_loss_price := 0
bar_count := 0
// Case (C)
if strategy.position_size > 0 and exit_condition
if take_profit_long
strategy.close("Long", comment="exit[rsi]")
stop_loss_price := 0
bar_count := 0