
이 전략은 RSI-WMA 교차 신호와 EMA 트렌드 필터링을 결합한 양적 거래 시스템으로, RSI와 WMA 평균선의 교차점을 식별하고 EMA 트렌드 확인과 결합하여 거래 신호를 생성합니다. 전략은 동적 중지 손실 (SL) 및 중지 중지 (TP) 메커니즘을 갖추고 있으며, 금분율에 기반한 자동으로 계산되는 위험 수익률을 기반으로 거래에 대한 좋은 위험 관리 프레임 워크를 제공합니다. 이 시스템은 트렌드 방향 검증된 오버 바이 오버 소드 반전 신호를 포착하여 거래 성공률을 높이기 위해 고안되었습니다.
전략의 핵심은 두 가지 주요 기술 기둥에 기반합니다: RSI-WMA 교차 신호와 EMA 트렌드 필터.
우선, 전략 계산 표준은 상대적으로 약한 지표 ((RSI) 를 사용하여 14 주기를 기본 설정으로합니다. 그리고 45 주기의 중화 이동 평균 ((WMA) 을 RSI에 적용하여 부드러운 RSI 지표 라인을 형성합니다. RSI가 WMA를 위쪽으로 통과하면 잠재적인 다중 신호가 발생하고, RSI가 WMA를 아래로 통과하면 잠재적인 빈 신호가 발생합니다.
둘째, 전략은 120주기의 지수 이동 평균 ((EMA) 을 트렌드 필터로 설정한다. 가격이 EMA 위에 있을 때만 다중 신호를 확인한다. 가격이 EMA 아래에 있을 때만 공소 신호를 확인한다. 이 메커니즘은 거래가 현재 시장 추세 방향에 따라 진행되도록 하고, 역전 거래가 방지된다.
신호가 확인된 후, 전략은 자동으로 동적 중지 및 정지 수준을 설정합니다:
이 동적 위험 관리 방식은 고정된 스톱 로즈 지점을 사용하는 대신 시장의 변동성에 적응할 수 있는 전략을 제공합니다.
이중 확인 메커니즘: RSI-WMA 교차를 통해 오버 바이 오버 셀 신호를 제공하며, EMA 트렌드 필터를 사용하여 거래 방향이 시장 추세와 일치하는지 확인하여 잘못된 신호의 가능성을 줄입니다.
지능형 동적 위험 관리: 스톱 포지션은 시장의 최근 변동에 기초하여 자동으로 조정되며, 정적 고정 지점 포지션이 아니라, 다양한 시장 환경에 더 잘 대응한다.
최적화된 리스크/이익 비율: 금분열에 가까운 1.613 리스크 수익률을 기본으로 사용하여, 위험 제어와 이익 최대화 사이의 균형을 잡습니다.
간단하고 유연한 변수 설정이 전략은 네 가지의 핵심 변수들만 포함하고 있습니다. EMA 길이는, RSI 길이는, WMA 길이는, 리스크/이익률은 모두 최적화 및 조정할 수 있습니다.
시각적 지표 통합: EMA, RSI, WMA-RSI 라인을 차트에 그려서 거래자는 전략적 의사 결정 과정을 직관적으로 이해할 수 있습니다.
트렌드 전환점의 지연성: EMA는 트렌드 필터로서 지연성이 있으며, 트렌드 전환점 근처에서 놓친 거래 기회를 초래하거나 잘못된 신호를 발생시킬 수 있다.
시장의 흔한 신호위축 시, RSI와 WMA-RSI가 교차할 수 있으며, 과도한 거래 신호가 발생하여 거래 비용이 증가합니다.
손해 방지 설정의 한계최근 2개의 K선에 기반한 스톱 전략은 극단적으로 변동하는 시장에서 너무 큰 스톱을 설정하여 단일 위험을 너무 높게 만들 수 있습니다. 또는 낮은 변동 환경에서 너무 작은 스톱을 설정하여 시장 소음으로 촉발 될 수 있습니다.
매개변수 민감도: EMA 길이와 WMA 길이와 같은 핵심 매개 변수의 선택은 전략 성능에 큰 영향을 미치며, 다른 시장 환경에는 다른 매개 변수 설정이 필요할 수 있다.
수량 확인 부족: 전략은 가격 파생 지표에만 기반하고, 추가 확인으로 거래량 정보를 통합하지 않으며, 신호 품질에 영향을 줄 수 있습니다.
해결 방법은: 전체적인 변수 최적화 테스트를 실시하고, 적응 변수 메커니즘을 도입하고, 거래량 필터를 추가하고, 더 엄격한 거래 주파수 제어 규칙을 시행하는 것입니다.
사용자 정의 변수를 입력합니다.: 시장의 변동성에 따라 RSI와 WMA의 길이를 동적으로 조정하여 전략을 다른 시장 조건에 더 잘 적응시킬 수 있습니다. 예를 들어, 높은 변동성 시장에서 RSI 주기를 단축하고 낮은 변동성 시장에서 RSI 주기를 연장 할 수 있습니다.
볼륨 증가 확인: 거래량 지표를 통합하여 추가적인 신호 확인 조건으로 신호 품질을 향상시킵니다. 예를 들어, 거래량이 증가했을 때만 신호를 확인하거나 이동 평균보다 높은 거래량을 요구합니다.
트렌드 필터를 최적화합니다.: EMA 트렌드 필터의 지연 문제를 줄이기 위해 트렌드 강도를 더 정확하게 식별하기 위해 이중 EMA 크로스 또는 ADX 지표를 도입하는 것이 고려 될 수 있습니다.
리스크 관리 메커니즘의 정교화: ATR (진실적인 변동의 폭) 에 기반하여 스톱 로드 레벨을 설정할 수 있습니다. K 선의 가장 최근의 낮은/높은 지점을 이용하는 것보다는 보다 정확한 위험 통제를 제공합니다.
시간 필터를 추가거래 시간 필터 기능을 도입하여 시장의 변동성이 낮거나 불확실성이 높은 시기를 피합니다.
강화 신호 품질 필터링: RSI와 WMA-RSI 사이의 교차각을 요구하여 최소의 경계를 달성하거나 교차가 중요한 RSI 레벨 (예: 30⁄70) 근처에서 발생하도록 요구하여 더 높은 품질의 신호를 필터링 할 수 있습니다.
이러한 최적화 방향은 전략의 안정성과 적응성을 높이고, 전략의 핵심 논리를 간결하게 유지하면서 다양한 시장 환경에서 그 성능을 강화하는 것을 목표로 합니다.
RSI-WMA 다이내믹 크로스 트렌드 추적 전략은 RSI-WMA 신호 시스템과 EMA 트렌드 필터를 결합한 양적 거래 방법이며, 다이내믹 스톱 로즈 스 메커니즘을 통해 합리적인 위험 관리를 제공합니다. 전략의 핵심 장점은 두 개의 확인 메커니즘과 지능적인 다이내믹 위험 관리이지만, 트렌드 전환점 지연 및 변수 감수성 등의 도전에 직면합니다.
적응 변수, 거래량 확인, 트렌드 필터 최적화, 리스크 관리의 정교화 등의 개선 사항을 도입함으로써 전략은 더욱 안정적인 거래 시스템이 될 가능성이 있습니다. 특히 명확한 트렌드 시장에서 전략은 RSI 역전 신호를 효과적으로 포착 할 수 있으며 EMA 트렌드 필터를 사용하여 역전 거래를 피할 수 있습니다.
이 전략은 특히 중기 및 장기 거래자에게 적합하며, 특히 위험 관리에 중점을 두고 주요 시장 추세에 따라 거래하기를 원하는 투자자에게 적합합니다. 적절한 위험 관리 전략과 함께 합리적인 매개 변수를 설정하면 다양한 시장 환경에서 안정적인 수익을 추구 할 수 있습니다.
/*backtest
start: 2024-04-27 00:00:00
end: 2025-04-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("RSI-WMA + EMA Trend Filter | SL/TP Dynamic", overlay=true,
default_qty_type=strategy.percent_of_equity, default_qty_value=5)
// ==== INPUTS ====
emaLen = input.int(120, title="EMA Length")
rsiLen = input.int(14, title="RSI Length")
wmaLen = input.int(45, title="WMA of RSI Length")
rrRatio = input.float(1.613, title="Risk:Reward Ratio", step=0.001)
// ==== INDICATORS ====
rsi = ta.rsi(close, rsiLen)
wma_rsi = ta.wma(rsi, wmaLen)
ema = ta.ema(close, emaLen)
// ==== TREND FILTER ====
trendLong = close > ema
trendShort = close < ema
// ==== CROSS SIGNALS ====
longSignal = ta.crossover(rsi, wma_rsi) and trendLong
shortSignal = ta.crossunder(rsi, wma_rsi) and trendShort
// ==== SL/TP CALC ====
var float sl = na
var float tp = na
// ==== ENTRY/EXIT LOGIC ====
if (longSignal)
sl := math.min(low, low[1]) // đáy thấp hơn gần nhất
tp := close + (close - sl) * rrRatio
strategy.entry("Long", strategy.long)
strategy.exit("TP/SL Long", from_entry="Long", stop=sl, limit=tp)
if (shortSignal)
sl := math.max(high, high[1]) // đỉnh cao hơn gần nhất
tp := close - (sl - close) * rrRatio
strategy.entry("Short", strategy.short)
strategy.exit("TP/SL Short", from_entry="Short", stop=sl, limit=tp)
// ==== PLOT ====
plot(ema, title="EMA120", color=color.orange)
plot(rsi, title="RSI", color=color.green)
plot(wma_rsi, title="WMA of RSI", color=color.blue)
hline(50, "RSI 50", color=color.gray)