엘리엇 파동과 톰 드마크 추세 추종 전략

EMA TD EW RSI
생성 날짜: 2024-07-31 11:38:39 마지막으로 수정됨: 2024-07-31 11:38:39
복사: 0 클릭수: 904
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

엘리엇 파동과 톰 드마크 추세 추종 전략

개요

이 전략은 엘리엇 웨이브 이론과 톰 드 마크 시퀀스 (Tom DeMark Sequential) 지표를 결합하여 시장의 추세를 포착하고 적절한 시기에 거래를 수행합니다. 이 전략은 지수 이동 평균 (EMA) 을 사용하여 파동을 식별하고 피포나치 리조트 수준을 사용하여 중요한 지지 및 저항 지점을 결정합니다. 동시에 TD 시퀀스 지표를 사용하여 거래 신호를 확인합니다. 특히 세 번의 연속 구매 또는 판매 신호가 발생했을 때.

전략 원칙

  1. 엘리엇의 파동 인식:

    • 21주기 EMA를 기준선으로 사용하여 파동을 식별한다.
    • 가격이 EMA를 통과하면 새로운 물결이 시작됩니다.
    • 5개의 주요 물결 지점이 기록되었다: Wave 1, Wave 2, Wave 3, Wave 4, and Wave 5。
  2. 피보나치의 반응:

    • 웨이브 2의 61.8% 회귀 레벨과 웨이브 4의 38.2% 회귀 레벨을 계산한다.
    • 이 수준은 잠재적인 지지와 저항의 위치를 결정하는 데 사용됩니다.
  3. TD Sequential 신호:

    • 9주기를 TD Sequential의 기본 설정으로 사용한다.
    • 판매 신호는 가격이 4주기 전의 종료 가격보다 9주기 연속으로 높을 때 형성된다.
    • 가격이 4주기 전의 종결 가격보다 9주기 연속으로 낮아지면 구매 신호가 형성된다.
  4. 거래 신호 생성:

    • TD Sequential가 연속으로 3번의 구매 신호를 주고, Wave 5가 형성되었을 때, 여러 신호를 하게 한다.
    • TD Sequential가 3번 연속으로 판매 신호를 주고, Wave 5가 형성되었을 때, 공백 신호를 니다.
  5. 손실과 이익:

    • 다중 거래의 중지 손실은 웨이브 1에 설정되어 있고, 수익 목표는 웨이브 3에 설정되어 있다.
    • 하위 거래의 중지 손실은 웨이브 4에 설정되어 있고, 수익 목표는 웨이브 2에 설정되어 있다.

전략적 이점

  1. 다중 지표 융합: 엘리엇 파동 이론과 TD Sequential 지표를 결합하여 신호의 신뢰도를 높였다.

  2. 트렌드 추적: 파동을 식별하고 EMA를 사용함으로써 전략은 시장 추세를 효과적으로 추적할 수 있다.

  3. 위험 관리: 중요한 파동 지점을 중지 및 수익 목표로 사용하여 명확한 위험 관리 프레임 워크를 제공합니다.

  4. 신호 확인: TD Sequential에게 같은 신호를 세 번 연속으로 제공하도록 요구하여 잘못된 신호의 영향을 줄인다.

  5. 적응성: 매개 변수 설정으로 전략은 다른 시장 환경과 거래 품종에 적응할 수 있다.

  6. 객관성: 명확한 기술 지표와 규칙에 기반하여 주관적인 판단으로 인한 편차를 줄인다.

전략적 위험

  1. 과도한 기술 지표 의존: 특정 시장 조건에서, 순수 기술 분석은 기본 요소를 무시 할 수 있습니다.

  2. 지연성: EMA와 TD Sequential은 지연된 지표이며, 추세가 역전될 때 느린 반응을 초래할 수 있다.

  3. 가짜 브레이크: 상반기 시장에서는 여러 개의 가짜 브레이크 신호가 발생하여 거래 비용을 증가시킬 수 있습니다.

  4. 매개 변수 감수성: 전략 성능은 EMA 길이와 TD Sequential 주기 선택에 매우 민감할 수 있다.

  5. 복잡성: 여러 지표가 결합되면 전략이 복잡해지면서 과도한 적합성의 위험이 증가합니다.

  6. 시장 조건 의존성: 강한 추세 시장에서 더 잘 작동할 수 있지만, 흔들리는 시장에서는 더 잘 작동하지 않을 수 있다.

