세 개의 SMA 크로스오버 모멘텀 전략

저자:차오장, 날짜: 2023-12-25 12:06:36
태그:

img

전반적인 설명

세 개의 SMA 크로스오버 모멘텀 전략은 시장 트렌드를 추적하는 전형적인 기술 지표 전략이다. 16~36~72주기 간단한 이동 평균을 결합하고, 트렌드 방향이 상대적으로 명확할 때 긴 또는 짧은 포지션을 취하기 위한 필터로 카우프만 적응 이동 평균 (KAMA) 과 함께 시장 트렌드를 결정하기 위해 상승 및 하락 크로스오버를 사용합니다.

전략 논리

이 전략의 핵심 지표는 16~36~72주기 간단한 이동 평균이다. 단기 SMA가 긴 기간 중 1주기를 상향으로 넘으면 시장이 상승 추세로 진입한다는 신호가 된다. 단기 SMA가 긴 기간 중 1주기를 하향 추세로 넘으면 시장이 하향 추세로 진입한다는 신호가 된다. 예를 들어, 16주기 SMA가 36주기 SMA와 72주기 SMA를 넘으면 상승 신호이다. 16주기 SMA가 36주기 SMA와 72주기 SMA를 넘으면 하락 신호이다.

카우프만 적응 이동 평균 (KAMA) 은 트렌드가 불분명할 때 잘못된 신호를 피하기 위한 필터 역할을 한다. SMA 크로스오버 신호는 KAMA가 가속되지 않거나 느려지지 않는 모드 (선형 단계) 에 있을 때만 트리거된다.

이 전략은 트렌드가 상대적으로 명확할 때 긴 또는 짧은 포지션을 취하기 위해 SMA 크로스오버 상황을 추적합니다. 긴 조건은 선형 KAMA와 함께 36-SMA와 72-SMA를 넘는 16-SMA를 넘는 것입니다. 짧은 조건은 선형 KAMA와 함께 36-SMA와 72-SMA를 넘는 16-SMA입니다.

이점 분석

이 전략의 장점은 다음과 같습니다.

  1. 여러 기간 SMA를 결합하면 중장기 시장 동향을 효과적으로 추적할 수 있습니다.
  2. 필터로서 적응 이동 평균을 도입하면 트렌드가 명확하지 않은 경우 잘못된 신호를 줄일 수 있습니다.
  3. 구현이 간단하고 자동화 또는 프로그램 거래에 적합합니다.

위험 분석

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

  1. 빈번한 SMA 크로스오버로 인해 빈번한 무효 신호가 범위 시장에서 발생할 수 있습니다.
  2. 손해를 막는 설정이 없습니다, 손실은 확장 될 수 있습니다.
  3. 높은 변동성 있는 암호화 시장에 설계된, 덜 변동성 있는 시장에서 낮은 성과를 낼 수 있습니다.

위험은 SMA 매개 변수를 조정하거나 스톱 로스 제약을 설정하거나 매우 변동성 있는 시장에만 적용함으로써 줄일 수 있습니다.

최적화 방향

전략은 다음과 같은 방법으로 최적화 될 수 있습니다.

  1. 최적의 SMA 매개 변수를 찾기 위해 SMA의 다양한 조합을 테스트
  2. 추가 필터 조건으로 거래량 또는 변동성 지표를 추가합니다.
  3. 스톱 로스 메커니즘을 설정
  4. 입시 시기를 결정하기 위해 다른 지표를 결합하십시오.
  5. 포지션 크기를 최적화하고, 점차적으로 포지션을 추가하고 줄임으로써 위험을 조정합니다.

결론

세 개의 SMA 크로스오버 모멘텀 전략은 전반적으로 상당히 고전적이고 실용적인 트렌드 추후 전략이다. 중장기 시장 트렌드를 다기간에 걸쳐서 효과적으로 판단하고 소음을 필터한다. 포지셔널 트레이딩의 타이밍 참조 지표 중 하나로 작용할 수 있다. 그러나 이 전략은 더 다양한 시장에서 서기 위해 추가 향상과 최적화를 필요로 하는 몇 가지 약점도 있다.


/*backtest
start: 2023-11-24 00:00:00
end: 2023-12-24 00:00:00
period: 1h
basePeriod: 15m
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/
// © Wielkieef


//@version=5
strategy(title='Three SMA-crossover strategy [30min] ', overlay=true, pyramiding=1, initial_capital=10000, default_qty_type=strategy.cash, default_qty_value=10000, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0.03)

src = close

Length1 = input.int(16, title='  1-SMA Lenght', minval=1, group='SMA')
Length2 = input.int(36, title='  2-SMA Lenght', minval=1, group='SMA')
Length3 = input.int(72, title='  3-SMA Lenght', minval=1, group='SMA')
SMA1 = ta.sma(close, Length1)
SMA2 = ta.sma(close, Length2)
SMA3 = ta.sma(close, Length3)

Long_ma = SMA1 > SMA2 and SMA2 > SMA3
Short_ma = SMA1 < SMA2 and SMA2 < SMA3

LengthMainSMA = input.int(100, title='  Trend SMA ', minval=1)

SMAas = ta.sma(src, LengthMainSMA)

//  Powered Kaufman Adaptive Moving Average by alexgrover (modificated by Wielkieef)
lengthas = input.int(50, title='   KAMA Lenght')
sp = input.bool(true, title='  Self Powered')

er = math.abs(ta.change(close, lengthas)) / math.sum(math.abs(ta.change(close)), lengthas)
pow = sp ? 1 / er : 2
per = math.pow(math.abs(ta.change(close, lengthas)) / math.sum(math.abs(ta.change(close)), lengthas), pow)
a = 0.
a := per * src + (1 - per) * nz(a[1], src)
mad4h = 0.
a_f = a / a[1] > .999 and a / a[1] < 1.001

///.

Bar_color = close > SMAas ? color.green : Long_ma ? color.blue : Short_ma ? color.maroon : color.gray

barcolor(color=Bar_color)

long_cond = Long_ma and SMAas < close and not a_f and close > a

short_cond = Short_ma and SMAas > close and not a_f and close < a
  
long_stop = Short_ma and SMAas < close

short_stop = Long_ma and SMAas > close

SMA1plot = plot(SMA1, color=Bar_color, linewidth=2)
SMA2plot = plot(SMA2, color=Bar_color, linewidth=4)
SMA3plot = plot(SMA3, color=Bar_color, linewidth=2)

fill(SMA1plot,SMA3plot,title="RANGE " ,color = color.new(Bar_color, 50))



if  long_cond
    strategy.entry('Long', strategy.long)

if  short_cond
    strategy.entry('Short', strategy.short)

strategy.close_all(when=long_stop or short_stop)



//by wielkieef

더 많은