다중 이동 평균 추세 추적 및 ATR 위험 관리 양적 거래 전략

ATR SMA MMA Trailing Stop
생성 날짜: 2025-03-25 14:46:55 마지막으로 수정됨: 2025-03-25 14:46:55
복사: 1 클릭수: 297
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

다중 이동 평균 추세 추적 및 ATR 위험 관리 양적 거래 전략 다중 이동 평균 추세 추적 및 ATR 위험 관리 양적 거래 전략

전략 개요

이 전략은 이동 평균 (MMA) 교차 신호에 기반한 트렌드 추적 시스템으로, 자율적 위험 관리 메커니즘과 결합된다. 이 전략은 두 개의 다른 주기 (기본 20과 50) 의 간단한 이동 평균 (SMA) 을 사용하여 시장의 트렌드 방향을 결정하고, 평균 실제 파도 (ATR) 를 사용하여 동적으로 중지 손실 위치를 설정한다. 또한, 전략은 자본 관리 원칙을 적용하여, 사전 설정된 위험 퍼센트에 따라 자동으로 포지션 크기를 계산하고, 위험 수익률에 기반한 중지 레벨과 중지 손실 추적 메커니즘을 설정하여, 강력한 트렌드를 포착하고, 트렌드가 역전될 때 이익을 보호한다.

전략 원칙

