Strategi terobosan dwi-landasan berdasarkan penunjuk RSI


Tarikh penciptaan: 2024-01-08 10:28:26 Akhirnya diubah suai: 2024-01-08 10:28:26
Salin: 1 Bilangan klik: 634
1
fokus pada
1617
Pengikut

Strategi terobosan dwi-landasan berdasarkan penunjuk RSI

Gambaran keseluruhan

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.

Prinsip Strategi

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.

Kelebihan Strategik

  1. Menggunakan gabungan RSI ganda untuk menangkap kedudukan jual beli dengan lebih tepat
  2. Menggunakan mekanisme hentian bergerak, anda boleh hentikan kerugian tepat pada masanya, mengawal kerugian maksimum
  3. Mekanisme penarikan diri yang terhad, yang boleh dikeluarkan setelah mencapai matlamat keuntungan, untuk mengelakkan pembalikan keuntungan

Risiko Strategik

  1. Indeks RSI mudah menghasilkan isyarat palsu dan tidak dapat mengelakkan kerugian sepenuhnya
  2. Penetapan titik henti terlalu dekat boleh disekat, risiko yang terlalu besar dan sukar untuk dikawal
  3. Jika berlaku sesuatu yang tidak normal, seperti melompat dengan pantas, ia juga boleh menyebabkan kerugian.

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.

Arah pengoptimuman strategi

  1. Ia boleh dipertimbangkan untuk digabungkan dengan penunjuk lain, seperti KDJ, MACD dan sebagainya, untuk mencapai pengesahan pelbagai penunjuk
  2. Anda boleh menetapkan parameter RSI untuk jenis yang berbeza untuk menjadikan parameter lebih dekat dengan ciri-ciri jenis tersebut
  3. Anda boleh menetapkan hentian dinamik dan menyesuaikan titik hentian anda secara langsung berdasarkan petunjuk seperti ATR
  4. Parameter RSI boleh dioptimumkan secara automatik melalui teknologi pembelajaran mesin

ringkaskan

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.

Kod sumber strategi
/*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