리소스 로딩... 로딩...

RSI 기반의 거래 전략, 수익을 취하고 손실을 중지하는 비율

저자:차오장, 날짜: 2024-06-07 15:04:39
태그:RSITPSL

img

전반적인 설명

이 전략은 상대적 강도 지수 (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. 다른 지표와 결합: 신호의 신뢰성 및 견고성을 향상시키기 위해 MACD, 볼링거 밴드 등과 같은 다른 기술적 지표와 함께 RSI를 사용하십시오.

요약

수익을 취하고 손실을 멈추는 비율을 기반으로 한 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")


관련

더 많은