
Strategi ini menggunakan kombinasi RSI pada tempoh masa yang berbeza untuk menilai pasaran semasa dalam keadaan overbought atau oversold, dan menggabungkan hubungan harga dengan garis purata bergerak untuk menghantar isyarat beli dan jual. Matlamatnya adalah untuk membeli semasa penurunan, menjual semasa kenaikan, dan mencapai keuntungan dalam penyenaraian.
Hitung nilai RSI 5 minit, 15 minit, 1 jam, apabila RSI 5 minit, 15 minit dan 1 jam sama-sama di bawah 25 dinilai sebagai fenomena oversell, menghasilkan isyarat beli; apabila RSI 5 minit, 15 minit dan 1 jam sama-sama di atas 75, dinilai sebagai fenomena oversell, menghasilkan isyarat jual.
Harga menembusi 21 Moving Average juga berfungsi sebagai isyarat perdagangan, menghasilkan isyarat beli jika harga lebih rendah daripada Moving Average; menghasilkan isyarat jual jika harga lebih tinggi daripada Moving Average.
Sesuai dengan keadaan pemegang, tetapkan jumlah dagangan pertama dan peraturan pemegang saham: pertama kali membuka saham ditetapkan sebagai 2 tangan, kemudian setiap kali menambah saham 1 tangan, sehingga pemegang saham mencapai 2 tangan.
Apabila kerugian mencapai 3%, ia berhenti. Apabila keuntungan mencapai 1%, ia berhenti.
Menggunakan gabungan RSI dalam pelbagai tempoh masa untuk menilai overbought dan oversold, meningkatkan kebolehpercayaan isyarat.
Gabungan dengan garis rata-rata bergerak menghasilkan isyarat perdagangan mata wang asing, memperluaskan peluang perdagangan.
Menetapkan kawalan kedudukan dan peraturan stop loss dan kawalan risiko.
Menggunakan kuantitatif untuk meningkatkan peluang keuntungan.
Indeks RSI mempunyai risiko penyesuaian, iaitu harga mungkin terus berjalan untuk sementara waktu tanpa berbalik selepas RSI mencapai titik kritikal overbought dan oversold. Pada masa ini, perdagangan yang mengikut isyarat RSI secara buta dapat menyebabkan kerugian.
Sinyal perdagangan yang dihasilkan oleh garis purata bergerak boleh menjadi salah. Apabila harga turun naik dengan ketara, garis purata bergerak tidak dapat mengesan perubahan harga dalam masa yang tepat.
Kesilapan dalam menetapkan saiz kedudukan dan nisbah keuntungan dan kerugian boleh menyebabkan kawalan risiko yang tidak betul.
Keperluan untuk menetapkan syarat-syarat pembiayaan yang munasabah. Jika pembiayaan terlalu terbuka, ia boleh menyebabkan kerugian berkembang.
Menyesuaikan parameter RSI, menguji kombinasi parameter RSI kitaran yang berbeza untuk mencari isyarat overbought dan oversold yang lebih dipercayai.
Uji parameter yang berbeza Moving Average Line sebagai isyarat perdagangan tambahan. Anda juga boleh menguji petunjuk teknikal lain.
Mengoptimumkan kawalan kedudukan dan peraturan penangguhan kerugian, menetapkan mekanisme kawalan risiko yang lebih saintifik.
Mengoptimumkan keadaan penambahan simpanan, untuk mengelakkan penambahan simpanan menyebabkan kerugian meningkat. Anda juga boleh mempertimbangkan kaedah penambahan simpanan alternatif, dengan penambahan simpanan indeks.
Strategi ini menggunakan gabungan pelbagai bingkai masa RSI untuk menilai potensi trend, untuk mendapatkan kadar kemenangan yang lebih tinggi. Pada masa yang sama, dengan bantuan garis rata bergerak menghasilkan isyarat perdagangan, memperluaskan peluang perdagangan. Menggunakan kawalan kedudukan, hentikan kerugian, dan peraturan kuantitatif untuk mengawal risiko. Secara keseluruhannya, strategi ini menggabungkan trend, penunjuk pembalikan, dan logik perdagangan yang mengikuti trend dan kurang menyerap, yang dapat mencapai kesan yang baik dalam keadaan persatuan.
/*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()