RSI Dual-track Strategy Terobosan

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

img

Gambaran umum

Strategi ini disebut RSI Dual-track Breakthrough Strategy. Ini memanfaatkan dua jalur indikator RSI untuk penilaian untuk mencapai tujuan membeli rendah dan menjual tinggi. Ketika indikator RSI jatuh di bawah jalur bawah yang ditetapkan (default 40), itu dianggap sebagai sinyal beli. Pada saat ini, jika RSI10 kurang dari RSI14, itu lebih lanjut mengkonfirmasi pembelian; Ketika indikator RSI naik di atas jalur atas yang ditetapkan (default 70), itu dianggap sebagai sinyal jual. Pada saat ini, jika RSI10 lebih besar dari RSI14, itu lebih lanjut mengkonfirmasi jual. Strategi ini juga menetapkan mekanisme pergerakan stop loss dan take profit.

Prinsip Strategi

Logika inti dari strategi ini adalah menggunakan trek ganda dari indikator RSI untuk penilaian. Indikator RSI umumnya ditetapkan menjadi 14 periode, yang mewakili kekuatan dan kelemahan saham dalam 14 hari terakhir. Strategi ini menambahkan RSI10 sebagai indikator penilaian tambahan.

Ketika RSI14 menembus di bawah jalur 40, diyakini bahwa harga saham telah menembus sisi lemah dan mungkin ada kemungkinan rebound dukungan. Pada saat ini, jika RSI10 kurang dari RSI14, itu berarti bahwa tren jangka pendek masih menurun, yang dapat lebih lanjut mengkonfirmasi sinyal jual. Jadi ketika RSI14 <= 40 dan RSI10 terpenuhi, sinyal beli dihasilkan.

Ketika RSI14 menembus lintasan 70, diyakini bahwa harga saham telah memasuki area kuat jangka pendek dan mungkin ada kesempatan untuk penyesuaian pullback. Pada saat ini, jika RSI10 lebih besar dari RSI14, itu berarti tren jangka pendek terus naik, yang dapat lebih lanjut mengkonfirmasi sinyal beli. Jadi ketika RSI14 >= 70 dan RSI10> RSI14 terpenuhi, sinyal jual dihasilkan.

Dengan demikian, penilaian gabungan RSI14 dan RSI10 merupakan logika inti dari strategi dual-track.

Keuntungan dari Strategi

  1. Penghakiman gabungan dari indikator RSI ganda dapat menangkap sinyal perdagangan dengan lebih akurat
  2. Penerapan mekanisme stop loss bergerak dapat memotong kerugian tepat waktu dan mengontrol penarikan maksimum
  3. Pengaturan mekanisme keluar mengambil keuntungan memungkinkan keluar ketika mencapai keuntungan target, menghindari retracement profitering

Risiko dari Strategi

  1. Indikator RSI cenderung menghasilkan sinyal palsu dan kerugian tidak dapat dihindari sepenuhnya
  2. Jika titik stop loss diatur terlalu dekat, hal itu dapat segera diambil, jika diatur terlalu besar itu sulit untuk mengendalikan risiko
  3. Dalam kondisi pasar yang tidak normal seperti kesenjangan, itu juga dapat menyebabkan kerugian

Untuk sepenuhnya memanfaatkan strategi ini, parameter RSI dapat disesuaikan dengan benar, posisi stop loss harus dikendalikan secara ketat, menghindari operasi yang terlalu sering, dan mengejar profitabilitas yang stabil.

Arah Optimasi Strategi

  1. Pertimbangkan untuk memasukkan indikator lain untuk validasi kombinasi, seperti KDJ, MACD dll.
  2. Tetapkan parameter RSI berdasarkan karakteristik produk yang berbeda
  3. Atur stop loss dinamis berdasarkan indikator seperti ATR untuk menyesuaikan posisi stop tepat waktu
  4. Mengoptimalkan parameter RSI secara otomatis melalui teknik pembelajaran mesin

Ringkasan

Strategi ini membuat penilaian berdasarkan ide dual-track dari RSI dan menyaring beberapa sinyal bising sampai batas tertentu. Tapi tidak ada strategi indikator tunggal yang bisa sempurna, indikator RSI cenderung menyesatkan dan harus dilihat dengan hati-hati. Strategi ini menggabungkan pergerakan stop loss dan mengambil keuntungan mekanisme untuk mengendalikan risiko, yang penting. Optimasi masa depan dapat dilanjutkan untuk membuat parameter strategi dan metode stop loss lebih cerdas dan dinamis.


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