추세 추종과 모멘텀을 결합한 듀얼 지표 거래 전략

SMA ATR MACD NNFX
생성 날짜: 2024-09-26 16:14:22 마지막으로 수정됨: 2024-09-26 16:14:22
복사: 1 클릭수: 592
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

추세 추종과 모멘텀을 결합한 듀얼 지표 거래 전략

개요

이 전략은 트렌드 추적과 동력 분석의 두 가지 방법을 결합하여, 간단한 이동 평균 (SMA) 과 이동 평균의 수렴 분산 (MACD) 지표를 사용하여 잠재적인 거래 기회를 식별한다. 전략은 트렌디로 지표 (SMA 기반의 트렌드 지표) 를 통해 전체 시장의 흐름을 결정하며, MACD의 제로 라인 크로스 (zero line cross) 를 사용하여 단기 동력의 변화를 포착한다.

전략 원칙

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

  1. 트렌딜로 지표: 50주기의 간단한 이동 평균을 사용하여 중장기 트렌드 방향을 결정한다.
  2. MACD 0선 교차: 단기 동력의 변화를 포착하기 위해, 입문 신호로 사용한다.
  3. ATR 중지/이익 설정: 14주기의 ATR을 사용하여 위험 관리 매개 변수를 동적으로 조정한다.

구체적으로, MACD 라인이 0 라인을 아래에서 통과하면 () 상부로 이동하고, 종결 가격이 트렌디로 라인보다 높으면, 다중 신호가 발생한다. 반대로, MACD 라인이 0 라인을 위에서 통과하면 () 하부로 이동하고, 종결 가격이 트렌디로 라인보다 낮으면, 공백 신호가 발생한다. 출입 후, 전략은 ATR 기반의 손실 및 수익 수준을 사용하여 위험을 관리하고 수익을 잠금합니다.

전략적 이점

  1. 트렌드 확인: 트렌딜로와 MACD를 결합하여 전략은 전체적인 추세를 확인하면서 단기 동력의 변화를 포착하여 가짜 신호를 효과적으로 줄일 수 있습니다.
  2. 다이내믹 리스크 관리: ATR을 사용하여 스톱로스 및 리드 레벨을 설정하여 전략이 시장의 변동성에 따라 자동으로 조정할 수 있도록 하여 전략의 적응성을 향상시킵니다.
  3. 다주기 분석: 중장기 (Trendilo) 및 단기 (MACD) 지표가 결합되어 더 포괄적인 시장 관점을 제공합니다.
  4. 시각적 지원: 전략은 거래자가 시장 상황을 직관적으로 이해할 수 있도록 차트에 구매 및 판매 신호와 트렌드 라인을 표시합니다.

전략적 위험

  1. 트렌드 리버스 위험: 강한 트렌드 시장에서 잘하지만, 수평 또는 급격한 반전 시장에서 손실이 발생할 수 있습니다.
  2. 매개 변수 민감성: 전략 성능은 입력 매개 변수의 선택에 매우 민감할 수 있다 (트렌딜로 주기, ATR 곱하기 등).
  3. 과도한 거래: 격렬한 변동이 있는 시장에서는 거래의 비용을 증가시키는 거래 신호가 자주 발생할 수 있습니다.
  4. 뒤떨어짐: 이동 평균을 사용해서 트렌드 초기에 전략이 일부 기회를 놓칠 수 있다.

전략 최적화 방향

  1. 필터 도입: 낮은 품질의 거래 신호를 필터링하기 위해 추가 기술 지표 또는 시장 감정 지표를 추가 할 수 있습니다.
  2. 최적화 변수 선택: 트렌딜로 주기와 ATR 곱셈의 최적의 조합을 찾기 위해 역사 데이터를 재검토한다.
  3. 변동률 조정: 현재 시장 변동률에 따라 전략 매개 변수를 동적으로 조정하여 전략의 적응성을 향상시킵니다.
  4. 부분 포지션 관리를 구현: 신호 강도 또는 시장 조건에 따라 매 거래의 포지션 크기를 조정하는 것을 고려하십시오.
  5. 시간 필터링을 추가: 거래 시간 창 제한을 추가하여 변동성이 높거나 유동성이 낮은 시기를 피하십시오.

요약하다

이 전략은 트렌드 추적과 동적 분석을 교묘하게 결합하여 트렌디로와 MACD의 조화 작용을 통해 거래자에게 비교적 포괄적인 시장 분석 프레임워크를 제공합니다. 동적 위험 관리 방법은 전략의 적응성을 강화하여 다양한 시장 환경에서 안정성을 유지할 수 있습니다. 그러나 거래자는이 전략을 사용하는 데 신중해야합니다. 특히 파라미터 최적화 및 위험 제어와 관련하여. 지속적인 모니터링과 최적화를 통해 이 전략은 신뢰할 수있는 거래 도구가 될 가능성이 있으며 특히 트렌드 시장에서 기회를 잡기를 원하는 투자자에게 적합합니다.

전략 소스 코드
/*backtest
start: 2019-12-23 08:00:00
end: 2024-09-24 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("NNFX Trendilo + Zero MACD Strategy", overlay=true)

// --- Inputs ---
atrPeriod = input.int(14, title="ATR Period")
stopLossMultiplier = input.float(1.5, minval=0.0, maxval = 20.0, step = 0.1 ,title="Stop Loss Multiplier")
takeProfitMultiplier = input.float(2.0, minval=0.0 , maxval = 20.0, step = 0.1,title="Take Profit Multiplier")

// --- Trendilo ---
trendiloPeriod = input.int(50, title="Trendilo Period")
trendilo = ta.sma(close, trendiloPeriod)

// --- MACD ---
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
macdZeroCrossUp = ta.crossover(macdLine, 0)
macdZeroCrossDown = ta.crossunder(macdLine, 0)

// --- ATR for Stop Loss and Take Profit ---
atr = ta.atr(atrPeriod)
stopLoss = atr * stopLossMultiplier
takeProfit = atr * takeProfitMultiplier

// --- Trading Logic ---
longCondition = macdZeroCrossUp and close > trendilo
shortCondition = macdZeroCrossDown and close < trendilo

// --- Execute Long Trades ---
if (longCondition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Buy", limit=close + takeProfit, stop=close - stopLoss)

// --- Execute Short Trades ---
if (shortCondition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Take Profit/Stop Loss", "Sell", limit=close - takeProfit, stop=close + stopLoss)

// --- Plot Signals ---
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")

// --- Plot Trendilo ---
plot(trendilo, color=color.blue, linewidth=2)