
Стратегия RSI-прорыва - это количественная торговая стратегия, основанная на относительно сильных и слабых индикаторах (RSI). Эта стратегия создает торговый сигнал, когда RSI пробивает эти пороги, устанавливая предел RSI за зону покупки и предел продажи. То есть, когда RSI ниже 30, то это больше, а когда RSI выше 70, то это меньше.
Основная идея стратегии RSI Breakthrough заключается в том, чтобы использовать RSI для определения перекупки и перепродажи на рынке. RSI отражает недавние сильные и слабые стороны акций, рассчитывая соотношение средних роста и среднего падения акций за определенный период времени.
Эта стратегия сначала устанавливает линию перепродажи и линию перекупа RSI, по умолчанию 30 и 70. Затем в режиме реального времени отслеживает работу линии RSI. Когда RSI сверху вниз преодолевает этот порог 70, это создает сигнал продажи.
Таким образом, стратегия пытается уловить переломные моменты в процессе колебания цен на акции и своевременно скорректировать позиции в случае перекупа и перепродажи, чтобы достичь перекупа и перепродажи.
RSI имеет следующие преимущества:
Операционные сигналы просты и понятны. RSI-индикатор легко рассчитывать и понимать, достаточно просто посмотреть на его верхнюю и нижнюю границы установленного порога для прорыва линии индикатора.
Полностью количественный, лучший эффект от отслеживания. Эта стратегия извлекает торговые сигналы из показателя RSI, не требуя человеческого вмешательства и суждения, легко можно реализовать автоматизированную торговлю. В то же время сигнал о перекупке RSI более эффективен, и отслеживание стратегии также показывает значительную прибыль.
Высокая настраиваемость. Трейдеры могут гибко корректировать параметры RSI, такие как корректировка отклонений от перекупа до перепродажи, чтобы адаптироваться к различным характеристикам акций и рынка.
Также есть определенные риски, связанные с прорывом RSI, в том числе:
Возникает вероятность появления випсава. Когда индикатор колеблется вверх и вниз, часто вызывается сигнал о прорыве. В это время стратегия может создать слишком много неэффективных сделок, которые не способствуют стабильной прибыли.
Невозможность определить рыночную тенденцию. RSI создает торговый сигнал только из состояния перекупа и перепродажи, слабая способность определять большие тенденции.
Риск отступления выше. RSI часто демонстрирует многостороннее отклонение, то есть цены продолжают расти, а RSI снижается. В этом случае стратегия по пустому движению и отклонению от большого тренда будет иметь огромные потери.
Стратегия RSI Breakthrough может быть оптимизирована в следующих аспектах:
Сравнительные показатели, чтобы избежать ограничений одного RSI. Например, используйте движущиеся средние показатели для определения рыночных тенденций или используйте сильные и слабые показатели для фильтрации торговых сигналов.
Оптимизация параметров RSI для повышения стабильности стратегии. Включает в себя корректировку превышения предела покупки и продажи, установку длительности торговых сигналов и т. Д.
Установка стоп-стоп-условий для контроля риска, например, установка стоп-процентов или точек. Избегайте чрезмерного влияния одиночных убытков на общую прибыль.
RSI-прорывная стратегия - это количественная стратегия, использующая сверхпокупку и сверхпродажу для обратной торговли. Сигналы стратегии просты, четкие, полностью количественные и настраиваемые.
/*backtest
start: 2023-11-21 00:00:00
end: 2023-12-21 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// @version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Bunghole 2021
strategy(title="My New Strategy", initial_capital = 100000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, currency = 'USD', overlay=true)
//// Stoploss and Take Profit Parameters
// Enable Long Strategy
enable_long_strategy = input(true, title="Enable Long Strategy", group="SL/TP For Long Strategy",inline="1")
long_stoploss_value = input(defval=50, title='Stoploss %', type=input.float, minval=0.1, group="SL/TP For Long Strategy",inline="2")
long_stoploss_percentage = (close * (long_stoploss_value / 100)) / syminfo.mintick
long_takeprofit_value = input(defval=50, title='Take Profit %', type=input.float, minval=0.1, group="SL/TP For Long Strategy",inline="2")
long_takeprofit_percentage = (close * (long_takeprofit_value / 100)) / syminfo.mintick
// Enable Short Strategy
enable_short_strategy = input(true, title="Enable Short Strategy", group="SL/TP For Short Strategy",inline="3")
short_stoploss_value = input(defval=50, title='Stoploss %', type=input.float, minval=0.1, group= "SL/TP For Short Strategy",inline="4")
short_stoploss_percentage = (close * (short_stoploss_value / 100)) / syminfo.mintick
short_takeprofit_value = input(defval=50, title='Take Profit %', type=input.float, minval=0.1, group="SL/TP For Short Strategy",inline="4")
short_takeprofit_percentage = (close * (short_takeprofit_value / 100)) / syminfo.mintick
// Plot Stoploss & Take Profit Levels
long_stoploss_price = strategy.position_avg_price * (1 - long_stoploss_value/100)
long_takeprofit_price = strategy.position_avg_price * (1 + long_takeprofit_value/100)
short_stoploss_price = strategy.position_avg_price * (1 + short_stoploss_value/100)
short_takeprofit_price = strategy.position_avg_price * (1 - short_takeprofit_value/100)
plot(enable_long_strategy and not enable_short_strategy ? long_stoploss_price: na, color=#ff0000, style=plot.style_linebr, linewidth=2, title="Long SL Level")
plot(enable_long_strategy and not enable_short_strategy ? long_takeprofit_price: na, color=#008000, style=plot.style_linebr, linewidth=2, title="Long TP Level")
plot(enable_short_strategy and not enable_long_strategy ? short_stoploss_price: na, color=#ff0000, style=plot.style_linebr, linewidth=2, title="Short SL Level")
plot(enable_short_strategy and not enable_long_strategy ? short_takeprofit_price: na, color=#008000, style=plot.style_linebr, linewidth=2, title="Short TP Level")
// Date Range
start_date = input(title="Start Date", type=input.integer, defval=1, minval=1, maxval=31, group="Date Range")
start_month = input(title="Start Month", type=input.integer, defval=1, minval=1, maxval=12, group="Date Range")
start_year = input(title="Start Year", type=input.integer, defval=1804, minval=1800, maxval=3000, group="Date Range")
end_date = input(title="End Date", type=input.integer, defval=1, minval=1, maxval=3, group="Date Range")
end_month = input(title="End Month", type=input.integer, defval=1, minval=1, maxval=12, group="Date Range")
end_year = input(title="End Year", type=input.integer, defval=2077, minval=1800, maxval=3000, group="Date Range")
in_date_range = (time >= timestamp(syminfo.timezone, start_year, start_month, start_date, 0, 0)) and (time < timestamp(syminfo.timezone, end_year, end_month, end_date, 0, 0))
//// Inputs **This is where you enter your indicators for your strategy. For example, I added the RSI indicator.**
//RSI
rsi = rsi(close, 14)
rsi_over_sold = rsi < 30
rsi_over_bought = rsi > 70
//// Strategy **This is where you create your strategy. For example, We have or buy and sell signals.**
// Creating Long and Short Strategy
buy_signal = rsi_over_sold
sell_signal = rsi_over_bought
// Long Strategy
if buy_signal and in_date_range and enable_long_strategy == true
strategy.entry("Long", true, when=buy_signal, alert_message="Open Long Position")
strategy.exit("Long SL/TP", from_entry="Long", loss=long_stoploss_percentage, profit=long_takeprofit_percentage, alert_message="Your Long SL/TP Limit As Been Triggered.")
strategy.close("Long", when=sell_signal, alert_message="Close Long Position")
// Short Strategy
if sell_signal and in_date_range and enable_short_strategy == true
strategy.entry("Short", false, when = sell_signal, alert_message="Open Short Position")
strategy.exit("Short SL/TP", from_entry="Short", loss=short_stoploss_percentage, profit=short_takeprofit_percentage, alert_message="Your Short SL/TP Limit As Been Triggered.")
strategy.close("Short", when=buy_signal, alert_message="Close Short Position")