RSI와 이동평균을 기반으로 한 추세 추종 전략


생성 날짜: 2023-12-13 17:50:34 마지막으로 수정됨: 2023-12-13 17:50:34
복사: 1 클릭수: 825
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

RSI와 이동평균을 기반으로 한 추세 추종 전략

개요

이 전략은 RSI 지표와 빠른 느린 이동 평균을 계산하여 구매와 판매의 시간을 판단합니다. RSI가 5점 상승하고 70보다 낮을 때; 그리고 9일 이동 평균에서 50일 이동 평균을 통과하면 더 많이; 50일 이동 평균에서 9일 이동 평균을 통과하면 평점.

전략 원칙

이 전략은 주로 RSI 지표와 이동 평균의 조합을 사용합니다. RSI 지표는 주식이나 디지털 화폐가 과대 평가되거나 과소 평가되는지 표시할 수 있습니다. RSI가 30보다 낮으면 과매매로 간주되며, 70보다 높으면 과매매로 간주됩니다.

이동 평균은 트렌드 방향을 판단하는 데 널리 사용됩니다. 빠른 이동 평균은 가격 변화를 더 빨리 포착 할 수 있으며, 느린 이동 평균은 가짜 돌파구를 필터링 할 수 있습니다. 빠른 이동 평균에 느린 이동 평균을 통과하면 상승 추세에 진입하는 것을 나타냅니다. 반대로, 하향으로 이동하면 하향 추세에 진입하는 것을 나타냅니다.

우위 분석

이 전략의 가장 큰 장점은 RSI 지표로 과매매 지역을 판단하여 고위 구매를 피하고, 빠른 느린 이동 평균 필터로 가짜 돌파구를 사용하여 트렌드 방향을 고정하여 높은 수익률을 얻을 수 있다는 것입니다.

동시에, 전략은 RSI 지표가 연속으로 5점 상승하는 조건을 추가하여 과매도 영역의 불필요한 구매를 더욱 피할 수 있습니다. 또한, 전략은 부분 포지션 거래 방식을 채택하여 단일 거래의 손실 위험을 크게 줄일 수 있습니다.

위험과 예방

이 전략의 가장 큰 위험은 RSI 지표와 이동 평균이 모두 지연될 수 있다는 것입니다. 가격이 급격하게 변할 때, 그들의 신호는 지연될 수 있습니다.

이 위험을 방지하기 위해, 이 전략은 빠른 이동 평균을 추가하여 가격 변화에 더 빠르게 반응하는 특성을 사용하여 지연의 가능성을 줄입니다. 또한, 일부 포지션 거래는 단일 거래의 손실을 줄일 수 있습니다.

최적화 방향

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

  1. RSI 지표 변수를 테스트하여 최적의 조합을 찾습니다.

  2. 더 나은 필터링 효과를 얻기 위해 더 많은 조합의 빠른 느린 이동 평균을 테스트하십시오.

  3. 포지션 크기를 최적화하고 다양한 포지션 변수를 테스트합니다.

  4. 이윤을 고정하기 위해 스톱로스 조건을 늘립니다.

요약하다

이 전략은 전체적으로 트렌드 거래에 매우 적합하다. RSI 지표를 통해 과매매 지역을 피하고, 빠른 느린 이동 평균과 함께 트렌드 방향을 판단하고 중요한 지원 저항. 동시에 부분 포지션 거래를 하면, 더 높은 승률과 수익률을 얻을 수 있다. 후기에는 변수 최적화 및 풍력 제어 조건 최적화를 통해 더 나은 전략 효과를 얻을 수 있다.

전략 소스 코드
/*backtest
start: 2023-11-12 00:00:00
end: 2023-12-12 00:00:00
period: 1h
basePeriod: 15m
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/
// © Coinrule

//@version=5
strategy("RSI with Slow and Fast MA Crossing Strategy (by Coinrule)",
         overlay=true,
         initial_capital=10000,
         process_orders_on_close=true,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=30,
         commission_type=strategy.commission.percent,
         commission_value=0.1)

showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2020, 1, 1, 0, 0)
notInTrade = strategy.position_size <= 0


// RSI
length = input(14)
vrsi = ta.rsi(close, length)

// Moving  Averages for Buy Condition
buyFastEMA = ta.ema(close, 9)
buySlowEMA = ta.ema(close, 50)
buyCondition1 = ta.crossover(buyFastEMA, buySlowEMA)


increase = 5
if ((vrsi > vrsi[1]+increase) and buyCondition1 and vrsi < 70 and timePeriod)
    strategy.entry("Long", strategy.long)


// Moving  Averages for Sell Condition
sellFastEMA = ta.ema(close, 9)
sellSlowEMA = ta.ema(close, 50)
plot(request.security(syminfo.tickerid, "60", sellFastEMA), color = color.blue)
plot(request.security(syminfo.tickerid, "60", sellSlowEMA), color = color.green)


condition = ta.crossover(sellSlowEMA, sellFastEMA)
//sellCondition1 = request.security(syminfo.tickerid, "60", condition)

strategy.close('Long', when = condition and timePeriod)