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

이중 이동 평균 크로스오버 전략 - EMA9/20

저자:차오장, 날짜: 2024-03-08 15:22:50
태그:

img

전략 개요

이중 이동 평균 크로스오버 전략 (Dual Moving Average Crossover Strategy, EMA9/20) 은 두 개의 기하급수적 이동 평균 (EMA) 의 크로스오버를 기반으로 하는 양적 거래 전략이다. 이 전략은 9일 EMA와 20일 EMA를 거래 신호로 사용하여 두 이동 평균이 교차할 때 구매 또는 판매 신호를 생성한다. 또한 이 전략은 가격과 9일 EMA 사이의 크로스오버를 보조 신호로 사용하고 있으며, 트레이닝 스톱을 사용하여 거래 위험을 관리한다.

전략 원칙

이 전략의 핵심 원칙은 서로 다른 기간의 두 이동 평균의 교차를 활용하여 시장 트렌드를 포착하는 것입니다. 단기 이동 평균 (9 일 EMA) 이 장기 이동 평균 (20 일 EMA) 을 넘을 때 시장의 잠재적 인 상승 추세를 나타내고 전략은 구매 신호를 생성합니다. 반대로 단기 이동 평균이 장기 이동 평균을 넘을 때 잠재적인 하락 추세를 나타내고 전략은 판매 신호를 생성합니다.

이동 평균 크로스오버 신호 외에도 전략은 가격과 단기 이동 평균 (9일 EMA) 사이의 크로스오버를 보조 신호로 포함합니다. 가격이 9일 EMA를 넘으면 구매 신호를 생성하고 가격이 9일 EMA를 넘으면 판매 신호를 생성합니다. 이는 시장 트렌드의 변화를 보다 신속히 파악할 수 있습니다.

리스크를 제어하기 위해, 전략은 트레일링 스톱 메커니즘을 사용합니다. 거래가 수익성 상태에 들어가면, 트레일링 스톱은 가격이 반대 방향으로 스톱-러스 수준을 넘기기 전까지 가격 움직임에 따라 지속적으로 스톱-러스 위치를 조정하여 잠재적 인 손실을 제한하면서 이익을 잠금합니다.

전략적 장점

  1. 단순성: 전략은 이동 평균 크로스오버의 고전적 원리에 기반하여 이해하기 쉽고 구현하기 쉽습니다.

  2. 트렌드 추적: 다른 기간의 두 이동 평균의 교차를 활용함으로써 전략은 시장의 주요 트렌드를 효과적으로 포착 할 수 있습니다.

  3. 적시 스톱 로스: 트레일링 스톱 메커니즘을 도입하면 트렌드가 역전될 때 적시에 포지션을 닫을 수 있으며 하향 리스크를 제어할 수 있습니다.

  4. 매개 변수 유연성: 전략의 매개 변수 (동도 평균 기간, 스톱 로스 포인트 등) 는 다양한 시장 및 도구에 따라 최적화 및 조정하여 다양한 시장 조건에 적응 할 수 있습니다.

전략 위험

  1. 빈번한 거래: 전략은 이동 평균 크로스오버와 가격 크로스오버 신호를 모두 사용하므로 거래 빈도가 높아지고 거래 비용이 증가할 수 있습니다.

  2. 불안한 시장: 불안한 시장 또는 범위 제한 시장에서 전략은 더 많은 잘못된 신호를 생성하여 수익성이 감소 할 수 있습니다.

  3. 매개 변수 민감성: 전략의 성능은 매개 변수 선택에 민감할 수 있으며, 다른 매개 변수들은 상당히 다른 결과를 가져올 수 있습니다.

최적화 방향

  1. 신호 필터링: 이동 평균 크로스오버 및 가격 크로스오버 신호 외에도 잘못된 신호를 줄이기 위해 필터링 조건으로 다른 기술적 지표 (RSI, MACD 등) 를 도입하십시오.

  2. 동적 매개 변수: 다른 시장 상태에 적응하기 위해 시장 변동성 및 트렌드 강도와 같은 요인에 따라 전략 매개 변수 (가동 평균 기간, 스톱-러스 포인트 등) 를 동적으로 조정합니다.

  3. 포지션 사이즈: 시장 트렌드와 신호 강도에 따라 포지션 크기를 동적으로 조정하고, 트렌드 강도가 높을 때 포지션 크기를 증가시키고, 트렌드가 불분명하거나 신호가 약할 때 포지션 크기를 줄입니다.

  4. 다중 도구 적응: 여러 도구와 시장을 대상으로 전략을 확장하고, 다양화 및 상관 분석을 통해 전반적인 위험을 줄이고 수익 안정성을 향상시킵니다.

요약

이중 이동 평균 크로스오버 전략 - EMA9/20은 위험 통제를 위해 트레일링 스톱을 사용하여 서로 다른 기간과 가격 크로스오버를 가진 두 이동 평균의 크로스오버를 통해 시장 추세를 포착하는 간단하고 실용적인 양적 거래 전략이다. 전략은 명확한 논리를 가지고 있으며 이해하기 쉽고 구현하기 쉽고 초보자도 학습 및 사용하기에 적합합니다. 그러나 전략에는 불안정한 시장에서 낮은 성능과 매개 변수 선택에 대한 민감성과 같은 몇 가지 한계가 있습니다. 따라서 실질적인 응용에서는 시나리오 필터링, 동적 매개 변수 조정, 위치 사이징 및 기타 방법을 도입하여 시나리오 필터링, 동적 매개 변수 조정, 거래 전략의 수익성과 안정성을 향상시키는 것과 같은 시장 및 도구의 특정 특성에 따라 전략을 최적화하고 개선해야합니다. 전반적으로 이중 이동 평균 전략 - EMA9/20은 더 이상의 연구와 탐구에 가치가있는 좋은 양적 기본 프레임워크를 제공합니다.


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


//@version=5
strategy(title = "EMAs 9 / 20",
		 shorttitle = '9/20 EMAs', 
		 initial_capital = 1000,
		 overlay = true, 
		 default_qty_type = strategy.fixed,
		 commission_type = strategy.commission.cash_per_contract,
		 commission_value = 0.35,
		 default_qty_value = 1)


int trailOffset = 10
int trailPoints = 15


series float oEma9 = ta.ema(ohlc4, 9)
series float oEma20 = ta.ema(ohlc4, 20)

series bool closeCrossoverEma9 = ta.crossover(close, oEma9)
series bool closeCrossunderEma9 = ta.crossover(close, oEma9)

series bool nineCrossover20 = ta.crossover(oEma9, oEma20)
series bool nineCrossunder20 = ta.crossunder(oEma9, oEma20)

//Entry Exits

if nineCrossover20
    strategy.entry("Long 9Cross20", strategy.long, 2)
else if closeCrossoverEma9
    strategy.entry("Long 9CrossClose", strategy.long, 2)
    strategy.exit("Long 9CrossClose Exit", from_entry = "Long 9CrossClose", trail_points = trailPoints, trail_offset = trailOffset)
else if nineCrossunder20
    strategy.close("Long 9Cross20")
    
    

if nineCrossunder20
    strategy.entry("Short 9Cross20", strategy.short, 2)
else if closeCrossunderEma9
    strategy.entry("Short 9CrossClose", strategy.short, 2)
    strategy.exit("Short 9CrossClose Exit", from_entry = "Short 9CrossClose", trail_points = trailPoints, trail_offset = trailOffset)
else if nineCrossover20
    strategy.close("Short 9Cross20")
    


더 많은