RSI 지표와 200일 SMA 필터에 기초한 간접 강도 지표 전략

저자:차오장, 날짜: 2023-12-12 15:26:06
태그:

img

전반적인 설명

이 전략은 주로 상대적 강도 지표 (RSI) 지표를 사용하여 과소매와 과소매 상황을 판단하고, 200일 간 간편 이동 평균 (200일 SMA) 을 주요 가격 트렌드 필터로 사용합니다. 트렌드 방향을 결정하는 기초로, 이 전략은 RSI 지표를 사용하여 수익성을 달성하기 위해 더 나은 진입 및 출구 타이밍을 찾습니다. RSI 지표만을 사용하는 것과 비교하면이 전략은 트렌드 판단을 높이고 시장 추세를 더 정확하게 파악하고, 황금 시장에서 상승과 판매 하락을 추격하고, 곰 시장에서 반대 작업을 수행하여 더 높은 전략 수익을 얻을 수 있습니다.

전략 원칙

이 전략은 주로 두 부분으로 구성됩니다: RSI 지표와 200 일 SMA 필터.

RSI 지표 섹션은 주로 가격이 과잉 구매 또는 과잉 판매 구역에 진입했는지 여부를 판단합니다. 계산 공식은:

RSI = 100 - 100 / (1 + RSI의 평균 상승일 / RSI의 평균 감소일)

경험적 매개 변수에 따르면, RSI가 < 30이면 과잉 판매되고, > 70이면 과잉 구매된다.

200일 SMA 필터는 주로 전체 시장 트렌드 방향을 판단합니다. 가격이 200일 SMA를 넘으면 황소 시장이고 그렇지 않으면 곰 시장입니다.

이 두 가지 판단에 근거하여, 전략은 다음과 같은 입출구 논리를 가지고 있습니다.

롱 엔트리: RSI <45 및 클로즈 가격 > 200일 SMA

긴 출구: RSI > 75 및 닫기 가격 > 200일 SMA

단기 엔트리: RSI > 65 및 클로즈 가격 < 200일 SMA

코트 출구: RSI < 25 및 클로즈 가격 < 200일 SMA

따라서 전략은 RSI 지표의 정확한 판단을 사용하여 전체 트렌드에서 더 나은 입문 및 출구 지점을 찾고 더 높은 수익을 달성합니다.

이점 분석

이 전략의 가장 큰 장점은 RSI 지표와 200일 SMA 필터의 조합을 사용하여 전략을 더 안정적이고 정확하게 만드는 것입니다.

  1. 200일 SMA는 전체 시장 추세를 효과적으로 판단하고 단일 RSI 지표에 대한 잘못된 판단을 피합니다.
  2. RSI 지표는 전체 시장 추세에서 더 나은 입점 및 출구 지점을 찾을 수 있습니다.
  3. 전략 작전은 간단하고 실행하기 쉽습니다.

또한 이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 주식 지수, 암호화폐 및 귀금속을 포함한 다양한 제품에 적용됩니다.
  2. 높은 자본 활용 효율성
  3. 단일 손실을 효과적으로 제어하기 위해 조심스럽게 스톱 손실을 추가 할 수 있습니다.

위험 분석

이 전략은 또한 몇 가지 위험을 안고 있습니다.

  1. 전체 시장의 갑작스러운 조정으로 인해 더 큰 손실이 발생할 수 있습니다.
  2. RSI와 SMA 지표에 어느 정도의 지연이 있습니다.
  3. 높은 거래 빈도는 더 높은 거래 비용으로 이어집니다.

이러한 위험을 통제하기 위해 다음과 같은 조치를 취할 수 있습니다.

  1. 예상치 못한 사건의 영향을 방지하기 위해 적절하게 위치 크기를 조정
  2. 레이그 확률을 줄이기 위해 RSI와 SMA 매개 변수를 최적화합니다.
  3. 거래 비용을 줄이기 위해 거래 빈도를 적절히 조정합니다.

최적화 방향

이 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.

  1. 시장 변동성에 따라 RSI 매개 변수를 동적으로 조정합니다.
  2. EMA와 같은 다른 이동 평균 지표가 더 나은 결과를 가져올 수 있는지 테스트하십시오.
  3. 자동 스톱 손실 메커니즘을 높여
  4. 자본에 기반한 포지션을 동적으로 조정하기 위해 포지션 사이징 모듈을 추가합니다.
  5. 더 나은 수익을 얻을 수 있는지 테스트하기 위해 입력 및 출력 논리를 최적화

결론

이 전략의 전반적인 성능은 정확 한 판단, 간단한 운영 및 광범위한 적용 가능성의 장점으로 좋습니다. 스톱 손실 및 포지션 사이징을 추가 한 후 실시간 거래에서 신중하게 실행 할 수 있습니다. 매개 변수 최적화, 스톱 손실 최적화, 포지션 사이징과 같은 후속 측면은 전략을 더욱 향상시킬 수 있습니다.


/*backtest
start: 2023-12-04 00:00:00
end: 2023-12-11 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/
// © LuxAlgo

//@version=5

strategy('Relative Strength Index Extremes with 200-Day Moving Average Filte', overlay=true, pyramiding=1, initial_capital=10000, default_qty_type=strategy.cash, default_qty_value=36000, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0.01)

// Rsi
rsi_lenght = input.int(14, title='RSI lenght', minval=0)
rsi_up = ta.rma(math.max(ta.change(close), 0), rsi_lenght)
rsi_down = ta.rma(-math.min(ta.change(close), 0), rsi_lenght)
rsi_value = rsi_down == 0 ? 100 : rsi_up == 0 ? 0 : 100 - 100 / (1 + rsi_up / rsi_down)


//Sma
Length1 = input.int(200, title='  SMA Lenght', minval=1)
SMA1 = ta.sma(close, Length1)

//Strategy Logic

Long = rsi_value < 45 and close > SMA1
Long_exit = rsi_value > 75 and close > SMA1

Short = rsi_value > 65 and close < SMA1
Short_exit = rsi_value < 25 and close < SMA1


if Long
    strategy.entry('Long', strategy.long)

if Short
    strategy.entry('Short', strategy.short)

strategy.close_all(Long_exit or Short_exit)

pera(pcnt) =>
    strategy.position_size != 0 ? math.round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
stoploss = input.float(title=' stop loss', defval=5, minval=0.5)
los = pera(stoploss)

strategy.exit('SL', loss=los)



//by wielkieef



더 많은