RSI 거래 전략은 손절매율과 이익실현율의 백분율을 기반으로 합니다.

RSI TP SL
생성 날짜: 2024-06-07 15:04:39 마지막으로 수정됨: 2024-06-07 15:04:39
복사: 3 클릭수: 718
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

RSI 거래 전략은 손절매율과 이익실현율의 백분율을 기반으로 합니다.

개요

이 전략은 상대적으로 약한 지수 ((RSI) 기술 지표를 기반으로 자산의 과매매와 과매매 상태를 분석하여 거래 결정을 내립니다. RSI가 과매매 경계를 초과할 때 구매 신호를 유발하고 RSI가 과매매 경계를 초과할 때 판매 신호를 유발합니다.

전략 원칙

  1. 지정된 주기에서의 RSI 지표값을 계산한다.
  2. RSI가 초상가치보다 낮은지 판단하고, 만약 초상가치보다 낮은지 판단하면, 구매 신호를 발산하고, 더 많은 포지션을 개시한다.
  3. 포지션 개시 가격, 중지 가격 및 중지 가격을 계산하십시오. 중지 가격은 포지션 개시 가격으로 곱하기 ((1-정지 비율), 중지 가격은 포지션 개시 가격으로 곱하기 ((1+정지 비율) )
  4. 포지션 보유 과정에서 가격 변화를 실시간으로 감시하는 방법:
    • 현재 가격이 스톱로스 가격에 도달했을 때, 평점 상쇄된다.
    • 현재 가격이 스톱 가격에 도달했을 때, 매매가 스톱.
    • RSI가 초고가 되는 시점에는 평준화한다.
  5. RSI가 다시 초상조치보다 낮아지면 2-4 단계를 반복하여 다음 거래 주기를 시작합니다.

우위 분석

  1. 간단하고 사용하기 쉬운: 이 전략은 고전적인 RSI 지표에 기반하고, 원칙은 간단하고, 이해하기 쉽고, 구현하기 쉽습니다.
  2. 트렌드 적응력: RSI 지표를 통해 시장의 과매매 상태를 캡처하고, 다른 시장 추세에 적응한다.
  3. 위험 조절: 고정 비율의 스톱 로드, 거래 당 위험 을 엄격하게 제어한다.
  4. 시간적 정지: 명확한 수익 목표를 설정하고, 가격이 정지 지점에 도달했을 때 평평한 입장을 결정하여 수익의 회귀를 방지합니다.
  5. 빈번한 거래를 줄여주기: RSI 지표에는 약간의 필터 기능이 있으며, 일부 잡음 신호를 필터링하여 빈번한 거래를 줄일 수 있습니다.

위험 분석

  1. 변수 감수성: 전략의 성과는 RSI 주기, 오버 바이 오버 시트, 그리고 스톱 스톱 손실 비율과 같은 변수에 민감하며, 다른 변수는 다른 결과를 가져올 수 있다.
  2. 진동 시장에서의 부실성: 진동 시장 환경에서 RSI 지표는 거래 신호를 자주 유발할 수 있으며, 이는 과도한 거래와 수익성 감소로 이어집니다.
  3. 동향 조정 위험: 강한 동향이 갑자기 조정되는 경우, 고정 비율의 정지 손실은 계정을 제때 보호하지 못하고, 더 큰 철수를 유발할 수 있다.
  4. 수익률 위험: 고정된 비율의 스톱 스톱 손실은 수익률 불균형으로 이어져 전략의 장기적인 안정성에 영향을 미칠 수 있다.

최적화 방향

  1. 동적 조정 파라미터: 다양한 시장 상태에 따라 동적으로 최적화 RSI 주기를, 오버 구매 오버 판매 절치 및 스톱 스톱 손실 비율과 같은 파라미터를 사용하여 전략의 적응성을 향상시킵니다.
  2. 트렌드 필터 도입: 이동 평균과 같은 다른 트렌드 지표와 결합하여 RSI 신호를 추가로 확인하여 진동 시장에서 가짜 신호를 줄인다.
  3. 정지 손실 메커니즘을 최적화하십시오. 이동 손실, 변동률 손실과 같은 더 유연한 정지 손실 방법을 사용하여 위험 제어 능력을 향상하십시오.
  4. 포지션 관리에 참여: 시장의 변동성과 계좌의 위험 상태에 따라 매 거래의 포지션 크기를 동적으로 조정하여 수익과 위험을 균형 잡습니다.
  5. 다른 지표와 결합: RSI를 MACD, 브린 띠와 같은 다른 기술 지표와 결합하여 신호의 신뢰성과 안정성을 향상시킵니다.

요약하다

RSI에 기반한 퍼센티지 스톱 스톱 손실 거래 전략은 시장의 과매매 과매매 상태를 포착하여 고정된 퍼센티지 스톱 스톱 손실 메커니즘과 결합하여 트렌드 반전 시 적시에 평형하여 안정적인 수익을 얻습니다. 이 전략의 원리는 간단하고 이해하기 쉽습니다. 위험 제어 가능하며 적응력이 강합니다.

전략 소스 코드
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("RSI Strategy with Adjustable TP and SL", overlay=true, 
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=10, 
     initial_capital=100000, 
     currency=currency.USD, 
     commission_type=strategy.commission.percent, 
     commission_value=0.1)

// RSI settings
rsiPeriod = input.int(14, title="RSI Period")
rsiOverbought = input.int(70, title="RSI Overbought Level", minval=50, maxval=100)
rsiOversold = input.int(30, title="RSI Oversold Level", minval=0, maxval=50)

// Fixed TP and SL settings
takeProfitPct = input.float(20, title="Take Profit Percentage", step=0.1) / 100
stopLossPct = input.float(5, title="Stop Loss Percentage", step=0.1) / 100

// Calculate RSI
rsiValue = ta.rsi(close, rsiPeriod)

// Plot RSI
hline(rsiOverbought, "RSI Overbought", color=color.red)
hline(rsiOversold, "RSI Oversold", color=color.green)
plot(rsiValue, title="RSI", color=color.purple)

// Entry conditions
buyCondition = ta.crossunder(rsiValue, rsiOversold)
sellCondition = ta.crossover(rsiValue, rsiOverbought)

// Calculate stop loss and take profit prices
var float entryPrice = na
var float stopLossLevel = na
var float takeProfitLevel = na

if (buyCondition)
    entryPrice := close
    stopLossLevel := entryPrice * (1 - stopLossPct)
    takeProfitLevel := entryPrice * (1 + takeProfitPct)
    strategy.entry("Buy", strategy.long)

// Close positions when TP or SL is hit
if (strategy.position_size > 0)
    if (close <= stopLossLevel)
        strategy.close("Buy", comment="Stop Loss Hit")
    if (close >= takeProfitLevel)
        strategy.close("Buy", comment="Take Profit Hit")

// Close positions when RSI crosses above overbought level
if (sellCondition)
    strategy.close("Buy", comment="RSI Overbought")

// Optional: Add alerts
alertcondition(buyCondition, title="Buy Alert", message="RSI crossed below oversold level")
alertcondition(sellCondition, title="Sell Alert", message="RSI crossed above overbought level")