리소스 로딩... 로딩...

포괄적인 출구 조건으로 강화된 EMA/WMA 크로스오버 전략

저자:차오장, 날짜: 2024-07-31 14:47:01
태그:EMAWMAMACDSMAVWAP

img

전반적인 설명

이 전략은 이동 평균 크로스오버와 MACD 지표에 기반한 양적 거래 시스템으로, 입출 시기를 최적화하기 위해 여러 기술적 지표를 결합합니다. 전략은 주로 EMA9와 WMA30의 크로스오버를 입출 신호로 사용하고, MACD 지표에서 확인됩니다. 출출 조건은 가격과 이동 평균 사이의 관계를 고려하여 더 복잡하며 MACD 지표의 변화도 고려합니다. 또한 전략은 200 일간 단순 이동 평균 (SMA), 21 일간 기하급수적 이동 평균 (EMA), 볼륨 가중 평균 가격 (VWAP) 과 같은 보조 지표를 통합하여 보다 포괄적인 시장 관점을 제공합니다.

전략 원칙

  1. 입국 조건:

    • EMA9는 WMA30을 넘습니다.
    • MACD 라인은 신호 라인의 위에 있습니다.
  2. 출입 조건 (다음 중 어느 하나):

    • EMA9 이하의 두 차례 연속 종료 가격과 WMA30 이하의 적어도 한 번의 종료 가격
    • MACD 라인은 신호 라인 아래를 넘는다.
  3. 보조 지표:

    • 200일 SMA: 장기 트렌드를 결정하는 데 사용됩니다.
    • 21일 EMA: 중장기 트렌드 참조를 제공합니다.
    • VWAP: 하루 거래의 평균 가격 수준을 반영합니다.

전략의 핵심 아이디어는 짧은 기간 (EMA9) 및 중기 (WMA30) 이동 평균의 교차를 사용하여 잠재적 인 상승 추세를 포착하는 데 있으며, MACD 지표를 사용하여 잘못된 신호를 필터링하는 것입니다. 출구 조건은 손실을 줄이거나 적시에 이익을 잠금하도록 설계되어 있으며, 장기간 보유 기간으로 인한 과도한 인하를 피합니다.

전략적 장점

  1. 다중 지표 종합 분석: 이동 평균, MACD 및 VWAP를 포함한 다양한 기술적 지표를 결합하여 보다 포괄적인 시장 분석 관점을 제공하며 거래 결정의 정확성을 향상시키는 데 도움이됩니다.

  2. 유연한 진입 메커니즘: EMA와 WMA의 크로스오버를 MACD 확인과 결합함으로써 전략은 트렌드의 초기 단계를 파악하고 일부 잘못된 신호를 효과적으로 필터링할 수 있습니다.

  3. 엄격한 리스크 제어: 단기 이동 평균 아래의 연속적인 파업과 MACD 역전 신호를 포함하여 여러 가지 출구 조건을 채택하여 적시에 손실을 줄이고 위험을 제어하는 데 도움이됩니다.

  4. 다른 기간을 고려: 200일 SMA와 21일 EMA를 도입하여 전략이 다른 시간 프레임에 걸쳐 분석하여 적응력을 향상시킵니다.

  5. 부피 기반 가격 참조: VWAP 지표를 통해 부피 요인이 고려되며 가격 동향에 대한 더 대표적인 기준을 제공합니다.

전략 위험

  1. 빈번한 거래 위험: 이동 평균 크로스오버 전략은 빈번한 거래로 인해 거래 비용을 증가시키고 전체 수익에 영향을 줄 수 있습니다.

  2. 지연 위험: 이동 평균은 본질적으로 지연 지표이며 매우 변동적인 시장에서 시간적 전환점을 포착하지 않을 수 있습니다.

  3. 허위 파업 위험: 측면 konsolidiation 단계 동안, 연속 손실로 이어지는 빈번한 허위 파업 신호가 발생할 수 있습니다.

  4. 트렌드 의존성: 이 전략은 명확한 트렌드 시장에서 잘 수행되지만 범위 제한 시장에서는 덜 효과적일 수 있습니다.

  5. 매개 변수 민감성: 전략의 효과는 매개 변수 설정 (동도 평균 기간, MACD 매개 변수 등) 에 매우 민감할 수 있으며 빈번한 조정이 필요합니다.

