Strategi RSI Breakout yang Terlampau Dijual

Penulis:ChaoZhang, Tarikh: 2023-09-26 16:11:55
Tag:

Ringkasan

Strategi ini menggunakan penunjuk RSI untuk menentukan sama ada mata wang kripto terlalu banyak dijual, dan membeli apabila RSI di bawah 30, yang dianggap terlalu banyak dijual. Ia kemudian menetapkan harga stop loss dan mengambil keuntungan. Jika harga stop loss dipukul, ia akan keluar dari kedudukan. Jika harga mengambil keuntungan dicapai, ia akan menutup kedudukan untuk keuntungan.

Cara Ia Bekerja

  1. Strategi ini menggunakan penunjuk RSI untuk mengenal pasti isyarat kemasukan. RSI mengukur kelajuan dan besar perubahan harga untuk menentukan sama ada aset terlalu banyak dibeli atau terlalu banyak dijual. RSI berkisar dari 0 hingga 100, dengan di atas 70 dianggap terlalu banyak dibeli dan di bawah 30 terlalu banyak dijual.

  2. Apabila RSI turun di bawah 30, strategi memasuki kedudukan panjang, bertaruh pada pembalikan trend.

  3. Selepas membuka kedudukan, stop loss dan mengambil keuntungan ditetapkan. Stop loss ditetapkan 1% di bawah harga masuk. mengambil keuntungan ditetapkan 7% di atas harga masuk.

  4. Jika harga jatuh di bawah stop loss, kedudukan ditutup. Jika harga meningkat di atas mengambil keuntungan, kedudukan ditutup untuk keuntungan.

Analisis Kelebihan

  1. Menggunakan RSI untuk mengenal pasti keadaan oversold memberikan titik masuk yang baik pada paras terendah.

  2. Stop loss ketat mengawal risiko berdasarkan perdagangan. Ia membolehkan beberapa penarikan sebelum berhenti.

  3. Keuntungan mengambil kunci dalam keuntungan dari pergerakan menaik besar.

  4. Strategi ini mempunyai kawalan pengambilan yang kuat dan risiko yang lebih rendah secara keseluruhan.

Analisis Risiko

  1. Isyarat oversold RSI tidak selalu membawa kepada pembalikan, harga boleh terus jatuh yang membawa kepada stop loss.

  2. Stop loss mungkin terlalu ketat, yang membawa kepada hentian awal jika pengeluaran besar.

  3. Keuntungan mungkin terlalu luas, menutup keuntungan lebih awal dan tidak membiarkan pemenang lari.

  4. Strategi ini boleh menghadapi kerugian besar semasa pasaran sampingan yang bergolak.

Pengoptimuman

  1. Menggabungkan RSI dengan penunjuk lain seperti KDJ boleh meningkatkan ketepatan isyarat dan mengelakkan isyarat palsu.

  2. Mengoptimumkan stop loss dan mengambil peratusan keuntungan berdasarkan turun naik duit syiling yang berbeza.

  3. Uji parameter jangka masa yang berbeza untuk mencari kombinasi yang optimum.

  4. Mengoptimumkan saiz kedudukan berdasarkan hasil backtest.

Kesimpulan

Secara keseluruhan, ini adalah strategi breakout oversold yang agak kukuh. Mengambil kedudukan selepas isyarat RSI oversold memberikan titik masuk yang baik pada harga yang agak rendah. Mekanik stop loss dan mengambil keuntungan membantu mengawal risiko dan mengunci keuntungan. Penarikan boleh dikendalikan yang menjadikannya sesuai untuk pegangan jangka panjang. Parameter boleh dioptimumkan mengikut keadaan pasaran yang berubah untuk peningkatan prestasi.


/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-25 00:00:00
period: 15m
basePeriod: 5m
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()  => true       // 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