이동 평균 및 확률적 RSI 전략


생성 날짜: 2024-02-01 11:37:40 마지막으로 수정됨: 2024-02-01 11:37:40
복사: 0 클릭수: 747
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

이동 평균 및 확률적 RSI 전략

개요

이 전략은 비트코인과 달러의 거래 쌍 ((BTC/USDT) 의 3분 시간 프레임에서 테스트되었으며 매우 좋은 결과를 낳았다. 이 전략은 이동 평균과 무작위적으로 상대적으로 약한 지표 ((Stochastic RSI) 를 사용하여 거래 신호를 식별했다.

전략 원칙

이 전략은 두 개의 다른 기간의 간단한 이동 평균을 사용한다. 각각 20주기 및 50주기. 이 두 개의 평균은 가격 추세를 판단하기 위해 사용된다. 단기 이동 평균에 장기 이동 평균을 가로질러 다단계 신호가 되고, 아래로 가로질러 공백 신호가 된다.

스토카스틱 RSI 지표의 계산 공식은 다음과 같습니다: ((RSI - 최저 RSI) / ((최고의 RSI - 최저 RSI) * 100 ᆞ 이 지표는 RSI 지표의 현재 수준을 가장 최근 기간 동안의 최고 및 최저 RSI의 위치에 대해 반영합니다. 스토카스틱 RSI가 20을 넘으면 과매매 신호가 되고, 80을 넘으면 과매 신호가 됩니다.

이 전략은 이동 평균을 사용하여 트렌드 방향을 판단하고, 스토카스틱 RSI를 사용하여 잠재적인 역점을 입시 시점으로 지정합니다.

전략적 강점 분석

이 전략은 이동 평균 또는 스토카스틱 RSI를 단독으로 사용하는 것에 비해 두 가지의 장점을 결합하여 트렌드를 더 잘 식별할 수 있으며 잠재적인 반전 지점을 파악하여 수익률을 높일 수 있습니다.

단일 지표에 비해, 이 전략은 여러 지표를 통합하고 엄격한 입시 규칙을 설정하여 가짜 신호를 효과적으로 필터링하여 무의미한 거래를 방지할 수 있습니다.

이 전략은 또한 위험을 잘 통제하고 있으며, 매번 2%의 자금으로 보증금 거래를 하며, 단독 손실의 영향을 효과적으로 제한할 수 있다.

전략적 위험 분석

이 전략은 주로 기술 지표에 의존하여 거래 신호를 결정합니다. 지표가 실패하면 잘못된 신호가 발생하여 손실이 발생할 수 있습니다. 또한 지표 매개 변수가 잘못 설정되면 전략의 성능에도 영향을 미칩니다.

시장이 급격하게 변동할 때, 스톱 스톱 손실 설정이 깨질 수 있으며, 이로 인해 손실이 확대될 위험이 있습니다.

전략 최적화 방향

더 많은 이동 평균 조합과 변수를 테스트하여 최적의 변수 조합을 찾을 수 있습니다. KD, RSI 등 다른 동력 지표와 이동 평균을 조합하여 시도 할 수도 있습니다.

다양한 암호화폐의 특성에 따라 최적의 스톱 스톱 손실 모드를 선택하여 위험을 더욱 제어할 수 있다.

기계 학습 알고리즘을 도입하여 자동으로 최적화된 파라미터 설정과 신호 판단 규칙을 도입하여 전략을 더욱 거칠고 적응할 수 있도록 한다.

요약하다

이 전략은 이동 평균과 스토카스틱 RSI 지표가 결합되어 거래 신호를 결정하는 데 성공했다. 단일 기술 지표에 비해 이 전략은 더 신뢰할 수 있는 거래 신호를 제공할 수 있다. 엄격한 위험 제어와 변수 최적화를 통해 이 전략은 안정적인 수익을 얻을 수 있다.

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

//@version=5
strategy("Moving Average and Stochastic RSI Strategy", shorttitle="MA+Stoch RSI", overlay=true)

// Input variables
ma1_length = input.int(20, title="MA1 Length")
ma2_length = input.int(50, title="MA2 Length")
stoch_length = input.int(14, title="Stochastic RSI Length")
overbought = input.int(80, title="Overbought Level")
oversold = input.int(20, title="Oversold Level")
risk_percentage = input.float(2.0, title="Risk Percentage")

// Calculate moving averages
ma1 = ta.sma(close, ma1_length)
ma2 = ta.sma(close, ma2_length)

// Calculate Stochastic RSI
rsi1 = ta.rsi(close, stoch_length)
rsiH = ta.highest(rsi1, stoch_length)
rsiL = ta.lowest(rsi1, stoch_length)
stoch = (rsi1 - rsiL) / (rsiH - rsiL) * 100

// Determine buy and sell signals based on Stochastic RSI
buySignal = ta.crossover(stoch, oversold)
sellSignal = ta.crossunder(stoch, overbought)

// Plot signals on the chart
plotshape(buySignal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(sellSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)

// Calculate position size based on equity and risk percentage
equity = strategy.equity
riskAmount = equity * risk_percentage / 100
positionSize = riskAmount / ta.atr(14)

// Entry and exit conditions
var float stopLoss = na
var float takeProfit = na

if buySignal
    stopLoss := low
    takeProfit := high
    strategy.entry("Buy", strategy.long)
else if sellSignal
    strategy.exit("Sell", from_entry="Buy", stop=stopLoss, limit=takeProfit)