RSI와 SMA를 기반으로 한 단기 거래 전략

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

img

전반적인 설명

이 전략은 단기적 RSI 및 SMA 퍼센트 변화라고 불린다. 거래의 입출을 결정하기 위해 RSI 및 이동 평균과 같은 일반적인 기술 지표를 이용한다. RSI는 0에서 100 사이의 값을 갖는 모멘텀 오시일레이터이며, 70 이상의 값은 과소매로 간주되고 30 이하의 값은 과소매로 간주된다. SMA는 단기적 및 장기적 가격 트렌드를 반영할 수 있는 간단한 이동 평균이다. 이 전략은 이 두 지표에 기초하여 입출 및 출출 신호를 구축하고 백테스트는 좋은 성과를 낼 수 있음을 보여줍니다.

전략 논리

RSI가 50보다 높을 때 상승 신호로 간주됩니다. 이것은 시장이 상승 지대에 균형을 이루고 있음을 나타냅니다. 9일 SMA가 100일 SMA보다 높을 때, 단기 트렌드가 장기 트렌드보다 낫다는 것을 의미하며, 우리는 긴 지위에 들어갈 수 있습니다. 또한, 단기 9일 SMA가 가격에 비해 6% 이상의 상대적 변화를 가지고 있다면, 단기 트렌드의 가속도를 나타냅니다. 이는 또한 진입 신호입니다.

이미 긴 포지션에 있다면, 이 전략은 수익을 잠금하기 위해 파라볼 SAR 트레일링 스톱을 사용합니다. 트레일링 스톱 손실 세트의 비율에 따라 가격이 물러날 때 포지션을 종료합니다.

이점 분석

이 전략은 트렌드 지표와 오시레이터를 결합하여 명확한 트렌드가 나타나면 시장에 진출 할 수 있으며, 시장이 역전되는 시기를 피하면서 거래 위험을 크게 줄일 수 있습니다. 스톱 로스 전략은 또한 수익을 잠금하고 트렌드가 역전되면 이익이 완전히 증발하는 것을 막을 수 있습니다.

백테스트는 이 전략이 좋은 결과로 상당히 명백한 단기 트렌드에서 이익을 얻을 수 있음을 보여줍니다. 그것은 높은 주파수 거래를 추구하는 투자자에게 적합합니다.

위험 분석

이 전략은 RSI 및 SMA와 같은 지표에 의존합니다. 어느 정도의 지연이 있습니다. 갑작스러운 사건이 급격한 시장 반전을 유발하면 이 전략이 시간 내에 종료되지 않을 수 있으며 큰 손실로 이어질 수 있습니다.

또한, 높은 주파수 거래는 더 높은 거래 비용을 부담합니다. 거래 주파수가 너무 높으면 축적 된 거래 수수료도 이익에 영향을 줄 수 있습니다.

최적화 방향

이 전략은 입력 및 출력 신호를 결정하기 위해 더 많은 지표를 통합하는 것을 고려할 수 있습니다. 예를 들어 가짜 브레이크오프를 피하기 위해 볼륨 지표를 추가합니다. 중지 손실 전략은 또한 시장 변동을 고려하여 더 유연한 방식으로 조정 될 수 있습니다.

또한, 최적화는 최고의 매개 변수 조합을 찾기 위해 거래 제품, 사이클 매개 변수에서 수행 될 수 있습니다. 크로스 사이클 거래는 또한 트렌드 방향을 결정하기 위해 더 높은 사이클을 사용하며, 진입을 결정하기 위해 더 낮은 사이클을 사용하여 고려 될 수 있습니다.

결론

이 전략 단기적 RSI 및 SMA 퍼센트 변화은 단기적 거래 전략을 구성하기 위해 RSI 및 SMA와 같은 일반적인 기술적 지표를 포괄적으로 사용합니다. 이 전략은 수익을 얻기 위해 상당히 명백한 단기적 트렌드를 포착 할 수 있으며, 동시에 수익을 잠금 할 수 있습니다. 이 전략은 높은 주파수 거래를 좋아하는 투자자에게 적합하지만 빠른 시장 반전의 위험도 주의가 필요합니다. 추가 최적화로이 전략은 더 나은 결과를 얻을 수 있습니다.


/*backtest
start: 2024-01-24 00:00:00
end: 2024-01-31 00:00:00
period: 1m
basePeriod: 1m
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("Short Term RSI and SMA Percentage Change",
         overlay=true,
         initial_capital=1000,
         process_orders_on_close=true,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=100,
         commission_type=strategy.commission.percent,
         commission_value=0.1)

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

//==================================Buy Conditions============================================

//RSI
length = input(14)
rsi = ta.rsi(close, length)
buyCondition1 = rsi > 50

//MA
SMA9 = ta.sma(close, 9)
SMA100 = ta.sma(close, 100)
plot(SMA9, color = color.green)
plot(SMA100, color = color.blue)
buyCondition2 = (SMA9 > SMA100)

//Calculating MA Percentage Change
buyMA = (close/SMA9)
buyCondition3 = buyMA >= 0.06

if (buyCondition1 and buyCondition2 and buyCondition3 and timePeriod) //and buyCondition
    strategy.entry("Long", strategy.long)

//==================================Sell Conditions============================================

// Configure trail stop level with input options
longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=5) * 0.01
shortTrailPerc = input.float(title='Trail Short Loss (%)', minval=0.0, step=0.1, defval=5) * 0.01

// Determine trail stop loss prices
longStopPrice = 0.0
shortStopPrice = 0.0

longStopPrice := if strategy.position_size > 0
    stopValue = close * (1 - longTrailPerc)
    math.max(stopValue, longStopPrice[1])
else
    0

shortStopPrice := if strategy.position_size < 0
    stopValue = close * (1 + shortTrailPerc)
    math.min(stopValue, shortStopPrice[1])
else
    999999
    
strategy.exit('Exit', stop = longStopPrice, limit = shortStopPrice)


더 많은