이동평균 중첩 RSI 기반 전략


생성 날짜: 2024-02-02 18:12:17 마지막으로 수정됨: 2024-02-02 18:12:17
복사: 0 클릭수: 924
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

이동평균 중첩 RSI 기반 전략

개요

이 전략은 RSI, 양자, 음자 지표와 가격 변화 비율 순위 평균을 계산하여 가격 추세를 판단하고 거래 신호를 생성하기 위해 사용자 정의 된 종합 지표 CRSI를 구축하고 간단한 이동 평균 MA를 계산합니다.

전략 원칙

이 전략은 우선 가격의 3일 RSI를 계산하여 가격이 너무 뜨거워지거나 너무 추워지는지 판단하고; 동시에 가격의 태양-신선 지표를 계산하여 가격 운동 상태를 판단하고; 또한 가격의 비율 순위 ROC를 계산하여 가격의 상대적 변화 속도를 판단합니다. 다음으로 세 가지 지표의 평균을 받아서 사용자 정의 통합 지표 CRSI를 구성합니다. CRSI는 가격의 통합 상태를 반영합니다. 마지막으로 CRSI의 2일 간단한 이동 평균 MA를 계산합니다.

우위 분석

이 전략은 여러 지표를 조합하여 사용자 정의 된 CRSI 지표를 구축하여 거래 신호를 더 신뢰할 수 있습니다. RSI는 가격이 너무 뜨거워지거나 너무 추워지는지 판단할 수 있으며, 반사 지표는 가격 움직임을 판단하고, ROC는 가격 변화 속도를 판단 할 수 있습니다.

위험 분석

이 전략은 여러 지표를 사용하여 조합하지만 특정 시장 환경에서 잘못된 신호를 일으킬 수 있습니다. 예를 들어, 불안한 상황에서 RSI, ROC와 같은 지표는 실제 가격에는 명백한 추세가없는 빈번한 매매 신호를 일으킬 수 있습니다. 또는 갑작스러운 사건이 발생한 후 여러 지표가 지연되어 신호 거래를 지연시킬 수 있습니다. 이러한 상황은 전략 거래 손실을 초래할 수 있습니다.

최적화 방향

이 전략을 최적화하기 위해 다음과 같은 몇 가지 측면을 고려할 수 있습니다: 1) RSI, 양선 선 선 지표, ROC의 매개 변수를 최적화하여 CRSI 지표를 더 안정적이고 신뢰할 수있게 만듭니다; 2) KDJ, MACD와 같은 다른 보조 지표를 조합하여 신호를 더 포괄적으로 만듭니다; 3) 지연 위험을 줄이기 위해 MA의 매개 변수를 최적화하십시오; 4) 단독 손실을 제어하기 위해 스톱 조건을 추가하십시오; 5) 더 긴 기간의 지표와 결합하여 추세를 판단하여 불안정한 시장에서 자주 거래하는 것을 피하십시오.

요약하다

이 전략은 RSI, 자선, 음선, ROC의 평균선을 계산하여 CRSI의 사용자 정의 지표를 구성하고 CRSI의 MA를 계산하여 MA와 지정된 가격 수준이 Golden Cross 및 Death Cross에 발생했을 때 매매를 수행합니다. 이러한 다중 지표 조합은 거래 신호를 더 안정적이고 신뢰할 수있게 만듭니다. 그러나 이 전략은 잘못된 신호와 시장 환경의 영향을 줄이기 위해 보조 지표와 필터링 조건을 추가하여 안정적인 수익성을 높이기 위해 변수를 추가적으로 최적화해야합니다.

전략 소스 코드
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
src = close, lenrsi = 3, lenupdown = 2, lenroc = 100, malengt = 2, low = 40, high = 70, a = 1, vlow = 20
updown(s) => 
    isEqual = s == s[1]
    isGrowing = s > s[1]
    ud = 0.0
    ud := isEqual ? 0 : isGrowing ? (nz(ud[1]) <= 0 ? 1 : nz(ud[1])+1) : (nz(ud[1]) >= 0 ? -1 : nz(ud[1])-1)
    ud
rsi = rsi(src, lenrsi)
updownrsi = rsi(updown(src), lenupdown)
percentrank = percentrank(roc(src, 1), lenroc)
crsi = avg(rsi, updownrsi, percentrank)
MA = sma(crsi, malengt)

band1 = 70
band0 = 40
band2 = 20

ColorMA = MA>=band0 ? lime : red

p1 = plot(MA, title="BuyNiggers", style=line, linewidth=4, color=ColorMA)

p2 = plot(low, title="idk", style=line, linewidth=2, color=blue)
p3 = plot(high, title="idk2", style=line, linewidth=2, color=orange)
p4 = plot(vlow, title="idk3", style=line, linewidth=1, color=red)

//@version=2
strategy("CMARSI")


if crossover(MA, band0)
    strategy.entry("buy", strategy.long, 1, when=strategy.position_size <= 0)
    
if crossunder(MA, band1)
    strategy.exit("close", "buy",  1, profit=1, stop=1)
    



plot(strategy.equity)