Отличная торговая стратегия на основе индикатора RSI


Дата создания: 2024-01-25 12:23:39 Последнее изменение: 2024-01-25 12:23:39
Копировать: 1 Количество просмотров: 640
1
Подписаться
1617
Подписчики

Отличная торговая стратегия на основе индикатора RSI

Обзор

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

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

Эта стратегия использует 2-х RSI как торговый сигнал. Когда RSI превышает 20, выделяйте больше; когда RSI превышает 70, выделяйте меньше. Таким образом, можно использовать краткосрочные возможности для корректировки индекса.

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

Анализ преимуществ

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

  1. Принципы простые, понятные и легко проверяемые
  2. Меньшие параметры показателя, легко оптимизировать и корректировать
  3. Поиск краткосрочных сверхдоходов в соответствии с идеей пересечения сделки
  4. Настраиваемые торговые периоды, адаптированные к различным ожиданиям

Анализ рисков

Основные риски этой стратегии:

  1. Невозможность справиться с долгосрочными тенденциями, легкость упускать из виду большую ситуацию
  2. Оптимизация параметров может привести к риску перенастройки
  3. Беспроигрышные механизмы, не способные эффективно контролировать убытки
  4. Частые сделки, влияющие на время хранения позиций, приводят к более высоким торговым сборам

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

  1. Показатели, такие как тенденции, для выявления долгосрочных тенденций
  2. Использование метода Walk Forward Analysis для предотвращения пересочетания
  3. Установка точки остановки, своевременная остановка
  4. Правильная корректировка параметров торгов, контроль частоты торгов

Направление оптимизации

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

  1. Оптимизация RSI, поиск оптимального сочетания параметров
  2. Увеличение механизмов сдерживания убытков, контроль за максимальным выводом
  3. Определение долгосрочных тенденций в сочетании с такими показателями, как скользящая средняя
  4. Добавление модуля управления позициями, оптимизация распределения позиций
  5. Добавление количественной функции copyright, автоматическая коррекция параметров

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

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

Исходный код стратегии
/*backtest
start: 2023-01-18 00:00:00
end: 2024-01-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("RSI Strategy", overlay=true,pyramiding = 1000)
rsi_period = 2
rsi_lower = 20
rsi_upper = 70

rsi_value = rsi(close, rsi_period)
buy_signal = crossover(rsi_value, rsi_lower)
sell_signal = crossunder(rsi_value, rsi_upper)
current_date1 =  input(defval=timestamp("01 Nov 2009 00:00 +0000"), title="stary Time", group="Time Settings")

current_date =  input(defval=timestamp("01 Nov 2023 00:00 +0000"), title="End Time", group="Time Settings")
investment_amount = 100000.0
start_time = input(defval=timestamp("01 Dec 2018 00:00 +0000"), title="Start Time", group="Time Settings") 
end_time = input(defval=timestamp("30 Nov 2023 00:00 +0000"), title="End Time", group="Time Settings")

in_time = time >= start_time and time <= end_time
// Variable to track accumulation.
var accumulation = 0.0
out_time = time >= end_time 

if (buy_signal )
    strategy.entry("long",strategy.long,qty= 1) 
    accumulation += 1
if (out_time)
    strategy.close(id="long")

plotshape(series=buy_signal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup)
plotshape(series=sell_signal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown)

plot(rsi_value, title="RSI", color=color.blue)
hline(rsi_lower, title="Lower Level", color=color.red)



plot(strategy.opentrades, style=plot.style_columns, 
     color=#2300a1, title="Profit first entry")
plot(strategy.openprofit, style=plot.style_line, 
     color=#147a00, title="Profit first entry")
// plot(strategy.position_avg_price, style=plot.style_columns, 
//      color=#ca0303, title="Profit first entry")
// log.info(strategy.position_size * strategy.position_avg_price)