RSI и стратегия повышенной дивергенции сглаженного RSI

Автор:Чао Чжан, Дата: 2024-03-01 12:11:58
Тэги:

img

Обзор

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

Логика стратегии

  1. Вычислить индикатор RSI с 14 периодами.
  2. Для достижения эффекта сглаживания рассчитывается сглаженный RSI с использованием двойной WMA.
  3. Проверьте, есть ли RSI ниже 30 уровня, перепроданный статус.
  4. Проверьте, если сглаженный RSI ниже 35, с более сильным направленным трендом.
  5. Проверьте, нижняя точка показателя является ниже 25.
  6. Вычислите бычье расхождение RSI, найдите RSI, который делает новый минимум, а цена нет.
  7. Требуется сглаживание RSI.
  8. Сигнал покупки запускается, когда все условия выполнены.
  9. Установите условия стоп-лосса и прибыли.

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

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

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

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

  1. Вероятность неудачи RSI не может быть полностью избегнута.
  2. Углаженный показатель RSI имеет эффект задержки, может пропустить лучшее время входа.
  3. Стоп-лосс слишком свободный, риск расширения потерь.

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

Руководство по оптимизации

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

Дальнейшее улучшение эффективности стратегии путем настройки параметров и объединения большего количества индикаторов.

Заключение

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


/*backtest
start: 2024-01-30 00:00:00
end: 2024-02-29 00:00:00
period: 1m
basePeriod: 1m
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/
// © BigBitsIO

//@version=4
strategy(title="RSI and Smoothed RSI Bull Div Strategy [BigBitsIO]", shorttitle="RSI and Smoothed RSI Bull Div Strategy [BigBitsIO]", overlay=true, pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=.1, slippage=0)


TakeProfitPercent = input(3, title="Take Profit %", type=input.float, step=.25)
StopLossPercent = input(1.75, title="Stop Loss %", type=input.float, step=.25)

RSICurve = input(14, title="RSI Lookback Period", type=input.integer, step=1)
BuyBelowTargetPercent = input(0, title="Buy Below Lowest Low In RSI Divergence Lookback Target %", type=input.float, step=.05)
BuyBelowTargetSource = input(close, title="Source of Buy Below Target Price", type=input.source)
SRSICurve = input(10, title="Smoothed RSI Lookback Period", type=input.integer, step=1)
RSICurrentlyBelow = input(30, title="RSI Currently Below", type=input.integer, step=1)
RSIDivergenceLookback = input(25, title="RSI Divergence Lookback Period", type=input.integer, step=1)
RSILowestInDivergenceLookbackCurrentlyBelow  = input(25, title="RSI Lowest In Divergence Lookback Currently Below", type=input.integer, step=1)
RSISellAbove = input(65, title="RSI Sell Above", type=input.integer, step=1)
MinimumSRSIDownTrend = input(3, title="Minimum SRSI Downtrend Length", type=input.integer, step=1)
SRSICurrentlyBelow = input(35, title="Smoothed RSI Currently Below", type=input.integer, step=1)

PlotTarget = input(false, title="Plot Target")


RSI = rsi(close, RSICurve)
SRSI = wma(2*wma(RSI, SRSICurve/2)-wma(RSI, SRSICurve), round(sqrt(SRSICurve))) // Hull moving average

SRSITrendDownLength = 0
if (SRSI < SRSI[1])
    SRSITrendDownLength := SRSITrendDownLength[1] + 1

// Strategy Specific
ProfitTarget = (close * (TakeProfitPercent / 100)) / syminfo.mintick
LossTarget = (close * (StopLossPercent / 100)) / syminfo.mintick
BuyBelowTarget = BuyBelowTargetSource[(lowestbars(RSI, RSIDivergenceLookback)*-1)] - (BuyBelowTargetSource[(lowestbars(RSI, RSIDivergenceLookback)*-1)] * (BuyBelowTargetPercent / 100))

plot(PlotTarget ? BuyBelowTarget : na)



bool IsABuy = RSI < RSICurrentlyBelow and SRSI < SRSICurrentlyBelow and lowest(SRSI, RSIDivergenceLookback) < RSILowestInDivergenceLookbackCurrentlyBelow and BuyBelowTargetSource < BuyBelowTarget and SRSITrendDownLength >= MinimumSRSIDownTrend and RSI > lowest(RSI, RSIDivergenceLookback)
bool IsASell = RSI > RSISellAbove

if IsABuy
    strategy.entry("Positive Trend", true) // buy by market
    strategy.exit("Take Profit or Stop Loss", "Positive Trend", profit = ProfitTarget, loss = LossTarget)
if IsASell
    strategy.close("Positive Trend")


Больше