이 전략은 이동 평균과 상대 강도 지표 (RSI), 두 가지 기술 지표를 결합하여 계절적 순환적 특성을 파악하고 거래 신호를 생성합니다. 이 전략의 장점은 계절적 트렌드를 매우 명확하게 식별 할 수 있지만 잘못된 신호에 의해 오도 될 위험이 있습니다. 전략 성능을 향상시키기 위해 매개 변수 설정을 조정하여 추가 최적화를 수행 할 수 있습니다.
이 전략은 먼저 중장기 트렌드 방향을 파악하기 위해 특정 기간 n의 이동 평균을 계산합니다. 그 다음 이동 평균의 RSI 지표를 계산하여 현재 과잉 구매 또는 과잉 판매 상태에 있는지 판단합니다. RSI는 특정 기간 동안 이익과 손실의 비율을 계산하여 시장 정서를 측정합니다.
RSI가 하위 대역을 넘을 때, 과잉 판매 상태를 나타내는 구매 신호가 생성되고, 긴 포지션이 열릴 수 있습니다. RSI가 상위 대역을 넘을 때, 과잉 구매 상태를 나타내는 판매 신호가 생성되고, 짧은 포지션을 열 수 있습니다. 또한, 전략은 계절 패턴을 파악하기 위해 특정 달과 날에만 거래 할 수 있는 달 및 날짜의 범위를 설정합니다.
주요 트렌드를 결정하기 위해 이동 평균을 이용하고, 정확성을 향상시키기 위해 이중 지표를 결합하여 과소매/ 과소매 시나리오를 판단하기 위해 RSI를 사용
월별 및 날짜 범위를 설정하면 계절적 경향을 효과적으로 식별하고 그러한 거래 기회를 포착 할 수 있습니다.
유연한 RSI 매개 변수 설정으로 과잉 구매/ 과잉 판매 수준을 결정하는 민감도를 조정합니다.
주요 트렌드를 판단할 때 감수성을 조정할 수 있는 이동 평균 매개 변수
잘못된 신호에 의해 오인 될 위험이 있습니다. 예를 들어 비 계절적 사건으로 인해 트렌드 전환이 발생하면 부적절한 거래 신호를 생성 할 수 있습니다. 해결책은 잠재적 인 이벤트 위험을 피하기 위해 월간 및 날짜 범위를 조정하는 것입니다.
트렌드가 역전되는 경우 이동 평균과 RSI 사이에 오차가 나타날 수 있습니다. 해결책은 트렌드 회전을 더 빨리 포착하기 위해 이동 평균 기간을 적절히 단축하는 것입니다.
미리 설정된 월간 및 날짜 범위는 실제 계절 트렌드에서 벗어날 수 있습니다. 해결책은 역사적 데이터 테스트를 기반으로 더 정확한 계절 범위를 결정하는 것입니다.
거래 신호는 잘못된 브레이크에 직면 할 수 있습니다. 해결책은 작은 변동에 의해 오해되지 않도록 더 넓은 범위를 설정하는 것입니다.
더 엄격한 필터링 조건을 설정하고 잘못된 신호를 줄이기 위해 다른 보조 지표, 예를 들어 스토카스틱 오시레이터 (Stochastic Oscillator) 를 도입하십시오.
최적의 매개 변수를 찾고 전략 성능을 향상시키기 위해 더 많은 다른 매개 변수 조합을 테스트하십시오. 예를 들어 이동 평균 기간, RSI 밴드 등을 조정하십시오.
파라미터 최적화 방법을 사용하여 최적의 파라미터 집합을 위해 자동으로 파라미터 공간을 검색합니다.
더 많은 역사적 데이터를 수집하고 기계 학습을 사용하여 전략 규칙을 훈련하고 최적화합니다.
금전 관리를 최적화하기 위해 스톱 로스/프로피트 전략 추가를 고려하십시오.
이 전략은 이동 평균과 RSI를 결합하여 계절적 판단을 추가하여 트렌드 및 과잉 구매 / 과잉 판매 식별에 대한 비교적 완전한 시스템을 형성합니다. 이점은 계절적 패턴을 명확히 인식하고 그러한 거래 기회를 활용하는 능력에 있습니다. 오인 될 위험이 있지만 매개 변수 조정, 보조 지표 도입, 기계 학습 등을 통해 최적화가 가능하여 전략 성능을 높일 수 있습니다. 전반적으로이 전략은 실시간 테스트 및 응용 가치가있는 신뢰할 수 있고 효과적인 계절적 거래 프레임워크를 제공합니다.
/*backtest start: 2023-09-26 00:00:00 end: 2023-10-26 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title = " RSI of MA Strategy ",shorttitle="MARSI Strategy",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,commission_type=strategy.commission.percent,commission_value=0.1,initial_capital=1) lengthofma = input(15,minval=1,title="Length of MA") len = input(14, minval=1, title="Length") upperband = input(70,minval=1,title='Upper Band for RSI') lowerband = input(30,minval=1,title="Lower Band for RSI") src=sma(close,lengthofma) up = rma(max(change(src), 0), len) down = rma(-min(change(src), 0), len) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) plot(rsi, color=purple) band1 = hline(upperband) band0 = hline(lowerband) fill(band1, band0, color=purple, transp=90) longCond = crossover(rsi,lowerband) shortCond = crossunder(rsi,upperband) monthfrom =input(1) monthuntil =input(12) dayfrom=input(1) dayuntil=input(31) if ( longCond ) strategy.entry("LONG", strategy.long, stop=close, oca_name="TREND", comment="LONG") else strategy.cancel(id="LONG") if ( shortCond ) strategy.entry("SHORT", strategy.short,stop=close, oca_name="TREND", comment="SHORT") else strategy.cancel(id="SHORT")