
이 전략은 여러 기술 지표를 기반으로 하는 추세 추적 거래 시스템입니다. 이동 평균 추세, RSI 매수 과다 및 매도 과다, ATR 변동성 지표를 결합하여 다차원 시장 분석을 통해 거래의 성공률과 수익성을 개선합니다. 전략의 핵심 논리는 단기 및 장기 EMA의 교차를 통해 추세 방향을 확인하고 RSI 지표를 사용하여 거짓 돌파를 걸러내고 마지막으로 ATR을 결합하여 보유 시간을 동적으로 조정하여 정확한 파악을 달성하는 것입니다. 추세.
이 전략은 20일과 50일 EMA 이동 평균을 추세 판단의 주요 기준으로 사용합니다. 단기 EMA가 장기 EMA를 위로 교차하면 상승 추세가 확인되고, 그렇지 않으면 하락 추세가 확인됩니다. RSI 지표는 추세 확인을 기반으로 과매수와 과매도를 판단하기 위해 도입되었습니다. RSI가 30보다 낮고 과매도 범위에 진입하여 상승 추세에 있을 때 롱 신호가 트리거되고 RSI가 70보다 높을 때 그리고 매수 과열 범위에 진입하고 하락 추세에 있을 경우 롱 신호가 발생합니다. , 숏 신호가 발생합니다. 동시에 ATR 지표는 시장 변동성을 측정하는 데 사용됩니다. 거래는 ATR이 설정된 임계값보다 클 때만 실행되어 변동성이 너무 낮은 시장 환경에서 거래하는 것을 방지합니다.
이 전략은 이동 평균 추세, RSI 과매수 및 과매도, ATR 변동성이라는 세 가지 차원에 대한 포괄적인 분석을 통해 비교적 완전한 거래 시스템을 구축합니다. 이 전략의 핵심적인 장점은 여러 지표의 교차 검증에 있으며, 이를 통해 거짓 신호의 영향을 효과적으로 줄일 수 있다는 것입니다. 매개변수 최적화와 위험 제어 메커니즘 개선을 통한 전략 최적화의 여지가 아직 많이 있습니다. 실제 거래에서 이를 사용할 경우 거래자는 특정 시장 환경에 맞게 매개변수를 조정하고 위험 관리 조치를 엄격하게 이행하는 것이 좋습니다.
/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("High Win Rate BTC Strategy", overlay=true)
// 参数设置
emaShortLength = input(20, title="Short EMA Length")
emaLongLength = input(50, title="Long EMA Length")
rsiLength = input(14, title="RSI Length")
rsiOverbought = input(70, title="RSI Overbought Level")
rsiOversold = input(30, title="RSI Oversold Level")
atrLength = input(14, title="ATR Length")
atrThreshold = input(1.0, title="ATR Threshold")
holdBars = input(5, title="Hold Bars")
// 计算指标
emaShort = ta.ema(close, emaShortLength)
emaLong = ta.ema(close, emaLongLength)
rsi = ta.rsi(close, rsiLength)
atr = ta.atr(atrLength)
// 趋势确认
uptrend = emaShort > emaLong
downtrend = emaShort < emaLong
// 入场条件
longCondition = uptrend and close > emaShort and rsi < rsiOverbought and atr > atrThreshold
shortCondition = downtrend and close < emaShort and rsi > rsiOversold and atr > atrThreshold
// 出场条件
var int holdCount = 0
if (strategy.position_size > 0 or strategy.position_size < 0)
holdCount := holdCount + 1
else
holdCount := 0
exitCondition = holdCount >= holdBars
// 执行交易
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
if (exitCondition)
strategy.close_all()
// 绘制指标
plot(emaShort, color=color.blue, title="Short EMA")
plot(emaLong, color=color.red, title="Long EMA")
hline(rsiOverbought, "RSI Overbought", color=color.red)
hline(rsiOversold, "RSI Oversold", color=color.green)
plot(rsi, color=color.purple, title="RSI")