다중 지표 추세 식별 및 모멘텀 검증 거래 전략

ICHIMOKU ADX VWAP MA RSI ATR
생성 날짜: 2025-02-20 10:48:51 마지막으로 수정됨: 2025-02-20 10:48:51
복사: 5 클릭수: 352
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

다중 지표 추세 식별 및 모멘텀 검증 거래 전략 다중 지표 추세 식별 및 모멘텀 검증 거래 전략

개요

이 전략은 일련의 기술적 지표들을 결합한 복잡한 거래 시스템으로, 시장 흐름을 식별하고, 동력의 강도를 검증하고 가격 위치를 확인하기 위해 시장 클라우드 (Ichimoku Cloud), 평균 트렌드 지수 (ADX) 및 거래량 중화 평균 가격 (VWAP) 을 이용한다. 이 전략은 다차원 분석을 통해 거래의 정확성과 신뢰성을 높이고, 특히 중장기 트렌드 거래에 적합하다.

전략 원칙

이 전략은 3단계 인증 메커니즘을 사용합니다.

  1. 시장 클라우드 시스템을 사용하여 (변환 라인, 기준 라인, 선행 A, 선행 B) 시장 추세 방향을 결정하고, 가격과 클라우드 층의 위치 관계를 통해 다공전 상태를 판단한다.
  2. ADX 지표 ((설정 14주기) 를 사용하여 트렌드 강도를 평가하며, ADX 값이 25을 초과하면 트렌드가 충분히 발전했다는 것을 나타냅니다.
  3. 가격 위치의 합리성을 확인하기 위해 VWAP를 역동적인 지지/저항 지점으로 사용한다.

거래 신호는 다음과 같은 조건으로 생성됩니다. 구매 신호: 가격은 선행 A와 B의 위에 + ADX>25 + 가격은 VWAP의 위에 판매 신호: 가격이 선행 A와 B 아래 + ADX>25 + 가격이 VWAP 아래

전략적 이점

  1. 다차원 검증 메커니즘은 거래의 신뢰성을 크게 높여 단일 지표로 인해 발생할 수 있는 잘못된 신호를 방지합니다.
  2. 트렌드 추적과 동력 분석을 결합하여 큰 트렌드를 파악하고 적절한 시점에 거래를 할 수 있습니다.
  3. VWAP의 검증은 가격의 합리성을 판단하고 거래의 성공률을 높여줍니다.
  4. 전략적 설계는 좋은 보호 장치가 있어 흔들리는 시장의 간섭을 효과적으로 회피할 수 있다.

전략적 위험

  1. 불안정한 시장에서 거래 신호가 자주 발생하여 거래 비용이 증가할 수 있습니다. 해결책: 최소 보유 시간 제한을 늘리거나, 변동 지표에 필터링을 추가할 수 있습니다.

  2. 시장이 급격히 변할 때 큰 반전이 일어날 수 있다. 해결 방법: 적절한 스톱 포지션을 설정하고 ATR 지표를 사용하여 스톱을 동적으로 조정하는 것을 고려할 수 있습니다.

  3. 다중 조건 설정은 잠재적인 거래 기회를 놓치게 할 수 있습니다. 해결책: 다른 시장 조건에 따라 변수를 동적으로 조정하거나 다른 변수 조합을 설정할 수 있습니다.

전략 최적화 방향

  1. 매개 변수 최적화: 역사 데이터를 통해 역추적하여 다양한 시장 환경에 따라 각 지표의 매개 변수 설정을 최적화 할 수 있습니다.
  2. 시장 환경 식별을 추가: 변동률 지표 (ATR와 같은) 를 추가하여 다양한 변동 환경의 다른 파라미터 조합을 사용합니다.
  3. 리스크 관리를 개선: 동적 스톱 메커니즘을 도입하여 시장의 변동에 따라 자동으로 스톱 거리를 조정한다.
  4. 포지션 관리를 최적화: 포지션 구축과 포지션 평정 메커니즘을 추가하여 자금 활용 효율성을 높인다.

요약하다

이 전략은 여러 정통하고 신뢰할 수 있는 기술 지표를 결합하여 완전한 거래 시스템을 구축한다. 시스템은 트렌드 식별, 동력 확인 및 가격 검증과 같은 핵심 기능을 포함할 뿐만 아니라 명확한 거래 규칙과 위험 제어 장치를 제공합니다. 약간의 최적화 공간이 있지만, 전체적으로 논리적으로 엄격하고 실용적인 거래 전략이다.

전략 소스 코드
/*backtest
start: 2025-02-12 00:00:00
end: 2025-02-15 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"TRUMP_USDT"}]
*/

//@version=5
strategy("Ichimoku + ADX + VWAP Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// --- Ichimoku Cloud Parameters ---
conversionPeriods = 9
basePeriods = 26
laggingSpan2Periods = 52
displacement = 26

// --- Ichimoku Cloud Calculation ---
conversionLine = (ta.highest(high, conversionPeriods) + ta.lowest(low, conversionPeriods)) / 2
baseLine = (ta.highest(high, basePeriods) + ta.lowest(low, basePeriods)) / 2
leadingSpanA = (conversionLine + baseLine) / 2
leadingSpanB = (ta.highest(high, laggingSpan2Periods) + ta.lowest(low, laggingSpan2Periods)) / 2

// Plot Ichimoku Cloud
plot(conversionLine, color=color.blue, title="Conversion Line")
plot(baseLine, color=color.red, title="Base Line")
plot(leadingSpanA, color=color.green, title="Leading Span A", offset=displacement)
plot(leadingSpanB, color=color.orange, title="Leading Span B", offset=displacement)
fill(plot(leadingSpanA, offset=displacement), plot(leadingSpanB, offset=displacement),
     color=leadingSpanA > leadingSpanB ? color.new(color.green, 90) : color.new(color.red, 90),
     title="Ichimoku Cloud")

// --- ADX Calculation ---
adx_length = 14
upMove = high - high[1]
downMove = low[1] - low
plusDM = upMove > downMove and upMove > 0 ? upMove : 0
minusDM = downMove > upMove and downMove > 0 ? downMove : 0
tr = ta.tr(true)
smoothedPlusDM = ta.rma(plusDM, adx_length)
smoothedMinusDM = ta.rma(minusDM, adx_length)
smoothedTR = ta.rma(tr, adx_length)
plusDI = (smoothedPlusDM / smoothedTR) * 100
minusDI = (smoothedMinusDM / smoothedTR) * 100
dx = math.abs(plusDI - minusDI) / (plusDI + minusDI) * 100
adx = ta.rma(dx, adx_length)

// Plot ADX
adx_threshold = 25
hline(adx_threshold, "ADX Threshold", color=color.gray)
plot(adx, color=color.purple, title="ADX")

// --- VWAP Calculation ---
vwap_val = ta.vwap(close)
plot(vwap_val, color=color.blue, title="VWAP", linewidth=2)

// --- Buy and Sell Conditions ---
// Buy Condition:
// - Cena je nad oboma Leading Span A a B
// - ADX je nad prahovou hodnotou
// - Cena je nad VWAP
buyCondition = close > leadingSpanA and close > leadingSpanB and adx > adx_threshold and close > vwap_val

// Sell Condition:
// - Cena je pod oboma Leading Span A a B
// - ADX je nad prahovou hodnotou
// - Cena je pod VWAP
sellCondition = close < leadingSpanA and close < leadingSpanB and adx > adx_threshold and close < vwap_val

// Plot Buy/Sell Signals
plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// --- Execute Trades ---
if (buyCondition)
    strategy.entry("Long", strategy.long)

if (sellCondition)
    strategy.close("Long")