RSI Strategy Penembusan Dua-Latar

Penulis:ChaoZhang, Tarikh: 2024-01-08 10:28:26
Tag:

img

Ringkasan

Strategi ini dinamakan RSI Dual-track Breakthrough Strategy. Ia menggunakan dua trek penunjuk RSI untuk penghakiman untuk mencapai matlamat membeli rendah dan menjual tinggi. Apabila penunjuk RSI jatuh di bawah trek bawah yang ditetapkan (default 40), ia dianggap sebagai isyarat beli. Pada masa ini, jika RSI10 kurang daripada RSI14, ia mengesahkan pembelian; Apabila penunjuk RSI naik di atas trek atas yang ditetapkan (default 70), ia dianggap sebagai isyarat jual. Pada masa ini, jika RSI10 lebih besar daripada RSI14, ia mengesahkan penjualan. Strategi ini juga menetapkan mekanisme pergerakan stop loss dan mengambil keuntungan.

Prinsip Strategi

Logik teras strategi ini adalah untuk menggunakan trek ganda penunjuk RSI untuk penghakiman. Penunjuk RSI biasanya ditetapkan kepada 14 tempoh, mewakili kekuatan dan kelemahan stok dalam 14 hari terakhir. Strategi ini menambah RSI10 sebagai penunjuk penghakiman tambahan.

Apabila RSI14 memecahkan di bawah trek 40, dipercayai bahawa harga saham telah menembusi sisi lemah dan mungkin ada peluang pemulihan sokongan. Pada masa ini, jika RSI10 kurang dari RSI14, ini bermakna bahawa trend jangka pendek masih menurun, yang dapat mengesahkan isyarat jual. Jadi apabila RSI14 <= 40 dan RSI10 dipenuhi, isyarat beli dihasilkan.

Apabila RSI14 memecahkan di atas trek 70, ia dipercayai bahawa harga saham telah memasuki kawasan yang kuat jangka pendek dan mungkin ada peluang untuk penyesuaian mundur. Pada masa ini, jika RSI10 lebih besar daripada RSI14, ini bermakna trend jangka pendek berterusan ke atas, yang dapat lebih mengesahkan isyarat beli.

Oleh itu, pertimbangan gabungan RSI14 dan RSI10 merupakan logik teras strategi dual-track.

Kelebihan Strategi

  1. Penghakiman gabungan penunjuk RSI dua boleh menangkap isyarat perdagangan dengan lebih tepat
  2. Penggunaan mekanisme stop loss bergerak boleh mengurangkan kerugian tepat pada masanya dan mengawal pengeluaran maksimum
  3. Tetapan mekanisme keluar mengambil keuntungan membolehkan keluar apabila mencapai keuntungan sasaran, mengelakkan retracement profitering

Risiko Strategi

  1. Indikator RSI cenderung untuk menjana isyarat palsu dan kerugian tidak boleh dielakkan sepenuhnya
  2. Jika titik stop loss ditetapkan terlalu dekat, ia mungkin akan diambil segera, jika ditetapkan terlalu besar ia sukar untuk mengawal risiko
  3. Dalam keadaan pasaran yang tidak normal seperti jurang, ia juga boleh membawa kepada kerugian

Untuk memanfaatkan sepenuhnya strategi ini, parameter RSI boleh diselaraskan dengan betul, kedudukan stop loss harus dikawal dengan ketat, mengelakkan operasi yang terlalu kerap, dan mengejar keuntungan yang stabil.

Arah-Arahan Pengoptimuman Strategi

  1. Pertimbangkan untuk memasukkan penunjuk lain untuk pengesahan gabungan, seperti KDJ, MACD dll.
  2. Tetapkan parameter RSI mengikut ciri-ciri produk yang berbeza
  3. Tetapkan kehilangan berhenti dinamik berdasarkan penunjuk seperti ATR untuk menyesuaikan kedudukan berhenti tepat pada masanya
  4. Mengoptimumkan parameter RSI secara automatik melalui teknik pembelajaran mesin

Ringkasan

Strategi ini membuat penilaian berdasarkan idea dua trek RSI dan menapis beberapa isyarat bising hingga tahap tertentu. Tetapi tidak ada strategi penunjuk tunggal yang boleh menjadi sempurna, penunjuk RSI cenderung menyesatkan dan harus dilihat dengan berhati-hati. Strategi ini menggabungkan pergerakan stop loss dan mengambil keuntungan mekanisme untuk mengawal risiko, yang penting. Pengoptimuman masa depan boleh diteruskan untuk membuat parameter strategi dan kaedah stop loss lebih pintar dan dinamik.


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


Lebih lanjut