이중 이동 평균 트렌드 추적 전략 (Dual Moving Average Trend Tracking Strategy) 은 시장의 트렌드 방향을 결정하기 위해 서로 다른 기간을 가진 두 개의 이동 평균을 사용하는 양적 거래 전략이다. 트렌드를 식별하고 트렌드 방향을 따라 거래를하기 위해 빠르고 느린 이동 평균의 긴/단기 상태를 사용합니다.
이 전략은 빠른 이동 평균 (예를 들어 10 기간) 과 느린 이동 평균 (예를 들어 30 기간) 을 포함한 두 개의 이동 평균을 사용합니다. 두 이동 평균이 상승 추세를 지향하는 경우 상승 추세를 나타냅니다. 두 이동 평균이 하락 추세를 지향하는 경우 하락 추세를 나타냅니다.
구체적으로, 전략은 먼저 빠르고 느린 이동 평균을 계산합니다. 다음으로 현재의 빠른 이동 평균을 이전 기간과 비교하여 현재 평균이 이전보다 더 큰지 확인하십시오. 만약 예라면, 상승 추세를 나타내는 값을 1로 지정하십시오. 그렇지 않으면 하락 추세를 -1로 지정하십시오. 느린 이동 평균에 대해서도 똑같이하십시오.
마지막으로, 두 이동 평균의 값으로 추세를 결정합니다. 두 값이 1인 경우 최종 결정은 1이며 상승 추세를 나타냅니다. 둘 다 -1인 경우 최종 결정은 -1이며 하락 추세를 나타냅니다. 값이 다르면 이전 트렌드 결정을 유지합니다.
트렌드 방향이 결정되면, 전략은 상승 트렌드에서 길고 하락 트렌드에서 짧을 것입니다.
이 전략은 다음과 같은 측면을 가지고 있습니다.
이 전략에는 몇 가지 위험도 있습니다.
위험을 줄이기 위해, 이동 평균의 매개 변수는 더 합리적으로 설정될 수 있고, 다른 지표가 도입될 수 있고, 스톱 로즈와 영업이익을 설정할 수 있으며, 포지션 크기를 그에 따라 조정할 수 있습니다.
이 전략은 다음 측면에서 더 이상 최적화 될 수 있습니다.
이중 이동 평균 트렌드 추적 전략은 잡음을 필터하고 트렌드를 식별하고 트렌드 방향을 따라 거래하기 위해 이중 이동 평균을 사용하는 명확한 논리를 가지고 있습니다. 이는 트렌드 방향을 따르는 전형적인 전략입니다. 거래자는 선호도에 따라만 길거나 짧게 선택할 수 있습니다. 전략의 위험이 여전히 있습니다. 추가 지표, 스톱 로스 / 수익을 가져야 위험을 제어 할 수 있습니다. 그렇게 함으로써 장기적으로 안정적인 이익을 얻을 수 있습니다.
/*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()