양방향 SMMA 크로스오버 ATR 위험 제어 방향성 이익 전략

SMMA ATR TP SL
생성 날짜: 2025-02-19 10:59:14 마지막으로 수정됨: 2025-02-19 10:59:14
복사: 7 클릭수: 389
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

양방향 SMMA 크로스오버 ATR 위험 제어 방향성 이익 전략

개요

이 전략은 SMMA에 기반한 양방향 트렌드 추적 전략이다. 이 전략은 가격과 SMMA의 교차를 이용하여 다공간 신호를 생성하고, ATR의 동적 스톱로스 및 고정 수익 목표와 결합하여 위험과 수익을 관리한다. 전략은 간단하고 효과적이며, 다른 시간 주기에서의 트렌드 추적 거래에 적합하다.

전략 원칙

전략의 핵심은 17주기 SMMA와 가격의 교차로 트렌드 변화를 포착하는 것입니다. 가격이 SMMA를 통과할 때 상위 포지션을 열고, 가격이 SMMA를 통과할 때 상위 포지션을 열습니다. 출구 관리는 세 가지 메커니즘을 사용합니다: 1) ATR 기반의 동적 상쇄 손실, SMMA 상하 0.75배 ATR로 설정; 2) 고정 수익 목표, 상위 1150점, 상위 1500점; 3) 반향 교차 신호 평점.

전략적 이점

  1. 신호 시스템 안정성 신뢰성: SMMA는 간단한 이동 평균보다 부드럽고, 가짜 신호를 효과적으로 줄일 수 있다.
  2. 포괄적 인 위험 관리: ATR의 동적 정지 및 고정 수익 목표와 결합하여 시장의 변동성에 적응하고 합리적인 수익을 확보합니다.
  3. 양방향 거래: 시장의 양방향 기회를 최대한 활용하여 자금의 효율성을 높여라
  4. 확장성: 명확한 전략 프레임 워크와 다양한 시장 및 시간대에 적용할 수 있는 접근성
  5. 운영 규칙은 명확합니다. 출전 조건은 객관적이며, 주관적인 판단으로 인한 방해를 줄입니다.

전략적 위험

  1. 변동 시장 위험: 수평 변동 시장에서 자주 거래하면 손실이 발생할 수 있습니다.
  2. 슬라이드 위험: 고정 점수 수익 목표가 빠른 시장에서 슬라이드 위험에 직면할 수 있습니다.
  3. 트렌드 반전 위험: 강한 트렌드가 급격히 반전되면 ATR 상쇄가 충분히 빠르지 않을 수 있습니다.
  4. 매개 변수 의존성: SMMA 주기 및 ATR 배수의 선택이 전략 성능에 큰 영향을 미칩니다.
  5. 자금 관리 위험: 고정 비율은 변동성 변화에 대해 유연하지 않을 수 있습니다.

전략 최적화 방향

  1. 트렌드 강도 필터링 도입: ADX와 같은 지표가 강한 트렌드를 필터링 할 수 있으며, 흔들리는 시장의 잘못된 신호를 줄일 수 있습니다.
  2. 동적 수익 목표: ATR을 사용하여 동적으로 수익 목표를 조정하여 시장 상황에 더 잘 적응하는 것을 고려하십시오.
  3. 포지션 관리 개선: 변동성 가중된 포지션 계산을 도입하여 자금 활용 효율성을 최적화
  4. 다중 시간 주기의 확인: 더 긴 주기의 트렌드 확인을 증가시키고 거래 품질을 향상시킵니다.
  5. 시장 환경 적응: 시장 유형 판단 논리를 추가하고 다른 시장 조건에 따라 전략 매개 변수를 조정합니다.

요약하다

이것은 SMMA를 통해 트렌드를 포착하고, ATR을 사용하여 위험을 통제하고, 고정된 수익 목표를 통해 수익을 관리하는 합리적으로 설계된 트렌드 추적 전략이다. 전략 논리는 명확하고, 구현은 간단하며, 동작성과 확장성이 좋다.

전략 소스 코드
/*backtest
start: 2024-02-20 00:00:00
end: 2025-02-17 08:00:00
period: 4h
basePeriod: 4h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("SMMA 17 Crossover Strategy (Long & Short, ATR SL & Fixed TP)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=200)

// 🚀 SMMA Calculation
smmaLength = 17
smma = 0.0
smma := na(smma[1]) ? ta.sma(close, smmaLength) : (smma[1] * (smmaLength - 1) + close) / smmaLength

// 📈 ATR Calculation (For Dynamic Stop-Loss)
atrLength = 14
atr = ta.rma(ta.tr(true), atrLength)

// 🔥 Long Entry Condition
longCondition = ta.crossover(close, smma)  // ✅ Price crosses above SMMA

// 🔄 Long Exit Condition
longExit = ta.crossunder(close, smma)  // ✅ Price crosses below SMMA

// 📉 ATR-Based Stop-Loss (Dynamic) for Long
longStopLoss = smma - (atr * 0.75)  // ✅ Stop Loss below SMMA

// 🏆 Fixed Take Profit for Long (1150 Points)
var float longEntryPrice = na
var float longTakeProfit = na
if longCondition
    longEntryPrice := close
    longTakeProfit := longEntryPrice + 1150  // ✅ TP 1150 points above entry

// 🔥 Short Entry Condition
shortCondition = ta.crossunder(close, smma)  // ✅ Price crosses BELOW SMMA (Short trade)

// 🔄 Short Exit Condition
shortExit = ta.crossover(close, smma)  // ✅ Price crosses ABOVE SMMA (Close Short trade)

// 📉 ATR-Based Stop-Loss (Dynamic) for Short
shortStopLoss = smma + (atr * 0.75)  // ✅ Stop Loss above SMMA

// 🏆 Fixed Take Profit for Short (1500 Points) - Updated from 2000
var float shortEntryPrice = na
var float shortTakeProfit = na
if shortCondition
    shortEntryPrice := close
    shortTakeProfit := shortEntryPrice - 1500  // ✅ TP 1500 points below entry (Updated)

// 📊 Plot SMMA (For Visualization)
plot(smma, title="SMMA (17)", color=color.blue)

// 🚀 Long Entry (Allow Multiple)
if longCondition
    strategy.entry("Long", strategy.long)

// 🛑 Long Exit Conditions (Whichever Comes First)
strategy.exit("Long TP/SL", from_entry="Long", stop=longStopLoss, limit=longTakeProfit)
if longExit
    strategy.close("Long")

// 🚀 Short Entry (Allow Multiple)
if shortCondition
    strategy.entry("Short", strategy.short)

// 🛑 Short Exit Conditions (Whichever Comes First)
strategy.exit("Short TP/SL", from_entry="Short", stop=shortStopLoss, limit=shortTakeProfit)
if shortExit
    strategy.close("Short")