다중 지수 이동 평균 거래 전략


생성 날짜: 2024-03-11 16:17:20 마지막으로 수정됨: 2024-03-11 16:17:20
복사: 0 클릭수: 304
1
집중하다
1166
수행원

다중 지수 이동 평균 거래 전략

개요 (Overview)

이 전략은 여러 지수 이동 평균 (Exponential Moving Average, EMA) 을 활용하여 잠재적인 시장 거래 입점과 출구점을 식별한다. 다른 주기의 EMA 움직임을 비교하여 현재의 시장 추세를 판단하고, 트렌드 형성 초기에는 거래에 개입하고, 트렌드 종료 초기에는 평점을 취한다.

전략 원칙 (Strategy Principle)

이 전략은 4개의 다른 주기적인 EMA를 핵심 지표로 사용한다. 즉, 초단기 EMA (설정 8기), 단기 EMA (설정 13기), 중기 EMA (설정 21기), 그리고 장기 EMA (설정 55기) 이다. 장기 EMA가 다른 3개의 EMA 아래에 있을 때, 현재 상승 경향의 초기 단계에 있다고 판단할 때, 전략이 오버 포지션을 열고, 장기 EMA가 다른 3개의 EMA 위에 있을 때, 현재 하향 경향의 초기 단계에 있다고 판단할 때, 전략은 모든 오버 포지션을 평행한다.

EMA는 간단한 이동 평균 ((SMA) 에 비해 최근 가격에 더 많은 중요성을 부여하고, 따라서 EMA의 움직임은 더 민감하고, 가격 변화에 더 빨리 반응할 수 있다. 다른 주기 EMA의 교차는 다른 시간 척도의 경향의 강점을 반영한다. 장기 EMA는 가장 안정적이고, 큰 시장 추세를 대표한다. 중장기 EMA는 상대적으로 민감하며, 시장의 단기 추세를 반영한다.

장점 분석 (Advantage Analysis)

  1. 적용 범위: 이 전략은 가격 자체의 EMA 지표에 기반하여, 대부분의 유동성이 좋으며, 다양한 선물, 외환, 주류 디지털 통화 등과 같은 비교적 부드러운 품종에 적용됩니다.

  2. 트렌드 추적: 서로 다른 주기적 EMA의 위치 관계를 비교하여 트렌드를 판단하고, 어느 정도 트렌드 형성 초기에 트렌드를 추적한다.

  3. 매개 변수 유연성: EMA의 주기 매개 변수는 품종 특성, Investment Horizon 등에 따라 유연하게 조정할 수 있으며, 어느 정도 적응성이 있다.

  4. 논리 명확성: 전략은 간단한 EMA 다공간 배열 조합을 기반으로 거래 신호를 생성하며 논리는 명확하고 이해하기 쉽고 구현됩니다.

리스크 분석

  1. EMA 지연: EMA는 본질적으로 트렌드 추적 지표이며, 약간의 지연성이 있으며, 흔들리는 시장에서 더 많은 거짓 신호가 발생할 수 있다.

  2. 변수 민감성: EMA 주기 변수의 선택은 전략 성능에 큰 영향을 미치고, 변수 최적화 후 샘플 외 데이터에서 좋은 성능을 유지할 수 없습니다.

  3. 필터링의 부족: 이 전략은 거래 신호에 대한 추가 필터링의 부족으로, 모든 신호가 생성된 후에 거래가 이루어지며, 몇몇 낮은 품질의 거래가 발생할 수 있다.

  4. 고정 포지션: 현재 전략은 포지션 개설마다 1 단위가 고정되어 있으며, 위험 기반의 동적 포지션 제어가 부족하며, 위험 관리 측면에서는 충분히 완성되지 않았다.

최적화 방향 (Optimization Direction)

  1. 트렌드 필터 도입: EMA 신호에 기초하여 ATR, ADX 등의 트렌드 강도 필터 지표를 추가하여 약한 트렌드 및 변동 시기의 신호를 필터링한다.

  2. 진동율 필터 도입: 트렌드 필터 기반에 진동율 필터, 예를 들어 브린 대역폭을 추가로 도입하여 높은 진동율으로 인해 발생할 수 있는 낮은 품질의 신호를 필터링 할 수 있습니다.

  3. 최적화 스톱: 현재 전략에는 명확한 스톱 로직이 없으며, 트렌드 및 변동율 필터를 도입한 후 ATR 또는 비율에 기반한 동적 스톱을 추가하여 단일 최대 손실을 제어 할 수 있습니다.

  4. 다이내믹 포지션: 품종 변동률, 계정 가치 비율 등에 기반하여 전략이 매번 포지션을 열 수 있는 수를 다이내믹하게 제어할 수 있으며, 위험을 줄임과 동시에 더 높은 절대 수익을 추구한다.

  5. 최적화 매개 변수: 다른 품종, 다른 주기, EMA의 최적의 매개 변수가 다를 수 있으며, 품종 특성에 따라 매개 변수를 개별적으로 최적화하여 전략의 적용성을 향상시킬 필요가 있다.

요약

이 전략은 4개의 다른 주기적 EMA의 다공간 배열 조합을 비교하여 트렌드 전환점을 식별하고, 트렌드 형성 초기에 포착하는 데에 있어 간단하고 명확하다. 그것의 장점은 적용 범위가 넓고, 논리가 명확하고, 매개 변수가 유연하며, 트렌드를 더 잘 추적할 수 있다는 데 있다. 그러나 또한 EMA 지표의 고유한 지연성, 매개 변수 민감성, 필터, 고정 포지션 등의 문제가 있다.

전략 소스 코드
/*backtest
start: 2023-03-05 00:00:00
end: 2024-03-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © n1ghthawk

//@version=5
strategy("donmo's 4ema", overlay=true, margin_long=100, margin_short=100)

float long = na
float short = na

lowestEMAPeriodInput = input.int(8, "Lowest EMA")
lowEMAPeriodInput = input.int(13, "Low EMA")
medEMAPeriodInput = input.int(21, "Med EMA")
highEMAPeriodInput = input.int(55, "High EMA")

lowestEMA = ta.ema(close, lowestEMAPeriodInput)
lowEMA = ta.ema(close, lowEMAPeriodInput)
medEMA = ta.ema(close, medEMAPeriodInput)
highEMA = ta.ema(close, highEMAPeriodInput)


emaLongCondition = highEMA<medEMA and highEMA<lowEMA and highEMA<lowestEMA
emaShortCondition = highEMA>medEMA and highEMA>lowEMA and highEMA>lowestEMA

longCondition = ta.change(emaLongCondition)
shortCondition = ta.change(emaShortCondition)

notInTrade = strategy.position_size <= 0
if longCondition and emaLongCondition and notInTrade
    long:=high
    strategy.entry("EL", strategy.long)

if shortCondition and emaShortCondition
    short:=low
    strategy.close("EL")


plot(long+3,title = 'long', color = color.green, linewidth = 4, style = plot.style_cross)
plot(short-3,title = 'short', color = color.red, linewidth = 4, style = plot.style_cross)

plot(lowestEMA, title = "lowestEMA", color=color.blue)
plot(lowEMA, title = "lowEMA", color=color.green)
plot(medEMA, title = "medEMA", color=color.orange)
plot(highEMA, title = "highEMA", color=color.red)