이 전략의 핵심 논리는 다음과 같은 몇 가지 핵심 구성 요소에 기반합니다.

  1. 트렌드 식별 메커니즘: 전략은 빠른 이동 평균 ((20주기) 와 느린 이동 평균 ((50주기) 의 상대적 위치를 사용하여 시장의 흐름을 결정한다. 빠른 선이 느린 선 위에있을 때, 상승 추세로 인식하여 여러 신호를 유발합니다. 빠른 선이 느린 선 아래에있을 때, 하향 추세로 인식하여 공백 신호를 유발합니다.

  2. 동적 위험 관리: 전략은 14주기의 ATR ((평균 실제 파도) 을 사용자 정의의 곱하기 ((비용 2.0)) 로 세팅 스톱 거리. 이 방법은 스톱 포인트를 시장의 변동성에 따라 자동으로 조정하여 변동성이 큰 시장 환경에서 더 넓은 스톱 스톱을 설정하고, 변동성이 적은 시장에서 더 긴밀한 스톱 스톱을 설정할 수 있습니다.

  3. 리스크 기반의 포지션 관리: 전략은 사용자 정의의 위험 퍼센트 (기록 계좌 자금의 기본 1%) 에 따라 각 거래의 포지션 크기를 계산한다. 견딜 수 있는 자금 위험을 스톱포트 거리에 나누어, 전략은 스톱포트가 유발되더라도 손실이 미리 설정된 위험 수준을 초과하지 않도록 보장한다.

  4. 위험과 수익의 최적화: 전략은 기본으로 설정된 리스크-비용 비율을 사용한다. (비용값은 2.0) 자동으로 스톱 레벨을 계산한다. 이것은 각 거래의 잠재적인 수익이 잠재적인 위험의 최소 2배를 보장한다.

  5. 손해 방지 메커니즘 추적이 전략은 또한 트래킹 스톱 손실 기능을 구현하고 있으며, 가격이 유리한 방향으로 이동함에 따라 스톱 손실 지점은 그에 따라 조정됩니다. 이것은 이미 달성 된 이익을 잠금하고 추세가 계속 진행되도록하는 데 도움이됩니다.

전략적 이점

  1. 적응력ATR 기반의 상쇄를 사용함으로써, 전략은 고정된 점수 상쇄를 사용하는 대신 다양한 시장 조건의 변동성에 적응할 수 있으며, 이는 높은 변동성 환경에서 조기 상쇄될 가능성을 감소시킵니다.

  2. 위험 관리전략적 포지션 관리 시스템은 각 거래의 위험이 전체 계좌의 기본 비율을 초과하지 않도록 보장합니다. 이는 단일 거래로 인해 발생할 수 있는 과도한 손실을 효과적으로 방지합니다.

  3. 트렌드 포착 능력이동 평균 교차 시스템은 중·장기 경향을 식별하는데 좋은 성능을 보이며, 특히 변동성이 적은 시장 환경에서, 단기 시장 소음을 효과적으로 필터링할 수 있다.

  4. 이익 보호: 추적 스톱 메커니즘은 거래자가 수익을 창출하는 입장을 열어두고 서서히 스톱 레벨을 높일 수 있도록 해줍니다. 이것은 이미 달성 된 이익을 보호하고, 강세를 조기 종료하지 않습니다.

  5. 변수 조정 가능전략은 위험 비율, ATR 곱, 위험 수익률 및 이동 평균 주기 등 여러 가지 조정 가능한 매개 변수를 제공하여 거래자가 개인 위험 선호 및 시장 조건에 따라 최적화 할 수 있습니다.

전략적 위험

  1. 추세 반전 위험: 이동 평균 교차 신호는 일반적으로 시장 가격 변화에 뒤쳐져 있으며, 이는 시장이 반전되기 시작한 후에 거래로 이어질 수 있으며, 이로 인해 “거짓한 돌파”에 잡힐 위험이 증가합니다.

  2. 시장의 부진이 전략은 수평적인 변동이나 명백한 추세가 없는 시장 환경에서 반복적으로 잘못된 신호를 발생시킬 수 있으며, 이로 인해 연속적으로 소액의 손실 거래가 발생할 수 있습니다.

  3. 매개변수 민감도전략의 성능은 선택된 매개 변수에 크게 의존한다. 부적절한 매개 변수 설정 (예를 들어, 너무 작은 ATR 곱셈이나 너무 짧은 이동 평균 주기) 은 과도한 거래 신호와 불필요한 거래 비용을 초래할 수 있다.

  4. 슬라이드 포인트와 실행 위험: 높은 변동성이 있는 시장 또는 낮은 유동성이 있는 거래 품종에서, 정지 및 중지 주문의 실제 실행 가격은 설정 가격과 현저하게 차이가 있을 수 있다.

  5. 시스템적 시장 위험시장의 급격한 변동이나 극단적 인 사건 (예: 플래시처럼) 동안 ATR 값이 급격히 확장 될 수 있으며, 이는 스톱 로즈가 너무 넓게 설정되어 거래 당 잠재적인 손실을 증가시킬 수 있습니다.

전략 최적화 방향

  1. 최적화 신호 필터링: 추가적인 기술 지표가 도입될 수 있습니다 (대비적으로 약한 지수 RSI 또는 무작위 진동기 등) 잠재적인 가짜 신호를 필터링하기 위해, 특히 이동 평균이 가까워지면, 이는 진입 타이밍의 정확성을 향상시킬 수 있습니다.

  2. 시장 환경에 대한 적응력: 시장 환경 식별 메커니즘을 추가하여 전략이 서로 다른 시장 상태에 따라 변수를 자동으로 조정하거나 거래를 중지 할 수 있도록합니다. 예를 들어, 동요율 지표 또는 트렌드 강도 지표를 사용하여 현재 시장이 트렌드 추적 전략에 적합한지 여부를 결정할 수 있습니다.

  3. 손해 방지 전략의 최적화: 더 복잡한 손실 메커니즘을 구현할 수 있습니다. 예를 들어, 분기 중지 또는 지지/저항 수준에 기반한 중지, 이것은 간단한 ATR 배수 중지보다 더 효과적일 수 있습니다.

  4. 필터링 시간을 추가합니다.: 중요한 경제 자료가 발표되거나 시장이 열리거나 닫힐 때처럼 특정 변동성이 높은 시간에 거래를 중지하면 일반적으로 변동성과 유동성이 문제가있는 기간 동안 거래를 피할 수 있습니다.

  5. 포지션 관리 개선: 케일리 공식 변수 또는 현재 수익률에 기반한 동적 포지션 조정과 같은 더 고급 포지션 관리 알고리즘을 구현하여 자금 활용도를 최적화하고 위험을 더욱 제어 할 수 있습니다.

요약하다

다중평균 트렌드 추적과 ATR 위험 관리 수량 거래 전략은 트렌드 식별, 동적 위험 관리 및 자금 관리 원칙을 결합한 포괄적 인 거래 시스템입니다. 이 전략은 이동 평균을 통해 시장 추세를 교차하여 이동 평균을 사용하여 역동적으로 스톱 손실 수준을 설정하고, 기본 설정 된 위험 비율과 위험 수익률을 통해 각 거래의 자본 위험과 잠재적 수익을 제어합니다.

이 전략은 명확한 추세 시장에서 잘 작동하지만, 수평 변동 시장에서 연속적으로 작은 손실의 위험이 발생할 수 있습니다. 미래 최적화는 신호 필터링을 개선하고, 시장 환경에 대한 적응력을 강화하고, 손실을 막는 전략을 최적화하고, 포지션 관리 시스템을 개선하는 데 집중 할 수 있습니다. 이러한 최적화를 통해, 이 전략은 다양한 시장 조건에서 더 안정적인 성능을 제공 할 수 있으며, 효과적인 추세 포착과 엄격한 위험 관리에 대한 핵심 장점을 유지합니다.

전략 소스 코드
/*backtest
start: 2025-01-01 00:00:00
end: 2025-03-24 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("Khaos Trading Bot", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=1)

// Input parameters
riskPercentage = input.float(1.0, title="Risk Percentage per Trade", minval=0.1, maxval=100)
ATRMultiplier = input.float(2.0, title="ATR Multiplier for Stop-Loss")
RiskRewardRatio = input.float(2.0, title="Risk-Reward Ratio")
FastMMA = input.int(20, title="Fast Moving Average (MMA)")
SlowMMA = input.int(50, title="Slow Moving Average (MMA)")
TrailingStopPips = input.int(50, title="Trailing Stop (in pips)")

// Calculate ATR (Average True Range) for stop-loss calculation
atrValue = ta.atr(14)

// Moving Averages
fastMA = ta.sma(close, FastMMA)
slowMA = ta.sma(close, SlowMMA)

// Determine trend based on moving averages
longCondition = fastMA > slowMA
shortCondition = fastMA < slowMA

// Calculate Stop-Loss and Take-Profit
stopLoss = atrValue * ATRMultiplier
takeProfit = stopLoss * RiskRewardRatio

// Risk Management: Position sizing based on percentage risk per trade
capitalRisk = strategy.equity * (riskPercentage / 100)
lotSize = capitalRisk / stopLoss

// Entry Rules
if longCondition
    strategy.entry("Buy", strategy.long)

if shortCondition
    strategy.entry("Sell", strategy.short)

// Exit Rules with Take-Profit and Stop-Loss
strategy.exit("Exit Buy", from_entry="Buy", stop=close - stopLoss, limit=close + takeProfit)
strategy.exit("Exit Sell", from_entry="Sell", stop=close + stopLoss, limit=close - takeProfit)

// Trailing stop
trailStop = stopLoss * 10 * syminfo.mintick // Adjusting for the trailing stop
strategy.exit("Exit Buy Trail", from_entry="Buy", trail_offset=trailStop, trail_price=close)
strategy.exit("Exit Sell Trail", from_entry="Sell", trail_offset=trailStop, trail_price=close)

// Plot Moving Averages for visualization
plot(fastMA, color=color.blue, title="Fast MMA")
plot(slowMA, color=color.red, title="Slow MMA")