전략 최적화 방향

  1. 동적 변수 조정:

    • 구현: 시장의 변동성에 따라 EMA 길이와 TD Sequential 주기를 자동으로 조정한다.
    • 이유는: 다양한 시장 조건에 대한 전략의 적응력을 높이기 위해서다.
  2. 통합 트래픽 분석:

    • 구현: 신호 생성 과정에서 거래량 지표를 고려한다.
    • 이유: 트렌드 확인의 신뢰성을 높이고, 가짜 돌파구를 줄이는 것.
  3. 변동율 필터를 도입합니다.

    • 실현: 낮은 변동성 기간 동안 거래를 줄이거나 중지하십시오.
    • 그 이유는: 간판 시장에서 거래하는 것을 피하고 비용을 절감하기 위해서다.
  4. 손해배상 전략을 최적화하세요.

    • 구현: ATR (Average True Rate) 또는 오동율 비율 상쇄와 같은 동적 상쇄를 사용한다.
    • 그 이유는 시장의 변동에 더 잘 적응하고 수익을 보호하는 것입니다.
  5. 시간 필터를 추가하세요:

    • 실현: 시장 시간적 요소를 고려하고, 높은 변동성이 있는 시기를 피한다.
    • 이유: 불리한 시간대 거래로 인한 위험을 줄입니다.
  6. 다중 시간 프레임 분석:

    • 실현: 거래에 들어가기 전에 더 높은 시간 프레임의 트렌드 방향을 확인한다.
    • 그 이유는 거래 신호의 질을 높이고 역전 거래를 줄이기 때문입니다.

요약하다

엘리엇 웨이브와 톰 드마크의 흐름 거래 전략에 기반한 종합적인 기술 분석 방법이며, 웨이브 이론, 트렌드 추적 및 동력 지표를 교묘하게 결합합니다. 이 전략은 EMA를 통해 웨이브를 식별하고, 피보나치 회귀를 사용하여 중요한 가격 수준을 결정하고, TD 서열을 사용하여 거래 신호를 확인합니다.

전략의 주요 장점은 다층적인 신호 확인 메커니즘과 명확한 위험 관리 프레임 워크에 있습니다. 그러나 기술 지표에 과도하게 의존하고 잠재적인 뒤처짐과 같은 도전에 직면하고 있습니다. 전략의 성능을 최적화하기 위해 동적 파라미터 조정, 트래픽 분석 통합, 변동율 필터 사용 등의 방법을 도입하는 것이 고려 될 수 있습니다.

전반적으로, 이 전략은 거래자에게 금융 시장을 분석하고 거래하는 구조화된 방법을 제공합니다. 그러나, 모든 거래 전략과 마찬가지로, 실제 응용에서 엄격한 피드백과 지속적인 최적화가 필요합니다. 거래자는 자신의 위험 수용 능력과 거래 목표에 따라 전략 매개 변수를 조정하고 항상 시장 변화에 대해 경계해야합니다.

전략 소스 코드
/*backtest
start: 2024-06-30 00:00:00
end: 2024-07-30 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Elliott Wave and Tom DeMark Strategy", overlay=true)

// Tom DeMark Sequential Settings
td_length = input(9, title="TD Sequential Length")

// Tom DeMark Sequential
var int tdUpCount = 0
var int tdDownCount = 0

if close > close[4]
    tdUpCount := na(tdUpCount) ? 1 : tdUpCount + 1
    tdDownCount := 0
else if close < close[4]
    tdDownCount := na(tdDownCount) ? 1 : tdDownCount + 1
    tdUpCount := 0
else
    tdUpCount := 0
    tdDownCount := 0

tdBuySetup = (tdDownCount == td_length)
tdSellSetup = (tdUpCount == td_length)

plotshape(series=tdBuySetup, title="TD Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=tdSellSetup, title="TD Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// Elliott Wave Settings
wave_length = input(21, title="EMA Length for Wave Identification")
ema = ta.ema(close, wave_length)
var int wave_trend = na

wave_trend := ta.crossover(close, ema) ? 1 : ta.crossunder(close, ema) ? -1 : nz(wave_trend[1])

var float wave1 = na
var float wave2 = na
var float wave3 = na
var float wave4 = na
var float wave5 = na

wave1 := ta.valuewhen(wave_trend == 1, close, 0)
wave2 := ta.valuewhen(wave_trend == -1, close, 0)
wave3 := ta.valuewhen(wave_trend == 1, close, 0)
wave4 := ta.valuewhen(wave_trend == -1, close, 0)
wave5 := ta.valuewhen(wave_trend == 1, close, 0)

fibonacciRetracement(level, waveStart, waveEnd) =>
    waveStart + (waveEnd - waveStart) * level

wave2Fib = fibonacciRetracement(0.618, wave1, wave2)
wave4Fib = fibonacciRetracement(0.382, wave3, wave4)

plot(wave1, title="Wave 1", color=color.blue, linewidth=2)
plot(wave2, title="Wave 2", color=color.blue, linewidth=2)
plot(wave3, title="Wave 3", color=color.blue, linewidth=2)
plot(wave4, title="Wave 4", color=color.blue, linewidth=2)
plot(wave5, title="Wave 5", color=color.blue, linewidth=2)

plot(wave2Fib, title="Wave 2 Fib", color=color.yellow, linewidth=2)
plot(wave4Fib, title="Wave 4 Fib", color=color.yellow, linewidth=2)

// Strategy Conditions
if (tdUpCount == td_length * 3 and not na(wave5))
    strategy.entry("Buy", strategy.long)

if (tdDownCount == td_length * 3 and not na(wave5))
    strategy.entry("Sell", strategy.short)

// Stop Loss and Take Profit
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", limit=wave3, stop=wave1)
strategy.exit("Take Profit/Stop Loss", from_entry="Sell", limit=wave2, stop=wave4)