
다주기 이동평균 트렌드 턴크 포인트 반발 트레이딩 전략은 간단한 이동평균 (SMA) 을 기반으로 한 정량 거래 시스템으로, 트렌드 확인, 평균 경사, 가격 반발 및 변동 중지의 네 가지 핵심 요소를 결합합니다. 이 전략은 다른 주기 (9, 20, 50, 100 및 200) 의 이동평균을 모니터링하여, 강력한 트렌드 환경의 가격 반발 기회를 식별하고, 역사적인 변동 설정을 사용하여 정확한 중단 위치를 사용합니다. 전략의 핵심 아이디어는 큰 트렌드가 확립된 후, 단기간에 중요한 지지 또는 저항 지점에 회전을 기다리고, 가격으로 주 트렌드 방향을 다시 확인하고, 동시에 변동 극을 위험 제어 수단으로 사용합니다.
이 전략의 작동원리는 다단계 조건부 필터링 시스템을 기반으로 합니다.
트렌드 확인 조건:
평균선 배열 조건:
기울기 조건:
다시 들어가기 위한 조건:
손해 중지 설정:
모든 적절한 조건이 동시에 충족되면, 전략은 다중 머리 또는 공허 머리 신호를 발산하고, 그에 따른 스톱 로드 위치를 설정한다.
시스템 트렌드 필터이 전략은 여러 평균선과 경사 조건을 통해 약점을 효과적으로 필터링하고 시장을 정리하고, 강한 추세 환경에서만 거래하여 신호 품질을 크게 향상시킵니다.
정확한 출입 시간: 트렌드 확인이 된 후 낮은 위험 지점에서 입시를 보장하는 역전 조건, 높은 것을 쫓는 것을 피하고 낮은 것을 죽이는 것을 피하고, 각 거래의 리스크 수익률을 높인다.
동적 상쇄 메커니즘: 시장의 실제 변동에 따라 설정된 스톱로스는 고정점 스톱로스보다 다양한 시장 조건과 변동률 환경에 더 잘 적응한다.
다중 인증 메커니즘: 평균선 교차, 가격 위치, 기울기 방향과 같은 여러 조건의 조합을 통해 가짜 신호의 확률을 줄인다.
이해하기 쉽고 최적화하기 쉽습니다.전략 논리는 명확하고 직관적이며, 매개 변수가 적고 각자의 역할이 명확하며, 다양한 시장 특성에 따라 최적화된 조정을 할 수 있다.
평균선 지연 문제이동 평균선은 본질적으로 지연된 지표이며, 급격한 변동 시장에서 신호 지연, 최적의 입문 지점을 놓치거나 지연된 상실을 유발할 수 있다. 해결책은 EMA 또는 VWMA와 같은 더 민감한 지표를 추가로 도입하는 것을 고려하는 것이다.
불확실성의 깊이에 대한 발걸음전략은 회귀의 깊이를 예측할 수 없으며, 때로는 가격이 20 일 평균선을 만지기 전에 다시 트렌드를 회복할 수 있으며, 이는 놓친 거래 기회를 초래합니다. 단일 가격선 대신 ATR 기반의 동적 지역 판단을 추가하는 것을 고려할 수 있습니다.
연속적인 손실 위험: 불안정한 시장에서, 가격의 빈번한 평균 경계를 통과하는 것은 연속적인 스톱로스를 초래할 수 있다. 변동율 필터를 추가하고, 높은 변동성 환경에서 전략 파라미터를 조정하거나 거래를 일시 중지하는 것이 좋습니다.
매개변수 민감도전략은 평균주기 및 회귀 매개 변수에 민감하며, 다른 시장과 시간 프레임에 따라 다른 매개 변수가 필요할 수 있습니다. 특정 거래 품종에 가장 적합한 매개 변수 조합을 재검토하여 결정하는 것이 좋습니다.
수량 확인 부족: 현재 전략은 가격 데이터에만 기반하고 거래량 확인의 부재는 낮은 유동성 환경에서 잘못된 신호를 유발할 수 있습니다. 추가 필터로 거래량 조건을 추가하는 것을 고려하십시오.
적응 변수 조정: 시장의 변동성에 따라 평균선 주기 및 기울기 회귀 기간을 자동으로 조정하는 것을 고려할 수 있습니다. 이를 통해 전략이 다양한 시장 환경에서 최적의 성능을 유지할 수 있습니다. 예를 들어, 낮은 변동성 시장에서 짧은 평균선 주기, 높은 변동성 시장에서 더 긴 기간을 사용할 수 있습니다.
필터링 조건을 추가상대적으로 약한 지표 ((RSI) 또는 무작위 지표 ((Stochastic) 를 보조 필터로 도입하여 오버 바이/오버 셀 영역에서만 역전 신호를 확인하고 가짜 신호를 더욱 줄여줍니다.
동적 위치 관리: 변동률과 트렌드 강도에 따라 포지션 크기를 조정하고, 강한 트렌드 낮은 변동 환경에서는 포지션을 증가시키고, 약한 트렌드 높은 변동 환경에서는 포지션을 감소시키고, 자본 효율성을 최적화한다.
다중 시간 프레임 확인더 높은 시간 프레임의 트렌드 확인 메커니즘을 도입하여 거래 방향이 더 큰 트렌드와 일치하고 역동적인 거래 위험을 줄이는 것.
수익 목표 설정: 현재 전략은 손실을 막는 설정만 있고 수익 목표가 없습니다. ATR 또는 중요한 저항 / 지원 위치에 기반한 동적 수익 목표 설정이 고려 될 수 있습니다. 위험 / 수익 비율을 최적화하십시오.
시장 상태 분류를 추가: 시장 상태를 판단하는 것을 소개한다 ((트렌드, 흔들림, 돌파구), 다른 시장 상태에 대해 다른 파라미터 설정을 사용하거나 거래 논리를 사용한다.
다주기 이동평균 트렌드 턴크 역전 거래 전략은 구조가 완전하고 논리가 명확한 정량 거래 시스템으로, 여러 평평선 조합, 기울기 분석 및 가격 역전 조건을 통해 트렌드 시장의 낮은 위험 입문 기회를 효과적으로 포착합니다. 이 전략은 중·장기 추세가 명확한 시장 환경에 특히 적합하며, 동적 스톱 손실 장치를 통해 위험을 제어하여 거래자에게 체계화된 트렌드 추적 방법을 제공합니다.
평행 지연 및 변수 민감성 등과 같은 고유한 위험이 존재하지만, 자율 변수, 다중 필터링 조건 및 동적 포지션 관리와 같은 권장 된 최적화 방향으로 전략의 안정성과 적응력을 더욱 향상시킬 수 있습니다. 궁극적으로, 이 전략은 계량 거래자에게 개인 위험 선호 및 시장 특성에 따라 맞춤 조정할 수 있는 신뢰할 수있는 기본 프레임 워크를 제공합니다.
/*backtest
start: 2025-01-01 00:00:00
end: 2025-07-05 10:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("SMA Pullback Strategy with Swing SL", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// === SMA Definitions ===
sma9 = ta.sma(close, 9)
sma20 = ta.sma(close, 20)
sma50 = ta.sma(close, 50)
sma100 = ta.sma(close, 100)
sma200 = ta.sma(close, 200)
// === Inputs ===
slopeLookback = input.int(5, title="Slope Lookback")
swingLookback = input.int(10, title="Swing High/Low Period")
// === Slope Calculation ===
slope20 = sma20 - sma20[slopeLookback]
slope200 = sma200 - sma200[slopeLookback]
// === Long Conditions ===
trendUp = close > sma20 and close > sma200
smaOrderUp = sma20 > sma200
slopeUp = slope20 > 0 and slope200 > 0
pullbackUp = close[1] < sma20[1] and close > sma20
swingLow = ta.lowest(low, swingLookback)
longCondition = trendUp and smaOrderUp and slopeUp and pullbackUp
// === Short Conditions ===
trendDown = close < sma20 and close < sma200
smaOrderDown = sma20 < sma200
slopeDown = slope20 < 0 and slope200 < 0
pullbackDown = close[1] > sma20[1] and close < sma20
swingHigh = ta.highest(high, swingLookback)
shortCondition = trendDown and smaOrderDown and slopeDown and pullbackDown
// === Strategy Entries & Exits ===
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", from_entry="Long", stop=swingLow)
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", from_entry="Short", stop=swingHigh)
// === Plotting SMAs ===
plot(sma9, title="SMA 9", color=color.gray)
plot(sma20, title="SMA 20", color=color.orange)
plot(sma50, title="SMA 50", color=color.purple)
plot(sma100, title="SMA 100", color=color.green)
plot(sma200, title="SMA 200", color=color.blue)
// === Plot Entry Signals ===
plotshape(longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)