이중 SMA 트렌드 전략

저자:차오장, 날짜: 2023-09-20 11:35:30
태그:

전반적인 설명

이 전략은 트렌드 방향에 대해 느린 SMA와 엔트리 신호에 대해 빠른 SMA로 두 개의 SMA 라인을 사용합니다. 촛불 색상 결정과 결합하여 긴 및 짧은 신호를 생성합니다. 전략은 중장기 트렌드를 따르고, 최고 또는 최저의 통합에 적합합니다.

전략 논리

두 개의 SMA 라인이 계산되며, 하나는 빨라지고 하나는 느리다. 가격 채널의 중간선과 함께. 빠른 라인은 5의 기간을 가지고 있으며 느린 라인은 20의 기간을 가지고 있습니다. 가격 채널 중간선의 위는 상승 추세로 간주되며, 느린 라인의 위를 넘어서 빠른 라인을 넘어서 긴 기회를 찾습니다. 중간선 아래에 하락 추세가 있으며, 느린 라인의 아래를 넘어서 빠른 라인을 넘어서 짧은 기회를 찾습니다.

또한, 촛불 몸 색깔이 포함된다. 상승 추세에서는, 빠른 선이 느린 선 위에 넘어가면 긴 직전에, 바닥을 본 후, 적어도 2개의 연속적인 빨간 촛불이 필요하다. 하락 추세에서는, 빠른 선이 느린 선 아래에 넘어가면 짧은 직전에, 정상을 본 후, 적어도 2개의 연속적인 녹색 촛불이 필요하다.

이점 분석

이중 SMA 라인과 가격 채널은 트렌드 방향을 결정하고 잘못된 브레이크오웃을 피하는 데 도움이됩니다. 촛불 색상 필터는 잘못된 신호를 추가로 제거합니다. 헤지링을 위해 긴 신호와 짧은 신호 모두 존재한다. 전략은 중장기 트렌드를 효과적으로 추적합니다.

사용자 정의 가능한 매개 변수는 긴 / 짧은 조건을 유연하게 구성 할 수 있습니다. 백테스트는 고도와 하위 모두에서 통합에서 괜찮은 수익을 보여줍니다.

위험 분석

SMA 라인에 대한 과도한 의존은 범위 동안 과도한 잘못된 신호를 생성 할 수 있습니다. 가격 요인은 고려되며 볼륨은 무시됩니다.

SMA 기간을 조정하거나 다른 기술적 인 지표를 통합하면 신호를 필터 할 수 있습니다. 볼륨 지표는 또한 추가 인사이트를 제공 할 수 있습니다. 포지션 사이징은 또한 시장 조건에 따라 최적화 될 수 있습니다.

최적화 방향

  1. 최적의 매개 변수를 찾기 위해 다른 빠르고 느린 SMA 조합을 테스트합니다.

  2. 신호 검증을 위한 부피 및 다른 지표들을 추가합니다.

  3. 다른 기술 지표를 통합 전략으로 통합합니다.

  4. 자본 관리를 최적화하기 위해 동적 위치 크기를 설정합니다.

  5. 기계 학습을 적용하여 가격 추세와 전환점을 예측합니다.

  6. 손실을 제한하기 위해 스톱 로스 전략을 최적화하십시오.

요약

트렌드 결정에 대한 이중 SMA 시스템은 논리적으로 명확하고 일반적으로 사용됩니다. 그러나 이동 평균에만 지나치게 의존하는 것은 잘못된 신호를 생성하는 경향이 있으며, 향상을위한 다른 지표가 필요합니다. 더 질적이고 양적 인 검증으로 전략은 더 견고해질 것입니다. 전반적으로 간단하고 신뢰할 수있는 트렌드 다음 템플릿을 제공합니다.


/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Noro's Trend SMA Strategy v1.4", shorttitle = "Trend SMA str 1.4", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

needlong = input(true, "long")
needshort = input(true, "short")
usefastsma = input(true, "Use fast SMA")
fastlen = input(5, defval = 5, minval = 1, maxval = 50, title = "fast SMA Period")
slowlen = input(20, defval = 20, minval = 2, maxval = 200, title = "slow SMA Period")
bars = input(2, defval = 2, minval = 0, maxval = 3, title = "Bars Q")

fastsma = ema(close, fastlen)
slowsma = ema(close, slowlen)

//PriceChannel
src = ohlc4
lasthigh = highest(src, slowlen)
lastlow = lowest(src, slowlen)
center = (lasthigh + lastlow) / 2

trend = low > center ? 1 : high < center ? -1 : trend[1]

bar = close > open ? 1 : close < open ? -1 : 0
redbars = bars == 0 ? 1 : bars == 1 and bar == -1 ? 1 : bars == 2 and bar == -1 and bar[1] == -1 ? 1 : bars == 3 and bar == -1 and bar[1] == -1 and bar[2] == -1 ? 1 : 0
greenbars = bars == 0 ? 1 : bars == 1 and bar == 1 ? 1 : bars == 2 and bar == 1 and bar[1] == 1 ? 1 : bars == 3 and bar == 1 and bar[1] == 1 and bar[2] == 1 ? 1 : 0

up = trend == 1 and (low < fastsma or usefastsma == false) and redbars == 1 ? 1 : 0
dn = trend == -1 and (high > fastsma or usefastsma == false) and greenbars == 1 ? 1 : 0

colorfastsma = usefastsma == true ? red : na
plot(fastsma, color = colorfastsma, title = "Fast SMA")
plot(center, color = blue, title = "Price Channel")

longCondition = up == 1
if (longCondition)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

shortCondition = dn == 1
if (shortCondition)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)

더 많은