RSI 임계 거래 전략

저자:차오장, 날짜: 2023-10-30 14:58:38
태그:

img

전반적인 설명

이 전략은 상대 강도 지수 (RSI) 를 기반으로 한 간단한 임계 거래 전략을 구현합니다. RSI가 30의 임계 이하로 떨어지면 구매하고 RSI가 40의 임계 이상으로 상승하면 판매합니다. 보유 기간은 10 일로 고정됩니다. 전략은 중장기 거래에 적합합니다.

전략 논리

이 전략은 주로 RSI 지표의 과반 판매 및 과반 구매 구역을 사용하여 거래 신호를 생성합니다. RSI는 기간 동안 가격 변화 속도를 반영합니다. RSI 30 이하는 가격이 반등 할 수있는 과반 판매 구역을 나타냅니다. RSI 70 이상은 가격이 떨어질 수있는 과반 구매 구역을 나타냅니다.

특히, 전략은 먼저 10일 RSI를 계산하고, 그 다음 30과 40의 임계치를 설정합니다. 10일 RSI가 30 이하로 떨어지면 구매 신호가 생성됩니다. 10일 RSI가 40 이상으로 상승하면 판매 신호가 생성됩니다. 구매 신호를 수신하면 긴 위치를 여깁니다. 판매 신호를 수신하면 보유일이 10일을 초과하면 직접 위치를 닫습니다. 그렇지 않으면 판매를 위해 10 일까지 계속 유지됩니다.

이 전략은 간단하고 이해하기 쉽는데, RSI를 이용한 과잉 판매 및 과잉 구매 구역을 식별하여 지표에 기반한 한계 거래 전략을 구현합니다.

장점

  1. 매개 변수 최적화를 위한 공간을 가진 널리 적용된 RSI 지표를 사용합니다

이 전략은 일반적인 RSI 지표를 사용합니다. RSI 매개 변수는 다른 기간과 시장 환경에 맞게 조정 및 최적화 할 수 있습니다.

  1. 간단한 트렌드를 실행

RSI는 가격 변화 추세를 반영 할 수 있습니다. 전략은 단순한 추세를 따르는 것을 달성하기 위해 RSI를 기반으로 가격 움직임을 판단합니다.

  1. 상대적으로 좋은 위험 관리

이 전략은 단일 손실을 효과적으로 제어하기 위해 고정된 보유 기간을 채택합니다. 한편, RSI 매개 변수는 잘못된 거래를 줄이기 위해 조정 될 수 있습니다.

위험성

  1. RSI 매개 변수

RSI 매개 변수는 유연하게 설정할 수 있지만 과도한 최적화 및 백테스트 편향은 실시간 거래 위험을 초래할 수 있습니다.

  1. 지연효과가 존재합니다.

RSI 는 추세를 따르는 지표이며 갑작스러운 사건에 대해 느리게 반응하며 약간의 지연 효과를 나타냅니다. 다른 지표가 결합되어야합니다.

  1. 고정 보유 기간은 유연성이 부족합니다.

고정 보유 기간은 이익 취득 및 중단 손실 시점을 의무화하고 시장 변화에 따라 조정할 수 없습니다. 중지 이익 및 중단 손실의 동적 조정이 바람직합니다.

개선 방향

  1. 다른 값의 RSI 매개 변수 및 테스트 영향을 최적화합니다.

  2. 다른 지표를 추가하여 다른 지표의 강점을 활용한 결합 시스템을 형성합니다.

  3. 시장 조건에 따라 동적인 조정을 허용하기 위해 수익/손실 중단 전략을 강화합니다.

  4. 포지션 사이즈를 최적화하여 시장 조건에 따라 포지션을 동적으로 조정합니다.

  5. 전략에 적합한 제품을 테스트하고, 높은 변동성을 가진 액체 제품을 선택합니다.

  6. 거래 시간을 최적화하고 전략에 대한 영향을 테스트합니다.

결론

이 전략은 상대적으로 간단하며, RSI를 사용하여 임계 기반의 거래 전략을 구현합니다. 그것의 장점은 단순성, 이해하기 쉽고 상대적으로 좋은 위험 통제를 포함한다. 그러나, RSI 매개 변수 최적화 어려움과 유연하지 않은 스톱 이익/손실과 같은 문제가 존재한다. 미래의 향상에는 매개 변수 최적화, 스톱 이익/손실 향상, 포지션 사이징 등이 포함됩니다. 라이브 거래 전에 추가 최적화가 필요합니다.


/*backtest
start: 2022-10-23 00:00:00
end: 2023-10-29 00:00:00
period: 1d
basePeriod: 1h
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/
// © Bitduke

//@version=4
// strategy("Simple RSI Buy/Sell at a level", shorttitle="Simple RSI Strategy", overlay=true,calc_on_every_tick=false,pyramiding=1, default_qty_type=strategy.cash,default_qty_value=1000, currency=currency.USD, initial_capital=1000,commission_type=strategy.commission.percent, commission_value=0.075)
overbought = input(40, title="overbought value")
oversold = input(30, title="oversold value")
// Component Test Periods Code Begin
testStartYear = input(2018, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2021, "Backtest Stop Year")
testStopMonth = input(16, "Backtest Stop Month")
testStopDay = input(2, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() => true
// Component Test Periods Code End
//////////////////////////////////////////////////////////////////////

myrsi = rsi(close, 10) > overbought
myrsi2 = rsi(close, 10) < oversold

barcolor(myrsi ? color.black : na)
barcolor(myrsi2 ? color.blue : na)


myEntry = myrsi2 and hour(time) <= 9

strategy.entry("Buy Signal", strategy.long, when = myEntry and testPeriod())

// Close 10 bar periods after the condition that triggered the entry

//if (myEntry[10])
    //strategy.close("Buy Signal")
strategy.close("Buy Signal", when = barssince(myEntry) >= 10 or myrsi and testPeriod())

//strategy.entry("Sell Signal",strategy.short, when = myrsi2)

더 많은