Стратегия реверсионного прорыва RSI - это стратегия, которая определяет ситуации перекупления и перепродажи с использованием индикатора RSI и принимает контратендерные сделки, когда цены нарушают скользящую среднюю.
Стратегия основывается на следующей логике:
Используйте RSI ((2) для определения, являются ли цены перекупленными или перепроданными.
Для определения общего направления тренда используйте 200-дневную EMA. Цены, превышающие EMA, считаются сигналом восходящего тренда, а превышение ниже EMA - сигналом нисходящего тренда.
Когда RSI показывает сигнал перепродажи и цена превышает EMA, вы должны пойти на длинный курс для восходящего тренда.
Когда RSI показывает сигнал перекупленности и цена прорывается ниже EMA, перейдите на понижающий тренд.
Торгуя реверсиями, мы надеемся поймать начало новой тенденции, прежде чем она начнется.
В частности, правило входа заключается в том, чтобы пойти длинным, когда RSI < 25 и цена выходит за верхнюю полосу; идти коротким, когда RSI > 80 и цена выходит за нижнюю полосу. Выходит, когда самая высокая цена дня проходит ниже самой высокой цены предыдущего дня.
Стратегия реверсионного прорыва RSI имеет следующие преимущества:
Поиск шансов на реверсию: выявление перекупленных/перепроданных с помощью RSI позволяет выявить реверсию цен, что является ключевым фактором для получения альфы.
Торговля с тенденциями: интеграция EMA гарантирует, что сделки соответствуют основным тенденциям.
Контроль рисков: реверсионные сделки ограничивают срок хранения позиции, контролируя риски.
Гибкие параметры: период RSI и период EMA могут быть скорректированы с учетом изменений режима рынка, что повышает адаптивность.
Соответствующая частота торговли: сигналы об обратном движении появляются с умеренной частотой, избегая переоценки, оставаясь активными.
Простота: правила просты и легко применяются в режиме реального времени.
Стратегия также имеет следующие риски:
Риск неудачного переворота: цены могут возобновить первоначальную тенденцию после сигнала переворота, что приводит к потерям.
Риск неясного тренда: EMA не работает хорошо, когда нет ясного тренда.
Риск оптимизации: параметры RSI и EMA оказывают большое влияние на производительность.
Риск переоборудования: преследование производительности во время оптимизации может привести к переоборудованию.
Риск переоценки: Слишком частые сигналы реверсии приводят к чрезмерной торговле.
Стратегия может быть улучшена в следующих аспектах:
Оцените качество акций: применяйте стратегию только к акциям высокого качества на основе фундаментальных данных.
Включить другие индикаторы: добавить MACD, KD и т. д. для подтверждения сигналов обворота и повышения надежности.
Динамическая корректировка параметров: динамическая адаптация параметров RSI и EMA на основе меняющихся рыночных условий.
Оптимизируйте время входа: отрегулируйте правила входа, чтобы дождаться подтверждения отмены.
Стратегия получения прибыли: Установите соответствующие уровни получения прибыли, чтобы избежать возвращения прибыли.
Учитывайте затраты на транзакции: Оцените влияние скольжения и комиссионных.
Подумайте о волатильности: сосредоточьтесь только на высоковолатильных акциях, чтобы сделать стратегию более надежной.
Стратегия реверсивного прорыва RSI сочетает в себе сигналы тренда и реверсивные сигналы, чтобы поймать ранние реверсии и крупные возможности. Умеренная частота торговли помогает контролировать риск. Правильная оптимизация времени входа, получения прибыли и выбора параметров может еще больше улучшить производительность.
/*backtest start: 2022-10-01 00:00:00 end: 2023-10-07 00:00:00 period: 2d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © jocker.soad //@version=4 // strategy("My Script", overlay=true, initial_capital=10000, default_qty_value=100) min = input(title="Valor minimo de entrada", defval=25) qtdAtivos = input(title="Quantidade de ações", defval=1) // overBuyLine = hline(80) // overSellLine = hline(min) var comprado = false var valorComprado = 0.0 var qtdDiasComprado = 0 var valorLucro = 0.0 valueRsi = rsi(close, 2) valueSma = sma(close, 200) valueEma = ema(close, 200) lastHighPrice = high[2] buyValidation = valueRsi <= min sellValidation = close >= lastHighPrice // plot(lastHighPrice, trackprice=true, offset=-99999, color=color.olive, linewidth=3, style=plot.style_area) // plot(valueRsi) // plot(valueSma) // plot(valueEma) // plotshape(sellValidation, style=shape.triangledown, color=color.blue) // plotshape(comprado, style=shape.triangledown, color=color.blue) startDate = input(title="Inicio Dia", type=input.integer, defval=1, minval=1, maxval=31) startMonth = input(title="Inicio Mes", type=input.integer, defval=1, minval=1, maxval=12) startYear = input(title="Inicio Ano", type=input.integer, defval=2018, minval=1800, maxval=2100) endDate = input(title="Final Dia", type=input.integer, defval=1, minval=1, maxval=31) endMonth = input(title="Final Mes", type=input.integer, defval=12, minval=1, maxval=12) endYear = input(title="Final Ano", type=input.integer, defval=2020, minval=1800, maxval=2100) inDateRange = true if inDateRange if close >= valueEma if comprado == false and buyValidation qtdDiasComprado := 0 comprado := true valorComprado := close strategy.order("buy", true, qtdAtivos, when=buyValidation) if sellValidation and comprado == true comprado := false valorLucro := valorLucro + (close - valorComprado) valorComprado := 0 strategy.order("sell", false, qtdAtivos, when=sellValidation) if comprado == true and sellValidation == false qtdDiasComprado := qtdDiasComprado + 1 // plot(valorLucro, color=color.lime)