Индикатор RSI для улучшения торговых стратегий


Дата создания: 2023-12-29 16:23:48 Последнее изменение: 2023-12-29 16:23:48
Копировать: 0 Количество просмотров: 682
1
Подписаться
1621
Подписчики

Индикатор RSI для улучшения торговых стратегий

Обзор стратегии

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

Подробности стратегии

1. Название стратегии: RSI Histogram Alert Strategy

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

2. Принципы стратегии

(1) Расчет значения RSI по формуле:

RSIMain = (rsi(xPrice, RSIPeriod) - 50) * RSIHistoModify

Из них xPrice - это последовательность цен, RSIPeriod - это параметр для расчета RSI, RSIHistoModify - это коэффициент масштабирования значения RSI.

(2) Установите BuyAlertLevel и SellAlertLevel. При этом RSI будет выше BuyAlertLevel и ниже SellAlertLevel.

(3) Гистограмма индикатора RSI, визуализирующая сигналы покупки и продажи.

(4) Настройка позиции pos, когда вызывается сигнал, настройка pos будет 1 ((делать больше) или - 1 ((делать меньше) ◄ и можно выбрать позиционную или обратную торговлю ◄ .

(5) Вход и цены, определяемые в зависимости от стоимости pos.

3. Преимущества стратегии

(1) Улучшенное использование RSI для более четкого отображения сигналов о покупке и продаже.

(2) Настраиваемые параметры, адаптация RSI и предупредительных линий к различным рынкам.

(3) Интуитивное отображение гистограммы сигналов купли-продажи.

(4) Можно выбрать прямой или обратный курс.

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

4. Стратегические риски

(1) RSI сам по себе является ложным сигналом.

(2) Не учитывая остановку, существует риск больших потерь.

(3) Неправильная настройка параметров также может привести к сбоям.

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

(1) В сочетании с другими показателями фильтруйте сигналы, чтобы избежать ошибочных сигналов. Например, учитывайте прорыв в объеме сделок.

(2) создание механизмов для сдерживания убытков.

(3) Оптимизация параметров, поиск оптимальных параметров.

(4) Можно рассмотреть возможность использования алгоритмов для автоматического поиска оптимальных параметров в сочетании с машинным обучением.

В-третьих, заключение.

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

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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 22/12/2016
// This simple indicator modified RSI
// You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect...
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="RSI HistoAlert Strategy")
RSIPeriod = input(13, minval=1)
BuyAlertLevel = input(-10)
SellAlertLevel = input(10)
RSIHistoModify = input(1.5)
reverse = input(false, title="Trade reverse")
hline(0, color=purple, linestyle=line)
hline(BuyAlertLevel, color=green)
hline(SellAlertLevel, color=red)
xPrice = close
RSIMain = (rsi(xPrice, RSIPeriod) - 50) * RSIHistoModify
rsiHcolor =  iff(RSIMain >= 0 , green,
              iff(RSIMain < 0, red, black))
pos = iff(RSIMain > BuyAlertLevel, 1,
	     iff(RSIMain < SellAlertLevel, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(RSIMain, color=blue, title="RSI HistoAlert")
plot(RSIMain, color=rsiHcolor, title="Histogram", style = histogram, linewidth  = 1)