Эта стратегия использует индикатор RSI для оценки рыночных тенденций и генерации торговых сигналов при возникновении условий перекупки или перепродажи. Она направлена на захват краткосрочных движений на рынке. Она также включает в себя скользящие средние и логику получения прибыли / остановки потери для фильтрации сигналов и контроля рисков.
Вычислите 14-периодный РСИ и установите линию перекупленности на 67 и линию перепроданности на 44.
Когда RSI пересекает линию перекупленности, генерируется сигнал продажи.
Добавить фильтр скользящей средней. Сигналы продажи возникают только тогда, когда закрытие находится ниже MA предыдущего дня; Сигналы покупки возникают только тогда, когда закрытие находится выше MA предыдущего дня.
Используйте логику получения прибыли и стоп-лосса.
Захватывает краткосрочные возможности реверсии с использованием уровней перекупленности/перепродажи по показателю RSI.
Фильтр скользящей средней избегает торговли против тренда.
Приобретение прибыли и стоп-лосс контролируют потерю одной сделки.
Может заранее заметить возможности для изменения тренда.
Промедление RSI может вызвать ложные сигналы, регулируйте параметры или комбинируйте с другими индикаторами.
Фиксированный стоп-лосс может быть слишком широким или слишком узким.
Фиксированная прибыль может выйти слишком рано или слишком мало.
Не может отфильтровывать рынок, вызывая чрезмерную торговлю и убытки.
Проверьте параметры RSI в разные временные рамки.
Корректировать уровни перекупленного/перепроданного RSI.
Попробуйте другие скользящие средние или другие фильтры.
Проверка фиксированных и динамических целевых показателей прибыли.
Оптимизировать значения прибыли/остановки, чтобы соответствовать волатильности рынка.
Добавьте фильтры, чтобы избежать сбоев на рынках.
Подумайте о слиянии нескольких временных рамок для улучшения качества сигнала.
Эта стратегия торгует реверсиями с использованием RSI в сочетании с скользящими средними и логикой получения прибыли / остановки убытков. Она направлена на захват краткосрочных поворотов на рынке. Дальнейшая оптимизация параметров и дополнительные фильтры могут улучшить прибыльность при снижении рисков. Она подходит для инвесторов, которые чувствительны к краткосрочным движениям и стремятся к частой торговле.
/*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))