Эта стратегия использует три индикатора RSI с различными периодами, чтобы определить, достиг ли рынок чрезвычайно перекупленных или перепроданных уровней, и генерирует соответствующие сигналы купли и продажи.
Стратегия использует индикаторы RSI 2-периода, 7-периода и 14-периода одновременно. Когда все три индикатора RSI показывают сигналы перекупа или перепродажи одновременно, генерируются торговые сигналы.
В частности, когда 2-периодный RSI ниже 10, 7-периодный RSI ниже 20, а 14-периодный RSI ниже 30, рынок считается перепроданным, и генерируется сигнал покупки.
Код использует параметр точности для уточнения пороговых значений перекупленности/перепроданности RSI. По умолчанию это 3, а более низкие значения означают более строгие критерии перекупленности/перепроданности.
Когда генерируется сигнал покупки или продажи, если цена перевернется и прорвется через цену открытия дня, текущая позиция будет закрыта для получения прибыли или сокращения убытков.
Использование комбинации многопериодных индикаторов RSI позволяет более точно определить условия перекупки/перепродажи и отфильтровать ложные сигналы.
Тонкая настройка критериев перекупки/перепродажи с различными параметрами позволяет корректировать чувствительность стратегии на основе рыночных условий.
Внедрение открытых остановок для отслеживания цен помогает своевременно закрепить прибыль.
Показатели РСИ склонны к расхождениям, которые неэффективны для выявления обратных тенденций.
Для периодов высокой волатильности параметры RSI необходимо корректировать, иначе они могут слишком часто вызывать остановки.
Трех RSI сигналов запускают вместе редко, что может упустить хорошие торговые возможности.
Параметры критериев перекупки/перепродажи должны быть отрегулированы и протестированы на разных рынках.
Подумайте о добавлении других показателей для подтверждения, таких как полосы Боллинджера, KDJ и т. д., чтобы избежать дивергенции RSI.
Автоматическая оптимизация параметров RSI на основе различных рыночных режимов.
Испытать другие условия остановки и выхода, такие как остановки ATR.
Добавьте фильтры, чтобы избежать торговли в неподходящие периоды.
Эта стратегия идентифицирует зоны перекупки/перепродажи с использованием комбинации многопериодных индикаторов RSI и реализует остановки отслеживания тренда. Преимущества включают улучшение точности, своевременное остановку; Недостатки включают отсутствующие сделки, ошибочные оценки RSI.
/*backtest start: 2023-10-25 00:00:00 end: 2023-10-28 10:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title = "Noro's Triple RSI Top/Bottom", shorttitle = "3RSI Top/Bottom", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") accuracy = input(3, defval = 3, minval = 1, maxval = 10, title = "accuracy") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //RSI-2 fastup = rma(max(change(close), 0), 2) fastdown = rma(-min(change(close), 0), 2) fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown)) //RSI-7 middleup = rma(max(change(close), 0), 7) middledown = rma(-min(change(close), 0), 7) middlersi = middledown == 0 ? 100 : middleup == 0 ? 0 : 100 - (100 / (1 + middleup / middledown)) //RSI-14 slowup = rma(max(change(close), 0), 14) slowdown = rma(-min(change(close), 0), 14) slowrsi = slowdown == 0 ? 100 : slowup == 0 ? 0 : 100 - (100 / (1 + slowup / slowdown)) //Signals acc = 10 - accuracy up = fastrsi < (5 + acc) and middlersi < (10 + acc * 2) and slowrsi < (15 + acc * 3) dn = fastrsi > (95 - acc) and middlersi > (90 - acc * 2) and slowrsi > (85 - acc * 3) exit = (strategy.position_size > 0 and close > open) or (strategy.position_size > 0 and close > open) //Trading if up if strategy.position_size < 0 strategy.close_all() strategy.entry("Bottom", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if dn if strategy.position_size > 0 strategy.close_all() strategy.entry("Top", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if time > timestamp(toyear, tomonth, today, 23, 59) or exit strategy.close_all()