전략 최적화 방향

  1. 변동성 지표 도입: 시장 변동성에 기초한 스톱 로스 포지션을 조정하기 위해 평균 진정한 범위 (ATR) 지표를 추가하는 것을 고려하여 리스크 관리의 유연성을 향상시킵니다.

  2. 출구 메커니즘을 최적화: 수익을 더 잘 확보하기 위해 후속 중지 또는 변동성 기반 동적 중지 손실을 추가하는 것을 고려하십시오.

  3. 부피 필터를 추가합니다. 거짓 파업의 위험을 줄이기 위해 입력 신호를 확인 할 때 부피 분석을 포함합니다.

  4. 시장 상태 분류: 다른 시장 조건 (트렌드, 범위 제한) 에서 다른 거래 매개 변수 또는 전략을 사용하기 위해 시장 상태 분류 모델을 개발하십시오.

  5. 멀티 타임프레임 분석: 여러 시간 프레임에 전략을 확장하여 다른 기간에 신호를 확인함으로써 입력 정확도를 향상시킵니다.

  6. 기계 학습 최적화: 기계 학습 알고리즘을 사용하여 전략 매개 변수를 동적으로 최적화하여 시장 변화에 대한 전략의 적응력을 향상시킵니다.

결론

포괄적인 출구 조건과 함께 향상된 EMA/WMA 크로스오버 전략은 이동 평균 크로스오버와 MACD 지표를 통해 여러 기술적 지표를 결합하여 여러 가지 조건을 사용하여 리스크 통제를 통해 시장 추세를 파악하는 양적 거래 시스템입니다. 전략의 강점은 포괄적인 시장 분석 관점과 엄격한 리스크 관리 메커니즘에 있습니다. 그러나 지연 및 매개 변수 민감성과 같은 과제에도 직면합니다. 미래 최적화 방향은 변동성 지표, 출구 메커니즘 최적화 및 시장 상태 분류를 통합하는 것과 같은 전략의 적응력과 리스크 관리 기능을 향상시키는 데 초점을 맞출 수 있습니다. 지속적인 개선 및 최적화로이 전략은 견고하고 신뢰할 수있는 양적 거래 도구가 될 가능성이 있습니다.


/*backtest
start: 2023-07-25 00:00:00
end: 2024-07-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//X version 11
strategy("EMA9/WMA30 Crossover Strategy with Enhanced Exit Conditions", shorttitle="EMA9/WMA30 Enhanced Exit", overlay=true)

// Inputs
lengthEma = input.int(9, title="Length for EMA")
lengthWma = input.int(30, title="Length for WMA")
fastLength = input.int(12, title="Fast Length for MACD")
slowLength = input.int(26, title="Slow Length for MACD")
macdLength = input.int(9, title="Signal Smoothing for MACD")
pointsGainGoal = input.float(33.00, title="Points Gain Goal")
pointsLossGoal = input.float(-50.00, title="Points Loss Goal")

// Calculating EMA, WMA, and MACD
EMA9 = ta.ema(close, lengthEma)
WMA30 = ta.wma(close, lengthWma)
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, macdLength)

// Adding 200 SMA, 21 EMA, and VWAP
SMA200 = ta.sma(close, 200)
EMA21 = ta.ema(close, 21)
VWAPValue = ta.vwap(close)

// Buy Signal based on EMA/WMA Crossover and MACD confirmation
crossover = ta.crossover(EMA9, WMA30)
buySignal = crossover and macdLine > signalLine

// Entry
var float entryPrice = na
if (buySignal)
    strategy.entry("Buy", strategy.long)
    entryPrice := close

// Counters for consecutive closes below EMA9 and WMA30
var int belowEMA9Count = 0
var int belowWMA30Count = 0
belowEMA9Count := close < EMA9 ? belowEMA9Count + 1 : 0
belowWMA30Count := close < WMA30 ? belowWMA30Count + 1 : 0

// Exit Conditions
MACDBearishCross = ta.crossunder(macdLine, signalLine)
exitCondition1 = belowEMA9Count >= 2 and belowWMA30Count >= 1
exitCondition2 = MACDBearishCross

// Exit
if (strategy.position_size > 0)
    if (exitCondition1 or exitCondition2)
        strategy.close("Buy")
        entryPrice := na
        belowEMA9Count := 0
        belowWMA30Count := 0

// Visualization
plot(EMA9, title="EMA 9", color=color.blue)
plot(WMA30, title="WMA 30", color=color.red)
plot(SMA200, title="SMA 200", color=color.orange)
plot(EMA21, title="EMA 21", color=color.purple)
plot(VWAPValue, title="VWAP", color=color.green)

관련

더 많은