KAMA와 MACD를 기반으로 한 적응형 트렌드 추적 양적 거래 전략

KAMA MACD ATR SL TP
생성 날짜: 2025-02-20 10:33:36 마지막으로 수정됨: 2025-02-20 15:01:37
복사: 1 클릭수: 521
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

KAMA와 MACD를 기반으로 한 적응형 트렌드 추적 양적 거래 전략 KAMA와 MACD를 기반으로 한 적응형 트렌드 추적 양적 거래 전략

개요

이 전략은 카우프만 자기 적응 이동 평균 ((KAMA) 과 MACD를 기반으로 한 트렌드 추적 시스템이다. 그것은 KAMA를 주요 트렌드 판단 지표로 사용하여 MACD를 동력 확인 지표로 결합하여 시장의 트렌드를 지능적으로 추적하고 거래 시기를 정확하게 파악합니다. 이 전략은 4 시간 시간 프레임에서 작동하며, 동적 스톱 손실과 수익 목표를 사용하여 위험을 관리합니다.

전략 원칙

전략의 핵심 논리는 다음과 같은 핵심 구성 요소를 기반으로 합니다.

  1. KAMA 계산: 50주기의 KAMA를 주요 트렌드 지표로 사용하여 효율성 비율을 동적으로 조정하여 이동 평균이 시장 조건에 더 잘 적응할 수 있도록 부드러운 계수를 조정합니다.
  2. MACD 확인: 느린 설정의 MACD를 사용하여 트렌드 확인 도구로 거래 방향이 전체 동력과 일치하는지 확인합니다.
  3. ATR 중지: 14주기 ATR의 3배를 동적 중지 및 수익 목표의 계산 기본으로 사용한다.
  4. 거래 규칙:
    • 더 많은 조건: 가격이 KAMA를 통과하고 MACD는 부진 상태입니다.
    • 평지 조건: 가격이 KAMA를 뚫고 MACD는 하락 상태입니다.
    • 위험 관리: ATR에 기반한 동적 중지 및 수익 목표 설정

전략적 이점

  1. 자기 적응력: KAMA는 시장의 효율성에 따라 자동으로 민감도를 조정할 수 있으며, 다양한 시장 환경에서 좋은 성능을 유지할 수 있다.
  2. 신호의 신뢰성: MACD 확인과 함께 가짜 침입의 위험을 크게 줄였습니다.
  3. 리스크 관리를 개선: 변동율에 기반한 동적 스톱로스 및 수익 목표가 적용되어 리스크 관리가 더 적응할 수 있습니다.
  4. 매개 변수 최적화 공간: 핵심 매개 변수는 시장 특성에 따라 조정할 수 있다.

전략적 위험

  1. 트렌드 리버스 위험: 시장의 급격한 변동으로 인해 더 많은 가짜 신호가 발생할 수 있습니다.
  2. 지연 위험: KAMA와 MACD 모두 지연성이 있어 최고의 입시 시점을 놓칠 수 있다.
  3. 매개 변수 감수성: 다른 시장 조건에 따라 매개 변수를 조정해야 전략의 효과를 유지할 수 있습니다.
  4. 거래 비용의 영향: 거래의 빈도는 높은 거래 비용으로 이어질 수 있습니다.

전략 최적화 방향

  1. 시장의 변동률 필터를 도입하여 높은 변동률 환경에서 전략 파라미터를 조정하거나 거래를 중지하십시오.
  2. 트렌드 판단의 정확성을 높이기 위한 트랜스 밸류에이션 분석 지표를 늘립니다.
  3. 4시간 시간 프레임에 더 적합하도록 MACD 변수 설정을 최적화한다.
  4. 시장의 변동성에 따라 ATR 곱수를 조정하는 적응형 스톱로스 배수를 구현한다.
  5. 시간 필터를 추가하여 유동성이 낮은 시점에 거래하는 것을 피하십시오.

요약하다

이것은 고전 기술 지표 KAMA와 MACD의 혁신성을 결합한 트렌드 추적 전략이다. 적응형 이동 평균과 동력 확인의 조합과 완벽한 위험 관리 시스템으로 이 전략은 강력한 실용성과 안정성을 가지고 있다. 약간의 후진성과 변수 민감성의 위험이 있지만, 제안된 최적화 방향을 통해 전략의 안정성과 수익성을 더욱 향상시킬 수 있다.

전략 소스 코드
/*backtest
start: 2024-02-20 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mckat

//@version=5
strategy("4-Hour KAMA Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// === Inputs ===
ama_length = input.int(50, title="KAMA Length for 4H")
fast_length = input.int(3, title="KAMA Fast Length")
slow_length = input.int(30, title="KAMA Slow Length")
atr_length = input.int(14, title="ATR Length")
atr_mult = input.float(3.0, title="ATR Multiplier for Stop-Loss & Take-Profit")
// === KAMA Calculation ===
var float kama = na
price_change = math.abs(close - close[ama_length])
volatility_sum = 0.0
for i = 0 to ama_length - 1
    volatility_sum := volatility_sum + math.abs(close[i] - close[i + 1])
efficiency_ratio = price_change / volatility_sum
smoothing_constant = math.pow(efficiency_ratio * (2 / (fast_length + 1) - 2 / (slow_length + 1)) + 2 / (slow_length + 1), 2)
kama := na(kama[1]) ? close : kama[1] + smoothing_constant * (close - kama[1])
// Plot KAMA
plot(kama, color=color.blue, title="KAMA (50)")
// === ATR for Stop-Loss and Take-Profit ===
atr = ta.atr(atr_length)
stop_loss = close - atr * atr_mult
take_profit = close + atr * atr_mult
// === MACD for Momentum Confirmation (Slow Settings for 4H) ===
[macd_line, signal_line, _] = ta.macd(close, 26, 52, 18)
macd_bullish = macd_line > signal_line
macd_bearish = macd_line < signal_line
// === Entry and Exit Conditions ===
buy_condition = ta.crossover(close, kama) and macd_bullish
sell_condition = ta.crossunder(close, kama) and macd_bearish
// === Execute Trades ===
if (buy_condition)
    strategy.entry("Buy", strategy.long)
if (sell_condition)
    strategy.close("Buy")
// === Dynamic Stop-Loss and Take-Profit ===
strategy.exit("Exit", "Buy", stop=stop_loss, limit=take_profit)
// === Plot Signals ===
plotshape(series=buy_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sell_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")