이중 EMA 골든 크로스 브레이크업 전략

저자:차오장, 날짜: 2024-01-26 15:13:59
태그:

img

전반적인 설명

이중 EMA 황금 교차 브레이크 아웃 전략은 다른 기간을 가진 두 개의 기하급수적인 이동 평균 (EMA) 을 기반으로하는 트렌드 추적 및 브레이크 아웃 거래 전략이다. 이 전략은 두 EMA 사이의 황금 교차가 발생하면 구매 신호를 생성하고 죽음의 교차가 발생하면 판매 신호를 생성하여 가격의 트렌드 변화를 포착합니다. 이 전략은 또한 EMA의 가격 브레이크 아웃 조건을 결합하여 잘못된 신호를 필터링합니다.

전략 논리

이중 EMA 황금 횡단 브레이크 전략은 주로 다음과 같은 논리에 기반합니다.

  1. 짧은 기간 EMA (26일 라인) 을 사용하여 단기 트렌드를 파악하고 더 긴 기간 EMA (200일 라인) 을 사용하여 장기 트렌드 방향을 결정합니다.

  2. 짧은 기간 EMA가 더 긴 기간 EMA를 넘을 때, 이것은 골든 크로스로 불리며, 추세 변화로 추세 상승을 나타내고 구매 신호가 생성됩니다.

  3. 짧은 기간 EMA가 더 긴 기간 EMA 아래로 넘어가면, 이것은 데스 크로스이라고 불리며, 상승 추세에서 하락 추세로 트렌드가 변하는 것을 나타내고 판매 신호가 생성됩니다.

  4. 크로스 신호가 발생하면 가격이 EMA를 통과하여 잘못된 신호를 필터링하고 신뢰할 수있는 거래 신호를 보장해야합니다.

  5. 스톱 로스를 적용하고 이윤을 취하는 기술을 적용하여 거래 위험을 제어하고 이윤을 확보합니다.

이점 분석

이중 EMA 황금 횡단 브레이크 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 이중 EMA를 사용하여 가격 추세와 크로스오버 신호를 결정하면 시장 움직임을 효과적으로 추적 할 수 있습니다.

  2. 가격 브레이크오버 필터 신호를 결합하면 잘못된 크로스오버 신호에 의해 오해를 피할 수 있습니다.

  3. 단순하고 명확한 거래 논리를 채택하고 이해하기 쉽고 실행하기 쉽습니다.

  4. 다양한 제품과 시간 프레임에 적용되며 유연하고 다재다능합니다.

  5. 구성 가능한 EMA 매개 변수와 스톱 로스/익스피스 조건으로 인해 매우 적응력이 있습니다.

위험 분석

이중 EMA 황금 횡단 브레이크 전략은 또한 다음과 같은 위험을 가지고 있습니다.

  1. 가격 변동으로 인해 과도한 거래 신호가 발생하면 빈번한 교차가 발생할 수 있습니다. EMA 매개 변수를 적절히 조정하면 교차 빈도를 줄일 수 있습니다.

  2. 이중 EMA는 때때로 성과가 뒤떨어지고 가격 변화에 시간적으로 반응할 수 없습니다. 확인을 위해 다른 지표가 결합 될 수 있습니다.

  3. 너무 작은 스톱 로스 포인트는 가벼운 가격 변동에 의해 쉽게 유발될 수 있으며, 너무 큰 스톱 로스 포인트는 수익을 놓칠 수 있습니다. 스톱 로스 및 스톱 로스 포지션은 시장 조건에 따라 조정해야합니다.

  4. 주요 트렌드 판단은 트렌드에 반대되는 거래를 피하기 위해 거래 신호 전에 이루어져야 합니다.

최적화 방향

이중 EMA 황금 횡단 브레이크 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.

  1. 기계 학습 알고리즘을 적용하여 EMA 매개 변수를 동적으로 최적화하여 가격 변동에 더 잘 적응 할 수 있습니다.

  2. 부피, 볼링거 밴드 등과 같은 다른 확인 신호를 추가하여 신호 품질을 향상시킵니다.

  3. 가격 경로에 대한 심층 학습 예측을 포함하여 손해를 멈추고 최적의 수준에 더 가까운 수익을 얻습니다.

  4. 신호 정밀도를 높이기 위해 고주파 데이터에 대한 전략을 최적화합니다.

  5. 과도한 중지를 방지하기 위해 스톱 손실에 대한 적응 조정 메커니즘을 추가합니다.

결론

요약하자면, 이중 EMA 황금 교차 브레이크 아웃 전략은 가격 추세와 전환점을 결정하기 위해 EMA 교차 신호를 활용하고 잘못된 신호를 피하기 위해 가격 브레이크 아웃 필터를 통합합니다. 이는 신뢰할 수 있고 안정적이며 거래 전략을 따라 구현하기 쉬운 추세입니다. 매개 변수 최적화, 신호 필터링 및 적응 조정으로 추가 개선이 가능합니다. 거래 논리는 간단하고 직관적이며 모든 유형의 투자자에게 적합하며 따라서 기본적인 알고리즘 거래 전략 중 하나입니다.


/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA Buy/Sell Signal", shorttitle="EMABuySell", overlay=true)

// === INPUTS ===
src = input(close)
ema1Length = input(26, title='EMA-1')
ema2Length = input(200, title='EMA-2')

EMASig = input(true, title="Show EMA ?")
takeProfitPercent = input(2.0, title="Take Profit (%)") / 100
stopLossPercent = input(1, title="Stop Loss (%)") / 100

pema1 = ta.ema(src, ema1Length)
pema2 = ta.ema(src, ema2Length)

// Plotting EMAs
plot(EMASig ? pema1 : na, title='EMA-1', color=color.new(color.blue, 0), linewidth=2)
plot(EMASig ? pema2 : na, title='EMA-2', color=color.new(color.orange, 0), linewidth=2)

// EMA Crossover Buy Signal
EMACrossoverLong = ta.crossover(pema1, pema2)

// EMA Crossunder Short Signal
EMACrossoverShort = ta.crossunder(pema1, pema2)

// Crossover above EMA-200 Long Signal
CrossoverAboveEMA200 = ta.crossover(close, pema2)

// Trading logic for Long
if ((EMACrossoverLong and close > pema1 and close > pema2) or CrossoverAboveEMA200)
    strategy.entry("Buy", strategy.long, qty=1)

// Take Profit logic for Long
longCondition = close >= strategy.position_avg_price * (1 + takeProfitPercent)
if (strategy.position_size > 0 and longCondition)
    strategy.close("Buy")

// Stop Loss logic for Long
stopLossConditionLong = ta.crossunder(pema1, pema2)
if (strategy.position_size > 0 and stopLossConditionLong)
    strategy.close("Buy")

// Trading logic for Short
if (EMACrossoverShort and close < pema1 and close < pema2)
    strategy.entry("Sell", strategy.short, qty=1)

// Take Profit logic for Short
shortCondition = close <= strategy.position_avg_price * (1 - takeProfitPercent)
if (strategy.position_size < 0 and shortCondition)
    strategy.close("Sell")

// Stop Loss logic for Short
stopLossConditionShort = ta.crossover(pema1, pema2)
if (strategy.position_size < 0 and stopLossConditionShort)
    strategy.close("Sell")

// Visual Signals
plotshape(series=EMACrossoverLong or CrossoverAboveEMA200, title="Buy Signal", color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=EMACrossoverShort, title="Sell Signal", color=color.red, style=shape.triangledown, size=size.small)


더 많은