이중 이동 평균 트렌드 추적 전략

저자:차오장, 날짜: 2023-12-19 14:49:52
태그:

img

전반적인 설명

이중 이동 평균 트렌드 추적 전략 (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. 스톱 로스를 설정하고 수익을 취하여 단일 거래 손실을 제어합니다.
  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()
    

더 많은