Двухнаправленная стратегия торговли, основанная на RSI и STOCH RSI

Автор:Чао Чжан, Дата: 2023-12-01 18:06:23
Тэги:

img

Обзор

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

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

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

Во-первых, RSI определяет, является ли рынок перекупленным или перепроданным. Если RSI выше линии перекупленности, рынок считается перекупленным. Если RSI ниже линии перепроданности, рынок считается перепроданным.

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

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

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

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

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

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

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

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

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

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

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

  1. Добавьте движущийся стоп-лосс, чтобы зафиксировать прибыль и уменьшить убытки.

  2. Оптимизировать параметры RSI и Stoch RSI для различных периодов и продуктов.

  3. Добавьте больше фильтров, таких как большие временные рамки и более низкая частота торговли.

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

  5. Оптимизация обратного теста для лучшей комбинации параметров.

Заключение

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


/*backtest
start: 2023-10-31 00:00:00
end: 2023-11-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version= 2
strategy("RSI+STOCHRSI v2", overlay=true)
lengthrsi = input(10)
overSold = input( 20 )
overBought = input( 70 )
price = ohlc4
vrsi = rsi(price, lengthrsi)

smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
src = input(close, title="RSI Source")

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
srsilow=input(20)
srsiup=input(80)






yearfrom = input(2018)
yearuntil =input(2039)
monthfrom =input(6)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)



if (  ( crossover(d,k)) and ( (vrsi<overSold) or crossover(vrsi,overSold) )  and   year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil) 
    strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND",  comment="BUY")
    
else
    strategy.cancel(id="BUY")


if ( ( crossunder(d,k) ) and ( (vrsi >overBought) or crossunder(vrsi,overBought) ) and   year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil ) 

    strategy.entry("SELL", strategy.short,stop=close, oca_name="TREND",  comment="SELL")
else
    strategy.cancel(id="SELL")
    
    
    

Больше