이중 이동 평균 추세 추종 전략


생성 날짜: 2023-12-19 14:49:52 마지막으로 수정됨: 2023-12-19 14:49:52
복사: 0 클릭수: 580
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

이중 이동 평균 추세 추종 전략

개요

이중 이동 평균 트렌드 추적 전략 (Dual Moving Average Trend Tracking Strategy) 은 두 개의 다른 주기 이동 평균을 기반으로 시장의 경향 방향을 판단하는 정량 거래 전략이다. 이 전략은 빠른 이동 평균과 느린 이동 평균의 다공간 상태를 사용하여 트렌드 방향을 결정하고, 트렌드 방향으로 거래한다.

전략 원칙

이 전략은 두 개의 이동 평균을 사용한다. 빠른 이동 평균 (예를 들어 10 주기) 과 느린 이동 평균 (예를 들어 30 주기) 을 포함한다. 두 개의 이동 평균이 상승하면 다중 트렌드라고 판단한다. 두 개의 이동 평균이 하향하면 공중 트렌드라고 판단한다.

구체적으로, 전략은 먼저 빠른 이동 평균과 느린 이동 평균을 계산한다. 그리고는 현재의 빠른 이동 평균과 이전 주기의 크기와의 관계를 비교한다. 현재의 크기가 이전 주기와 같다면, 1을 부여한다. 그렇지 않으면 -1을 부여한다. 느린 이동 평균은 동일한 판단한다.

마지막으로, 두 개의 이동 평균의 판단값을 재빨리 판단한다. 두 판단값이 1인 경우, 최종 판단값은 1로, 이는 다목적 경향을 나타낸다. 두 판단값이 -1인 경우, 최종 판단값은 1로, 이는 공백 경향을 나타낸다. 판단값이 일치하지 않으면, 지난 주기의 경향 판단을 유지한다.

트렌드 방향을 판단한 후, 이 전략은 멀티 헤드 트렌드에서 더 많은 포지션을 열고, 빈 헤드 트렌드에서 더 많은 포지션을 열었다.

우위 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 전략은 명확하고 간단하며 이해하기 쉽고 실행이 가능합니다.
  2. 이중 이동 평균을 사용하여, 동요 시장의 소음을 효과적으로 필터링하여 트렌드 방향을 고정할 수 있다.
  3. 이동 평균의 변수는 다양한 품종과 시간대에 따라 유연하게 조정할 수 있다.
  4. 스톱로스 및 스톱 스톱 포인트를 설정할 필요가 없으며 트렌드를 추적하는 데 도움이되는 거래 빈도를 줄입니다.
  5. 유연한 설정으로 거래 선호도에 따라 추가 또는 비공개로 설정할 수 있습니다.

위험 분석

이 전략에는 위험도 있습니다.

  1. 가격의 급격한 변화가 있을 때, 이동 평균은 지연되어 최적의 시점을 놓칠 수 있다.
  2. 이중 이동 평균은 잘못된 거래 신호를 생성하는 잘못된 교차와 잘못된 교차가 발생할 수 있습니다.
  3. 전략 자체는 스톱로스 스을 설정하지 않고, 개별 손실을 효과적으로 제어할 수 없습니다.
  4. 이 전략은 기본적으로 풀 포지션 거래이며, 위험성이 높기 때문에 신중하게 행동해야 합니다.

위와 같은 위험을 줄이기 위해, 이동 평균 주기의 파라미터를 더 합리적으로 설정할 수 있으며, 보조 판단으로 다른 기술 지표를 도입하거나, 스톱 스톱 규칙을 설정하거나, 위치 위치를 적절하게 조정할 수 있습니다.

최적화 방향

이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.

  1. SMA, EMA 등과 같은 이동 평균 유형에 대한 선택, 차트 지표의 다양성을 사용.
  2. MACD, BOLL 등과 같은 다른 보조 기술 지표를 추가하여 판단의 정확성을 향상시킵니다.
  3. 트렌드 라인을 추가하고 저항 지점을 판단하여 거래 신호를 더 정확하게 만듭니다.
  4. 단기 손실을 효과적으로 제어하기 위해 Stop Loss Stop 조건을 설정합니다.
  5. 포지션 관리를 최적화하고, 자본 사용률, 수익률 등에 따라 포지션을 조정한다.

요약하다

이중 이동 평균 트렌드 추적 전략 전체적인 아이디어는 명확하고 이해하기 쉽다. 이중 이동 평균 필터로 트렌드 방향을 판단하고 판단 결과에 따라 거래하는 것이 전형적인 트렌드 추적 전략이다. 이 전략은 개인 선호에 따라 선택 할 수 있습니다.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © noro
// 2020

//@version=4
strategy(title = "Noro's TrendMA Strategy", shorttitle = "TrendMA str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, commission_value = 0.1)

//Settings
needlong = input(true, title = "Long")
needshort = input(true, title = "Short")
fast = input(10, minval = 1, title = "MA Fast (red)")
slow = input(30, minval = 2, title = "MA Slow (blue)")
type = input(defval = "SMA", options = ["SMA", "EMA"], title = "MA Type")
src = input(ohlc4, title = "MA Source")
showma = input(true, title = "Show MAs")
showbg = input(false, title = "Show Background")

//MAs
fastma = type == "EMA" ? ema(src, fast) : sma(src, fast)
slowma = type == "EMA" ? ema(src, slow) : sma(src, slow)

//Lines
colorfast = showma ? color.red : na
colorslow = showma ? color.blue : na
plot(fastma, color = colorfast, title = "MA Fast")
plot(slowma, color = colorslow, title = "MA Slow")

//Trend
trend1 = fastma > fastma[1] ? 1 : -1
trend2 = slowma > slowma[1] ? 1 : -1
trend = 0
trend := trend1 == 1 and trend2 == 1 ? 1 : trend1 == -1 and trend2 == -1 ? -1 : trend[1]

//Backgrouns
colbg = showbg == false ? na : trend == 1 ? color.lime : trend == -1 ? color.red : na
bgcolor(colbg, transp = 80)

//Trading
if trend == 1
    if needlong
        strategy.entry("Long", strategy.long)
    if needlong == false
        strategy.close_all()

if trend == -1
    if needshort
        strategy.entry("Short", strategy.short)
    if needshort == false
        strategy.close_all()