Стратегия разворота RSI


Дата создания: 2023-10-08 14:16:57 Последнее изменение: 2023-10-08 14:16:57
Копировать: 1 Количество просмотров: 645
1
Подписаться
1617
Подписчики

Обзор

Стратегия RSI, использующая индикатор RSI для выявления перепродажи и перекупа, используется для проведения обратных операций, когда цена пересекает среднюю линию. Эта стратегия, в сочетании с тенденцией и индикатором перепродажи, используется для проведения операций при появлении сигнала поворота в ценах на акции с целью захвата краткосрочных возможностей поворота цен на акции.

Стратегический принцип

Эта стратегия основана на следующих принципах:

  1. Используйте RSI ((2) для определения того, находится ли акция в состоянии перекупа или перепродажи. RSI меньше 25 считается перепроданной; RSI больше 80 считается перекупленной.

  2. Используйте 200-дневную ЭМА для определения долгосрочного направления тенденции цен на акции. Прохождение ЭМА вверх в цене рассматривается как сигнал о повышении, а прохождение ЭМА вниз - как сигнал о снижении.

  3. Когда RSI показывает сигнал о перепродаже, и цена пересекает EMA, выполните позитивную операцию, сделав больше. Это типичный обратный сигнал, показывающий, что цена акции вышла из зоны перепродажи и начала отскочить вверх.

  4. Когда RSI показывает сигнал опережения, и цена пересекает EMA, проводится нисходящая операция, чтобы сделать пустой. Это также является обратным сигналом, указывающим на то, что цена акции вышла из зоны опережения и начала отклонение вниз.

  5. С помощью этой обработки, мы надеемся, что сможем поймать возможность обратиться вспять до того, как появится новый тренд.

Конкретно, входные условия стратегии заключаются в том, что RSI меньше 25 и цена делает больше, когда она прорывается вверх; RSI больше 80 и цена делает пустоту, когда она прорывается вниз. Условие закрытия позиции заключается в том, что цена закрывается в течение одного торгового дня при максимальной цене за день.

Стратегические преимущества

Стратегия RSI, которая сочетает в себе трендовые и обратные факторы, имеет следующие преимущества:

  1. Ловить возможности для переворота: с помощью RSI можно определить перекуп и перепродажу, чтобы уловить момент переворота цены акций, что является ключом к достижению дополнительной прибыли.

  2. Следовательно: одновременно в сочетании с EMA определять направление большого тренда, избегать обратной операции. Считать обратный сигнал только в том случае, если направление большого тренда согласуется.

  3. Управление рисками: используя обратный режим работы, время хранения позиций в каждом направлении не будет слишком длительным, и риск может быть контролирован.

  4. Гибкость параметров: циклы RSI и EMA могут быть скорректированы и оптимизированы в зависимости от рыночных условий, что делает стратегию более адаптивной.

  5. Средняя частота торговли: возникновение обратного сигнала имеет умеренную частоту, не слишком часто торгуется и не долго бездействует.

  6. Простые и понятные: правила стратегии простые и понятные, не слишком сложные. Легко работать в реальном мире.

Риски и решения

Также существуют следующие риски:

  1. Риск обратного провала: после появления обратного сигнала, цена акций может снова вернуться к первоначальной тенденции, и тогда стратегия понесет убытки. Риск можно контролировать, приняв стоп-лосс.

  2. Риск отсутствия явных тенденций: когда нет явных тенденций в ценах на акции, EMA не может хорошо ориентироваться в направлении, и стратегия создает больше неопределенности. Можно оптимизировать, чтобы не совершать обратную операцию, когда нет явных тенденций в ценах на акции.

  3. Риск оптимизации параметров: выбор параметров RSI и циклов EMA может оказать большое влияние на эффективность стратегии. Оптимизация должна быть повторно проверена на основе исторических данных, чтобы выбрать оптимальные параметры.

  4. Риск переоптимизации: при поиске оптимальных комбинаций параметров может произойти переоптимизация, что приведет к пересоответствию. Необходимо провести проверку устойчивости, чтобы избежать неудачи во время тестирования.

  5. Риск частоты торговли: если обратный сигнал появляется слишком часто, это может привести к чрезмерному количеству сделок. Можно соответствующим образом скорректировать параметры цикла RSI, чтобы контролировать частоту торгов.

Оптимизация стратегии

Эта стратегия может быть улучшена в следующих аспектах:

  1. Оценка качества акций: можно использовать основные показатели акций для стратегических действий, выбирая только акции лучшего качества.

  2. В сочетании с другими показателями: могут быть введены другие показатели, такие как MACD, KD, для проверки обратного сигнала и повышения надежности стратегии.

  3. Динамическая корректировка параметров: можно динамически корректировать параметры RSI и циклы EMA в зависимости от изменения рыночной среды, повышая адаптивность стратегии.

  4. Оптимизация времени поступления: дальнейшая оптимизация конкретного времени поступления, например, ожидание обратного подтверждения для последующего поступления.

  5. Стратегия сдерживания: установить разумный уровень сдерживания, чтобы избежать возврата прибыли.

  6. Рассмотрение затрат на транзакции: оценка влияния торговых точек и других затрат на стратегию.

  7. Учитывайте волатильность цен на акции: только крупные волатильные акции являются стратегическими целями, что делает стратегию более надежной.

Подвести итог

Стратегия 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)