Strategi ini menggunakan indikator RSI untuk menilai tren pasar, mengirim sinyal perdagangan di zona overbought dan oversold, bertujuan untuk menangkap gerakan penyesuaian garis pendek pasar. Ini menggabungkan indikator garis rata dan logika stop loss untuk memfilter sinyal perdagangan dan mengendalikan risiko.
Hitung nilai RSI ((14) dengan garis overbought 67, dan garis oversold 44.
Ketika RSI di atas melewati garis overbought, sinyal jual dikirim; ketika RSI di bawah melewati garis overbought, sinyal beli dikirim.
Filter rata-rata superimposed, hanya jika harga close out di bawah harga rata-rata kemarin, akan mengirim sinyal jual beli di RSI; hanya jika harga close out di atas harga rata-rata kemarin, akan mengirim sinyal beli di RSI.
Setting Stop Loss Logic. Anda dapat memilih Stop Loss pada titik tetap atau Stop Loss berdasarkan nilai RSI.
Menggunakan indikator RSI untuk menilai overbought dan oversold, untuk menangkap peluang koreksi garis pendek.
Filter dengan garis rata untuk menghindari operasi terbalik dalam tren.
Setting Stop Loss, Mengontrol Kerugian Tunggal.
Ini adalah salah satu cara yang paling efektif untuk mengambil keuntungan dari perubahan tren.
RSI memiliki keterbelakangan dan dapat terjadi deviasi yang menyebabkan sinyal palsu. Solusi adalah dengan menyesuaikan parameter atau menggunakan kombinasi dengan indikator lain.
Trailing stop yang lebih fleksibel dapat dipilih. Trailing stop yang dinamis dapat dipilih.
Halangan tetap mungkin berhenti terlalu dini atau stop point terlalu kecil. Halangan dapat dipertimbangkan berdasarkan nilai RSI atau ATR.
Ketidakmampuan untuk memfilter tren tren yang bergoyang secara efektif dapat menyebabkan pembukaan posisi dan kerugian yang sering. Parameter RSI dapat disesuaikan sesuai atau menambahkan kondisi pemfilteran lainnya.
Uji efek indikator RSI pada parameter siklus yang berbeda.
Menyesuaikan parameter RSI untuk menguji berbagai garis overbought dan oversold.
Cobalah berbagai jenis rata-rata bergerak atau indikator penyaringan lainnya.
Uji efek dari stop loss tetap dan stop loss dinamis.
Mengoptimalkan nilai stop loss agar lebih sesuai dengan hukum fluktuasi pasar.
Ada juga beberapa hal yang perlu diperhatikan, yaitu:
Pertimbangkan untuk melakukan verifikasi pada beberapa periode waktu untuk meningkatkan kualitas sinyal.
Strategi ini menggunakan indikator RSI untuk menilai kondisi overbought dan oversold, menggabungkan garis rata dan stop loss untuk melakukan perdagangan dua arah. Dapat menangkap peluang reversal pasar dalam jangka pendek. Dengan pengoptimalan parameter dan kondisi penyaringan yang dilengkapi, strategi ini dapat meningkatkan efektivitas keuntungan dan mengendalikan risiko.
/*backtest
start: 2022-09-21 00:00:00
end: 2023-09-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//© профешинил хомячело
//@version = 4
strategy("RSI Strategy Professional Хомячело", overlay=false)
length = input( 14 )
overSold = input( 44 )
overBought = input( 67 )
price = open
rsi = rsi(price, length)
band1 = hline(overSold, "overSold12", color=#C0C0C0)
band0 = hline(overBought, "overBought12", color=#C0C0C0)
plot(rsi, "RSI", color=color.red)
fill(band1, band0, color=color.black, transp=90, title="Background")
src = close
a = sma(src, 1)
aaa = strategy.opentrades + 1
n = input(defval = 0.0576923077, title = "AvgPrice - n")
//n = 0.0576923077
buysignal = crossover(rsi, overSold) and (a < (strategy.position_avg_price - n) or strategy.opentrades == 0)
sellsignal = crossunder(rsi, overBought) and (a > (strategy.position_avg_price + n) or strategy.opentrades == 0)
// crossover(rsi, overSold)
// crossunder(rsi, overBought)
if (not na(rsi))
if(buysignal)
strategy.entry("LONG", strategy.long, comment = tostring(a) + "\n(" + tostring(aaa) + ")")
n += 1000
if(sellsignal)
strategy.entry("SHORT", strategy.short, comment = tostring(a) + "\n(" + tostring(aaa) + ")")
n += 1000
//лонги орні
if(rsi < 15 and strategy.opentrades != 5 and a < (strategy.position_avg_price - n))
strategy.entry("LONG", strategy.long, comment = "ЙОБАНИЙ НАСРАВ ТА БЕРИ ЛОНГ НА ВСЬО ШО Є НАХУЙ\n" + tostring(a) + "\n(" + tostring(aaa) + "!!!)")
if(rsi < 20 and strategy.opentrades != 5 and a < (strategy.position_avg_price - n))
strategy.entry("LONG", strategy.long, comment = "ЛОНГ НА ВСЮ КОТЛЄТУ\n" + tostring(a) + "\n(" + tostring(aaa) + "!!!)")
//шорти орні
if(rsi > 85 and strategy.opentrades != 5 and a < (strategy.position_avg_price - n))
strategy.entry("SHORT", strategy.short, comment = "ЙОБАНИЙ НАСРАВ ТА БЕРИ ШОРТ НА ВСЬО ШО Є НАХУЙ\n" + tostring(a) + "\n(" + tostring(aaa) + "!!!)")
if(rsi > 80 and strategy.opentrades != 5 and a < (strategy.position_avg_price - n))
strategy.entry("SHORT", strategy.short, comment = "ШОРТ НА ВСЮ КОТЛЄТУ\n" + tostring(a) + "\n(" + tostring(aaa) + "!!!)")
//стоп-лосс і ціль
//rsi
rsion = input(defval = false, title = "Тейк-профіт по RSI")
rcl = input(defval = 73.0, title = "RSI тейк по лонгу")
rcs = input(defval = 44.0, title = "RSI тейк по шорту")
possize = input(defval = 250.0, title = "Маржа")
posp = input(defval = 3.0, title = "Плече")
//tick
ut = input(defval = false, title = "Тейк-профіт")
tar = input(defval = 4500.0, title = "Тейк-профіт у тіках")
us = input(defval = false, title = "Стоп-лосс")
stop = input(defval = 0.0, title = "Стоп-лосс у тіках")
tar:=tar/syminfo.mintick
stop:=stop/syminfo.mintick
if(ut==true and us==false)
strategy.exit(id="LX", from_entry = "LONG", profit = tar, comment = "ТейкL")
strategy.exit(id="SX", from_entry = "SHORT", profit = tar, comment = "ТейкS")
if(us==true and ut==false)
strategy.exit(id="LX", from_entry = "LONG", loss = stop, comment = "СтопL")
strategy.exit(id="SX", from_entry = "SHORT", loss = stop, comment = "СтопS")
if(ut==true and us==true)
strategy.exit(id="LX", from_entry = "LONG", profit = tar, loss = stop, comment ="Тейк/СтопL")
strategy.exit(id="SX", from_entry = "SHORT", profit = tar, loss = stop, comment ="Тейк/СтопS")
//закриття по rsi
if(rsion == 1 )
pr = round(((a / strategy.position_avg_price - 1) * possize * posp), 2)
ppr = round(((a / strategy.position_avg_price - 1) * 100 * posp), 2)
spr = round((1 - (a / strategy.position_avg_price)) * possize * posp, 2)
sppr = round((100 - (a / strategy.position_avg_price * 100)) * posp, 2)
if(rsi > rcl)
strategy.close(id="LONG", comment = "LT\n" + tostring(ppr) + "%\n" + tostring(pr) + "$\n" + tostring(a))
if(rsi < rcs)
strategy.close(id="SHORT", comment = "ST\n" + tostring(sppr) + "%\n" + tostring(spr) + "$\n" + tostring(a))