Strategi RSI Penarikan Kembali Terlalu Dijual

Penulis:ChaoZhang, Tarikh: 2023-12-22 15:00:48
Tag:

img

Ringkasan

Strategi RSI Penembusan Pembalikan adalah strategi perdagangan algoritma yang menggunakan penunjuk Indeks Kekuatan Relatif (RSI) untuk menentukan keadaan oversold dan pergi lama apabila harga berbalik. Strategi menetapkan ambang RSI pada 30 - apabila RSI di bawah 30, ia dianggap oversold, dan pada masa itu kedudukan panjang dibuka. Strategi mengunci keuntungan melalui peraturan stop loss dan mengambil keuntungan yang ketat.

Logika Strategi

Strategi RSI Oversold Reversal Breakout menggunakan penunjuk RSI 14 tempoh. Apabila RSI jatuh di bawah 30, ia dinilai terlalu laris. Ini menunjukkan bahawa harga telah terus jatuh selama tempoh sebelumnya dan kini berada dalam keadaan terlalu laris, jadi pasaran akan berbalik dan harga mungkin akan mula meningkat. Strategi membuka kedudukan panjang pada masa ini untuk mencari peluang pembalikan.

Secara khusus, apabila RSI <30 dan dalam tetingkap masa backtest, isyarat panjang dicetuskan untuk membuka kedudukan. Kemudian tetapkan stop loss pada 1% di bawah harga masuk dan ambil keuntungan pada 7% di atas. Apabila harga meningkat di atas mengambil keuntungan atau jatuh di bawah stop loss, tutup kedudukan.

Seluruh strategi menumbuhkan modal dengan mengenal pasti titik masuk pembalikan oversold dan menetapkan stop loss dan mengambil keuntungan untuk mengunci keuntungan.

Analisis Kelebihan

Strategi RSI Penarikan Kembali Terlalu Terjual mempunyai kelebihan berikut:

  1. Mengambil peluang panjang yang disebabkan oleh pembalikan oversold, yang merupakan strategi perdagangan yang agak boleh dipercayai.

  2. Menggunakan penunjuk RSI untuk mengenal pasti titik masuk, yang lebih profesional daripada tindakan harga langsung.

  3. Tetapan stop loss dan mengambil keuntungan yang ketat mengawal risiko dan keuntungan setiap perdagangan dengan berkesan.

  4. Data backtest menunjukkan bahawa strategi ini mempunyai pulangan yang tinggi dan kadar kemenangan.

  5. Mudah difahami, pemula boleh menggunakannya dengan mudah.

Analisis Risiko

Strategi RSI Reversal Breakout Oversold juga mempunyai beberapa risiko:

  1. Walaupun RSI di bawah 30 meningkatkan kebarangkalian pembalikan, keadaan pasaran rumit dan berubah-ubah, dan kegagalan masih boleh berlaku, mencetuskan stop loss pada masa ini.

  2. Titik stop loss terlalu dekat dengan kebarangkalian tinggi pengelompokan stop loss berlaku. Amplituda stop loss boleh santai dengan sewajarnya.

  3. Tetapan tetingkap masa backtest yang tidak betul boleh menjejaskan keputusan ujian. Tempoh backtest harus diselaraskan untuk menilai sepenuhnya prestasi strategi.

  4. Pilihan token perdagangan yang tidak betul juga boleh menjejaskan keuntungan. Strategi ini berfungsi dengan baik pada syiling yang lebih tidak menentu.

Pengoptimuman

Masih ada ruang untuk mengoptimumkan Strategi RSI Penembusan Pembalikan:

  1. Sesuaikan parameter RSI dan uji kesan parameter yang berbeza pada pulangan strategi.

  2. Uji pasangan dagangan yang berbeza dan pilih syiling yang lebih tidak menentu.

  3. Sesuaikan parameter stop loss dan mengambil keuntungan untuk mencari kombinasi parameter yang optimum.

  4. Tambah penapis penunjuk lain, seperti hanya memasuki selepas harga memecahkan purata bergerak tertentu.

  5. Uji parameter tempoh masa yang berbeza untuk mencari masa kemasukan yang terbaik.

Ringkasan

Strategi RSI Penarikan Kembali Penjualan Terlalu mudah difahami dan beroperasi secara keseluruhan, menangkap peluang pembalikan dari situasi oversold untuk membuat keuntungan. Kelebihan terbesar strategi adalah bahawa ia mudah difahami walaupun untuk pemula. Pada masa yang sama, mekanisme stop loss dan mengambil keuntungan yang ketat juga menjadikan risiko terkawal. Langkah seterusnya adalah untuk mengoptimumkan dari arah seperti menyesuaikan parameter dan menambah penapis penunjuk untuk menjadikan prestasi strategi lebih baik lagi.


/*backtest
start: 2023-12-14 00:00:00
end: 2023-12-18 19:00:00
period: 3m
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/
// © brodieCoinrule

//@version=4
strategy(shorttitle='Oversold RSI with tight SL',title='Oversold RSI with tight SL Strategy (by Coinrule)', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 50, commission_type=strategy.commission.percent, commission_value=0.1)
//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2020, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false       // create function "within window of time"

perc_change(lkb) =>
    overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100



// RSI inputs and calculations
lengthRSI = 14
RSI = rsi(close, lengthRSI)
oversold= input(30)


//Entry 
strategy.entry(id="long", long = true, when = RSI< oversold and window())

//Exit
Stop_loss= ((input (1))/100)
Take_profit= ((input (7)/100))

longStopPrice  = strategy.position_avg_price * (1 - Stop_loss)
longTakeProfit = strategy.position_avg_price * (1 + Take_profit)

strategy.close("long", when = close < longStopPrice or close > longTakeProfit and window())



Lebih lanjut