슈퍼트렌드와 RSI 양적 거래 전략 결합

저자:차오장, 날짜: 2024-01-31 17:19:28
태그:

img

전반적인 설명

이 전략은 듀얼 드라이브 전략 (Dual-drive Strategy) 이라고 불립니다. 주요 아이디어는 두 가지 강력한 기술적 지표인 슈퍼 트렌드와 RSI를 결합하여 각각의 장점을 최대한 발휘하고 우수한 양적 거래 성과를 달성하는 것입니다.

전략 논리

전략의 핵심은 슈퍼트렌드 지표의 방향 변화를 결정하기 위해 변경 함수를 사용하여 거래 신호를 생성합니다. 슈퍼트렌드가 위에서 아래로 변할 때 구매 신호를 생성하고 슈퍼트렌드가 아래에서 위로 변할 때 판매 신호를 생성합니다.

동시에, RSI 지표는 포지션을 닫을 때를 결정하는 데 도움을 주기 위해 도입된다. RSI가 설정된 과잉 매수 라인을 넘어서면, 긴 포지션은 닫힐 것이며, RSI가 설정된 과잉 매매 라인을 넘어서면, 짧은 포지션은 닫힐 것이다. 이러한 방식으로, RSI는 수익을 잠금하기 위해 합리적인 스톱 로스 포인트를 결정하는 데 도움이 된다.

이점 분석

이 전략의 주요 장점은 다음과 같습니다.

  1. 슈퍼트렌드는 정확한 장기 및 단기 엔트리를 위해 시장 트렌드 변화를 식별하는 데 좋습니다.

  2. RSI는 합리적인 수익을 창출하고 손실을 멈추는 데 도움이 되는 과도한 전환점을 찾는 데 탁월합니다.

  3. 이 두가지는 서로가 더 나은 기회 포착과 더 안정적인 이득을 위해 결합된 강점으로 상호 보완됩니다.

  4. 전략 논리는 단순하고 깨끗해서 덜 경험이 있는 투자자조차도 쉽게 이해하고 추적할 수 있습니다.

  5. 안정적인 수익성과 통제 가능한 마이너오웃을 가진 강력한 구현

위험 분석

이러한 장점에도 불구하고, 이중 드라이브 전략에는 몇 가지 위험이 있습니다.

  1. Supertrend 및 RSI와 함께 불필요한 손실로 이어지는 잘못된 신호가 발생할 수 있습니다. 매개 변수를 조정하거나 확인을 위해 추가 지표를 도입 할 수 있습니다.

  2. 더 높은 위험성을 가진 쌍방향 거래는 더 엄격한 돈 관리 규칙과 위험 통제를 요구합니다.

  3. 스톱 로즈는 비정상적인 가격 변동으로 실패할 수 있습니다.

  4. 슈퍼트렌드는 다른 시장에 대한 조정이 필요한 매개 변수에 민감합니다.

최적화 방향

위험을 고려하면 다음과 같은 측면에서 최적화를 할 수 있습니다.

  1. 부피, MACD를 추가 신호 필터링 및 더 정확한 입력으로 추가합니다.

  2. 위험 이벤트에 반응하기 위해 동적 스톱 손실을 설정합니다.

  3. 슈퍼 트렌드 및 RSI의 매개 변수를 최적화하여 다른 시장에 더 잘 적응합니다.

  4. 매개 변수와 지표 선택에 대한 기계 학습을 도입합니다.

  5. 파생상품 (예: 선물상품, 옵션상품 등) 을 적용하여 위험을 감수하는 방법

  6. 손실과 유출을 제한하기 위해 포지션 크기를 변경하는 규칙

요약

이중 드라이브 전략은 효율적인 트렌드 캡처 및 수익을 얻기 위해 슈퍼트렌드와 RSI를 효과적으로 결합합니다. 단일 지표 전략에 비해 더 신뢰할 수 있는 신호, 더 작은 드라우다운 및 안정적인 알고리즘 거래 성능을 제공합니다. 매개 변수 조정, 신호 필터링 및 리스크 관리에 대한 추가 최적화는 더 나은 결과를 가져올 것입니다.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
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/
// © alorse

//@version=5
strategy("Supertrend + RSI Strategy [Alose]", overlay=true )

stGroup = 'Supertrend'
atrPeriod = input(10, "ATR Length", group=stGroup)
factor = input.float(3.0, "Factor", step = 0.01, group=stGroup)

[_, direction] = ta.supertrend(factor, atrPeriod)

// RSI
rsiGroup = 'RSI'
src = input(title='Source', defval=close, group=rsiGroup)
lenRSI = input.int(14, title='Length', minval=1, group=rsiGroup)
RSI = ta.rsi(src, lenRSI)

// Strategy Conditions
stratGroup = 'Strategy'
showLong = input.bool(true, title='Long entries', group=stratGroup)
showShort = input.bool(false, title='Short entries', group=stratGroup)
RSIoverbought = input.int(72, title='Exit Long', minval=1, group=stratGroup, tooltip='The trade will close when the RSI crosses up this point.')
RSIoversold = input.int(28, title='Exit Short', minval=1, group=stratGroup, tooltip='The trade will close when the RSI crosses below this point.')


entryLong = ta.change(direction) < 0
exitLong = RSI > RSIoverbought or ta.change(direction) > 0

entryShort = ta.change(direction) > 0
exitShort = RSI < RSIoversold or ta.change(direction) < 0

if showLong
    strategy.entry("Long", strategy.long, when=entryLong)
    strategy.close("Long", when=exitLong)

if showShort
    strategy.entry("Short", strategy.short, when=entryShort)
    strategy.close("Short", when=exitShort)


더 많은