RSI 및 볼링거 대역 수익성 전략

저자:차오장, 날짜: 2024-01-08 11:14:31
태그:

img

전반적인 설명

이 전략은 주로 RSI 지표와 볼링거 밴드를 사용하여 거래 규칙을 설계하고 트렌딩 시장에서 수익을 창출합니다. RSI가 과잉 구매 라인 아래에 있고 가격이 볼링거 밴드의 하부 밴드 근처에있을 때 길게 이동합니다. RSI가 과잉 판매 라인 위에 있고 가격이 상위 밴드 근처에있을 때 짧게 이동합니다. 이것은 기본적인 거래 논리입니다.

전략 논리

이 전략은 과잉 구매 및 과잉 판매 수준을 식별하기 위해 RSI 지표를 사용합니다. 과잉 구매 임계 이하의 RSI는 과잉 판매 신호로 간주되며, 과잉 판매 임계 이상은 과잉 구매 신호입니다. 볼링거 밴드 지표는 가격 브레이크를 감지하는 데 사용됩니다. 하부 밴드의 상향 브레이크는 긴 신호이며, 상부 밴드의 하향 브레이크는 짧은 신호입니다.

이 전략은 시장 정서를 측정하기 위한 RSI와 가격 브레이크오프를 감지하기 위한 볼링거 밴드를 결합한다. 두 조건이 동시에 충족될 때만 거래를 개시한다. 이는 가짜 신호를 필터링하고 전략 성능을 향상시키는 데 도움이 된다.

강점

이 전략은 RSI와 볼링거 밴드를 결합하여 시장 트렌드를 더 잘 결정하고 동력을 파악하는 데 도움이됩니다. 단일 지표 전략에 비해 더 많은 잘못된 신호를 필터링하고 더 높은 품질의 신호를 생성합니다. RSI는 과잉 구매 / 과잉 판매 수준을 측정하며 BB는 브레이크 이후 트렌드를 잡습니다. 함께 매우 효과적으로 작동합니다.

이 전략은 RSI와 BB가 동시에 신호를 내릴 때만 거래를 개시합니다. 이는 가짜 신호의 간섭을 피합니다. 스톱 로스가 속도가 높으면 시장이 돌릴 때 위험을 제어 할 수 있습니다.

위험 분석

비록 전략은 일부 잘못된 신호를 필터링하지만, RSI와 BB는 여전히 다양한 시장에서 동시에 잘못된 신호를 발산하여 불필요한 손실을 초래할 수 있습니다. 부적절한 매개 변수 설정은 또한 나쁜 전략 성과로 이어질 수 있습니다.

가장 좋은 매개 변수 조합을 찾기 위해 백테스팅을 통해 매개 변수를 최적화하는 것이 좋습니다. 또한 불필요한 손실을 피하기 위해 다양한 시장에서 거래를 중단하는 것을 고려하십시오. 또한 단일 거래 손실을 제어하기 위해 스톱 로스를 적절히 사용하십시오.

개선 할 수 있는 분야

이 전략은 다음과 같은 측면에서 개선될 수 있습니다.

  1. 최고의 조합을 위해 RSI와 BB 매개 변수를 최적화

  2. MACD, KD 등과 같은 필터 신호로 다른 지표를 추가

  3. 가짜 브레이크오웃을 방지하기 위해 돌파구 검증을 추가합니다.

  4. 다른 시장 조건에 따라 매개 변수를 조정하거나 거래를 중단합니다.

  5. 동적 스톱 손실을 위해 스톱 손실을 최적화

결론

이 전략은 RSI와 볼링거 밴드를 결합하여 거래 규칙을 설계합니다. 양쪽이 동의할 때 신호만 받아 가짜 신호를 효과적으로 필터링할 수 있습니다. 매개 변수 최적화, 신호 필터 추가, 스톱 로스 최적화 등을 통해이 전략을 지속적으로 정제하여 더 안정적인 이익을 얻을 수 있습니다.


/*backtest
start: 2023-12-08 00:00:00
end: 2024-01-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Get Funded Easily by mjanusic", shorttitle="FTMO Crusher by mjanusic", overlay=true)

///////////// RSI
RSIlength = input(16, title="RSI Period Length")
RSIvalue = input(45, title="RSI Value Range")
RSIoverSold = 0 + RSIvalue
RSIoverBought = 100 - RSIvalue
price = close
vrsi = ta.rsi(price, RSIlength)

///////////// Bollinger Bands
BBlength = input(20, title="Bollinger Bands SMA Period Length")
BBmult = input(2.0, title="Bollinger Bands Standard Deviation")
BBbasis = ta.sma(price, BBlength)
BBdev = BBmult * ta.stdev(price, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
source = close
buyCondition = ta.crossover(vrsi, RSIoverSold) and ta.crossover(source, BBlower)
sellCondition = ta.crossunder(vrsi, RSIoverBought) and ta.crossunder(source, BBupper)

///////////// RSI + Bollinger Bands Strategy
if (not na(vrsi))
    if (buyCondition)
        strategy.entry("Long Entry", strategy.long, stop=BBlower, comment="Long Entry")
    else
        strategy.cancel(id="Long Entry")

    if (sellCondition)
        strategy.entry("Short Entry", strategy.short, stop=BBupper, comment="Short Entry")
    else
        strategy.cancel(id="Short Entry")

//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_area)


더 많은