Strategi perdagangan keseimbangan panjang dan pendek RSI


Tanggal Pembuatan: 2023-10-30 15:49:35 Akhirnya memodifikasi: 2023-10-30 15:49:35
menyalin: 0 Jumlah klik: 670
1
fokus pada
1617
Pengikut

Strategi perdagangan keseimbangan panjang dan pendek RSI

Ringkasan

Strategi ini menggunakan kombinasi indikator RSI pada periode waktu yang berbeda untuk menilai apakah pasar saat ini berada dalam keadaan overbought atau oversold, dan menggabungkan hubungan harga dengan garis rata-rata bergerak untuk mengirimkan sinyal beli dan jual. Tujuan adalah membeli di bawah, menjual di bawah, dan mencapai keuntungan di akhir.

Prinsip Strategi

  1. Menghitung nilai RSI 5 menit, 15 menit, 1 jam, ketika RSI 5 menit, 15 menit dan 1 jam pada saat yang sama lebih rendah dari 25, menilai sebagai fenomena oversold, menghasilkan sinyal beli; ketika RSI 5 menit, 15 menit dan 1 jam pada saat yang sama lebih tinggi dari 75, menilai sebagai fenomena oversold, menghasilkan sinyal jual.

  2. Jika harga melewati Moving Average 21 hari, sinyal ini juga berfungsi sebagai sinyal perdagangan. Jika harga berada di bawah Moving Average, sinyal ini akan menghasilkan sinyal beli. Jika harga berada di atas Moving Average, sinyal ini akan menghasilkan sinyal jual.

  3. Sesuai dengan kondisi kepemilikan, atur jumlah transaksi pertama dan aturan penambahan posisi: pertama kali membuka posisi ditetapkan sebagai 2 tangan, kemudian 1 tangan setiap kali penambahan posisi, sampai kepemilikan mencapai 2 tangan.

  4. Ketika kerugian mencapai 3%, stop loss. Ketika keuntungan mencapai 1%, stop loss.

Keunggulan Strategis

  1. Menggunakan kombinasi indikator RSI multi-frame untuk menilai overbought dan oversold, meningkatkan keandalan sinyal.

  2. Ini akan menghasilkan sinyal forex yang lebih besar dan memperluas peluang perdagangan.

  3. Menetapkan aturan pengendalian posisi dan stop-loss, serta pengendalian risiko.

  4. Menggunakan metode penambahan kuantitatif untuk memperluas ruang keuntungan.

Risiko Strategis

  1. Indikator RSI memiliki risiko retracement, yaitu setelah RSI mencapai titik kritis overbought dan oversold, harga mungkin terus berjalan untuk sementara waktu tanpa reversal. Pada saat ini, jika Anda mengikuti sinyal RSI secara membabi buta, Anda mungkin mengalami kerugian.

  2. Sinyal perdagangan yang dihasilkan oleh Moving Average dapat menimbulkan kesalahan. Ketika harga mengalami fluktuasi besar, Moving Average tidak dapat melacak perubahan harga secara tepat waktu.

  3. Kesalahan pengaturan ukuran posisi dan rasio untung rugi dapat menyebabkan kontrol risiko yang tidak tepat.

  4. Kondisi untuk melakukan penargetan harus diatur secara rasional. Jika penargetan terlalu terbuka, maka kerugian dapat meningkat.

Arah optimasi

  1. Menyesuaikan parameter RSI, menguji kombinasi parameter RSI periode yang berbeda, dan menemukan sinyal overbought dan oversold yang lebih andal.

  2. Uji parameter yang berbeda Moving Average Line sebagai sinyal perdagangan tambahan. Selain itu, indikator teknis lainnya juga dapat diuji.

  3. Optimalkan kontrol posisi dan aturan stop loss, dan atur mekanisme kontrol risiko yang lebih ilmiah.

  4. Optimalkan kondisi penambahan saham, mencegah penambahan saham menyebabkan peningkatan kerugian. Anda juga dapat mempertimbangkan metode penambahan saham alternatif, yaitu penambahan saham indeks.

Meringkaskan

Strategi ini menggunakan kombinasi RSI dari beberapa kerangka waktu untuk menilai potensi tren untuk mendapatkan tingkat kemenangan yang lebih tinggi. Selain itu, untuk menghasilkan sinyal perdagangan dengan garis rata-rata bergerak, untuk memperluas peluang perdagangan. Menggunakan kontrol posisi, stop loss, stop loss, dan aturan kuantitatif untuk mengendalikan risiko. Secara keseluruhan, strategi ini mengintegrasikan tren, indikator pembalikan, serta mengikuti tren dan logika perdagangan yang kurang terserap.

Kode Sumber Strategi
/*backtest
start: 2023-09-29 00:00:00
end: 2023-10-29 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("5M_RSI_Strategy", overlay=true, pyramiding = 1)
len =14 
Initial_Trade_Size = 2
up = rma(max(change(close), 0), len)
down = rma(-min(change(close), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
RSI_1h = request.security(syminfo.tickerid, "60", rsi)
RSI_3h = request.security(syminfo.tickerid, "180", rsi)
RSI_15m = request.security(syminfo.tickerid, "15", rsi)
RSI_5m = request.security(syminfo.tickerid, "5", rsi)
RSI_1m = request.security(syminfo.tickerid, "1", rsi)
ema21_5 = ema(request.security(syminfo.tickerid, "5", close), 21)
ema21_15 = ema(request.security(syminfo.tickerid, "15", close), 21)
//(RSI_3h<=25) and  (RSI_1h<=25) and (RSI_15m<=25) and
Positive = ((RSI_5m<=25) and (RSI_15m<=25) and (RSI_1h<=25))?true:false
//alertcondition(Positive, title='POS', message='POS')        
//plotshape(Positive, style=shape.triangleup,location=location.belowbar, color=green,size =size.tiny)
Negative = (( RSI_5m>=75) and ( RSI_15m>=75) and ( RSI_1h>=75))?true:false
//alertcondition(Negative, title='NEG', message='NEG')
//plotshape(Negative, style=shape.triangledown,location=location.abovebar, color=red,size=size.tiny)          Positive and   Negative and 

lastordersize = abs(strategy.position_size)>=Initial_Trade_Size?abs(strategy.position_size):Initial_Trade_Size
//lastordersize =1
// and ((ema21_15-low)/ema21_15) > 0.077
//Adding to position rules
if (abs(strategy.position_size) >= Initial_Trade_Size and (abs(close - strategy.position_avg_price)/abs(strategy.position_avg_price)>0.03))
    if(strategy.position_avg_price > close and strategy.position_size > 0)
        strategy.entry("Add", strategy.long , qty = lastordersize , when = true)
    if(strategy.position_avg_price < close and strategy.position_size < 0)
        strategy.entry("Add", strategy.short, qty = lastordersize , when = true)
if (strategy.position_size == 0)
    if (Positive or ((ema21_5-low)/ema21_5) > 0.07)
        strategy.entry("1St Entry", strategy.long , qty = lastordersize , when = true)
    // and ((high-ema21_15)/ema21_15) > 0.077
    if (Negative or ((high-ema21_5)/ema21_5) > 0.07)
        strategy.entry("1St Entry", strategy.short, qty = lastordersize , when = true)
//lastordersize := lastordersize * 2
//or (strategy.openprofit / abs(strategy.position_size * close))>=0.01
if(cross(ema21_5, high) or cross(ema21_5, low))
    strategy.close_all()