Стратегия покупки и продажи с подвижным стоп-лоссом на основе индикатора RSI


Дата создания: 2024-01-17 13:54:43 Последнее изменение: 2024-01-17 13:54:43
Копировать: 0 Количество просмотров: 656
1
Подписаться
1617
Подписчики

Стратегия покупки и продажи с подвижным стоп-лоссом на основе индикатора RSI

Обзор

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

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

Стратегия основана на перекупленных и перепроданных зонах RSI, чтобы определить время покупки и продажи. Если RSI ниже 20, то это считается перепродажей, а если выше 80, то это считается перепродажей. Стратегия устанавливает три низкие RSI входные линии, соответственно 20, 18, 14.

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

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

Эта стратегия имеет следующие преимущества:

  1. Используя классические и широко проверенные RSI-индикаторы для определения точек купли-продажи, можно эффективно улавливать моменты перекупа и перепродажи.

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

  3. Мобильный стоп для управления убытками и блокировки прибыли позволяет эффективно контролировать риски.

  4. Логика стратегии проста, понятна, легко понятна и изменяется, а также легко проверяется на практике.

  5. Параметры RSI можно настраивать по своему усмотрению и корректировать в зависимости от разновидности и рынка.

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

Однако эта стратегия также несет в себе некоторые риски:

  1. Стратегия одного индикатора может привести к появлению ложных сигналов, а сигналы RSI не всегда точны.

  2. Нет стратегии сдерживания, есть риск увеличения убытков.

  3. Существует риск краха в зоне перекупа, особенно в условиях шока.

  4. В крайних случаях цена может упасть прямо за пределы линий стоп-лосса и не остановить убыток.

Соответствующие решения:

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

  2. Добавление зон или sar - это стратегия остановки.

  3. Настройка параметров RSI, уменьшение интервала.

  4. Приостановка движения или своевременное вмешательство человека.

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

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

  1. В сочетании с другими индикаторами, формируют комбинацию индикаторов, чтобы избежать ложных сигналов. Обычные комбинации: RSI + KDJ, RSI + MACD и т. Д.

  2. Добавление стратегий блокировки, таких как отслеживание тенденций, временные блокировки, мобильные каналы блокировки и т. Д.

  3. Оптимизация параметров, корректировка RSI параметров для различных сортов и циклов.

  4. Использование комбинации производных стратегий, таких как стратегии переворота, стратегии разбивки и др.

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

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

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

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

//@version=5
strategy("RSI Buy/Sell Strategy", overlay=false)

// Input for RSI period
rsiPeriod = input(12, title="RSI Period")

// Input for RSI levels
rsiBuyLevel1 = 20
rsiBuyLevel2 = 18
rsiBuyLevel3 = 14
rsiSellLevel = input(83, title="RSI Sell Level")

// Input for stop loss percentage
stopLossPercent = input(5, title="Stop Percentage")

// Calculate RSI
rsiValue = ta.rsi(close, rsiPeriod)

// Buy Conditions: RSI below buy levels
buyCondition1 = close[1] > close and rsiValue <= rsiBuyLevel1
buyCondition2 = close[1] > close and rsiValue <= rsiBuyLevel2
buyCondition3 = close[1] > close and rsiValue <= rsiBuyLevel3

// Sell Conditions: RSI above sell level or stop loss
sellCondition = (rsiValue > rsiSellLevel )//or ( close[1] < close * (1 - stopLossPercent / 100))

// Calculate position size based on 10% of current equity
positionSize = strategy.equity * 0.8 / close

// Plot RSI on the chart
plot(rsiValue, title="RSI", color=color.blue)

// Plot horizontal lines for buy and sell levels
hline(rsiBuyLevel1, "Buy Level 1", color=color.green)
hline(rsiBuyLevel2, "Buy Level 2", color=color.green)
hline(rsiBuyLevel3, "Buy Level 3", color=color.green)
hline(rsiSellLevel, "Sell Level", color=color.red)

// Execute Buy and Sell orders with stop loss
strategy.entry("Buy1", strategy.long, when = buyCondition1, qty = positionSize,stop=close * stopLossPercent / 100)
strategy.entry("Buy2", strategy.long, when = buyCondition2, qty = positionSize,stop=close * stopLossPercent / 100)
strategy.entry("Buy3", strategy.long, when = buyCondition3, qty = positionSize,stop=close * stopLossPercent / 100)

strategy.close("Buy1", when = sellCondition)
strategy.close("Buy2", when = sellCondition)
strategy.close("Buy3", when = sellCondition)