RSI에 기반한 스톱 로스 및 영업 전략

저자:차오장, 날짜: 2024-01-29 10:30:35
태그:

img

전반적인 설명

이 전략은 상대적 강도 지수 (RSI) 지표에 기반한 자동 스톱 로스 및 수익 거래 전략을 설계합니다. RSI 지표가 과잉 구매 라인 이상 또는 과잉 판매 라인 아래를 넘을 때 전략은 각각 긴 또는 짧은 포지션을 열 것입니다. 동시에 전략은 자동으로 오픈 가격과 미리 설정된 스톱 로스 비율 및 수익 비율을 기반으로 스톱 로스 가격을 설정하고 수익 가격을 취합니다.

전략 논리

이 전략은 RSI 지표를 사용하여 시장에서 과잉 구매 및 과잉 판매 조건을 결정합니다. RSI가 하위점 (디폴트 30) 이하로 떨어지면 시장이 과잉 판매로 간주되고 긴 지위가 열립니다. RSI가 상위점 (디폴트 70) 이상으로 상승하면 시장이 과잉 구매로 간주되고 짧은 지위가 열립니다.

긴 또는 짧은 오픈 후, 전략은 자동으로 중지 손실 가격을 설정하고 수익을 얻을 수 있는 가격을 중지 손실 비율 (기본 5%), 수익을 얻을 수 있는 비율 (기본 10%) 에 따라 설정합니다. 예를 들어, 긴 오픈 후, 중지 손실 가격은 (1 - 중지 손실 비율) * 입력 가격, 그리고 수익을 얻을 수 있는 가격은 (1 + 수익을 얻을 수 있는 비율) * 입력 가격입니다.

이점 분석

이 전략의 가장 큰 장점은 거래 위험을 완화하기 위해 자동으로 스톱 로스를 설정하고 수익을 취할 수 있다는 것입니다. 스톱 로스는 손실을 제한하고 수익을 취하는 것을 허용합니다. 동시에, RSI는 과잉 구매 및 과잉 판매 조건을 효과적으로 식별 할 수있는 성숙한 기술 지표입니다.

위험 분석

이 전략에는 몇 가지 위험도 있습니다. RSI 신호는 때때로 잘못되어 불필요한 손실로 이어질 수 있습니다. 또한, 촉발된 스톱 손실 또는 수익을 취하는 것도 수익을 잃을 수 있습니다. 스톱 손실 및 수익률 비율은 신중하게 설정되어야합니다. 너무 느슨한 것은 위험을 효과적으로 제어하지 못할 수 있으며 너무 긴 것은 불필요한 스톱 손실로 이어질 수 있습니다.

이러한 위험은 RSI 매개 변수를 최적화하거나 스톱 로스/트랙 노프트 비율을 조정함으로써 감소될 수 있다. 또한 신호를 확인하기 위한 다른 지표를 통합하면 거래 결정의 정확도가 향상될 수 있다.

전략 최적화

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

  1. 가장 좋은 조합을 찾기 위해 RSI 매개 변수를 최적화

  2. 다른 스톱 손실 및 수익 비율 설정을 테스트

  3. 거래 신호를 필터링하는 다른 지표를 추가

  4. 유동 시장에서 잘못된 신호를 피하기 위해 트렌드 결정 규칙을 포함

  5. 출입 시기를 최적화하고, 수익을 확보하기 위해 후속 정지를 설정합니다.

결론

이 전략은 RSI 지표에 기반한 간단하고 실용적인 스톱 로스 및 영업 전략을 설계한다. 로직은 명확하고 쉽게 구현할 수 있으며, 자동화된 스톱 로스 및 영업으로 리스크를 제어할 수 있다. 잘못된 RSI 신호와 관련된 리스크를 방지하기 위해 매개 변수 및 규칙 최적화에 주의가 필요하다. 전반적으로 양적 거래에 좋은 아이디어를 제공하고 추가 연구와 최적화에 가치가 있다.


/*backtest
start: 2023-12-29 00:00:00
end: 2024-01-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("twelve12 first RSI remix", overlay=true)

length = input(14)
overSold = input(35)
overBought = input(65)
stopLossPercent = input(5, title="Stop Loss (%)") / 100
takeProfitPercent = input(10, title="Take Profit (%)") / 100

price = close

vrsi = ta.rsi(price, length)
co = ta.crossover(vrsi, overSold)
cu = ta.crossunder(vrsi, overBought)

if (not na(vrsi))
    if (co)
        strategy.entry("RsiLE", strategy.long, comment="RsiLE")
    if (cu)
        strategy.entry("RsiSE", strategy.short, comment="RsiSE")

// Calculate stop loss and take profit levels for long and short positions
longStopLoss = strategy.position_avg_price * (1 - stopLossPercent)
longTakeProfit = strategy.position_avg_price * (1 + takeProfitPercent)
shortStopLoss = strategy.position_avg_price * (1 + stopLossPercent)
shortTakeProfit = strategy.position_avg_price * (1 - takeProfitPercent)

// Set stop loss and take profit for long position


더 많은