멀티 SMA 이동 평균 교차 전략


생성 날짜: 2023-11-28 15:08:37 마지막으로 수정됨: 2023-11-28 15:08:37
복사: 2 클릭수: 713
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

멀티 SMA 이동 평균 교차 전략

개요

이 전략은 여러 기간의 SMA 평균선을 계산하고 평균값을 취하여 평균선 지표를 구성한다. 가격 상승이 평균선을 뚫을 때 구매 신호를 발생시키고, 가격이 하락이 평균선을 뚫을 때 판매 신호를 발생시키는 것이 전형적인 평균선 교차 전략이다.

전략 원칙

  1. 5개의 다른 주기 (8일, 21일, 50일, 100일, 200일) 의 SMA 평균을 계산합니다.
  2. 5개의 평균값을 평균해서 최종 평균값을 얻습니다.
  3. 마감 가격 상승이 평균선을 뚫을 때 구매 신호가 생성됩니다.
  4. 마감 가격 하락이 평균선을 돌파할 때, 판매 신호가 발생

이 전략은 여러 시간대 SMA의 평균을 통해, False Breakout를 제거하여 곡선을 효과적으로 평평하게 할 수 있습니다. 단일 평균선에 비해 더 높은 안정성을 가지고 있습니다.

우위 분석

  1. 다중 시간대 평균선을 사용하면 시장 소음을 효과적으로 제거하고 트렌드를 식별할 수 있습니다.
  2. 곡선을 평평하게 하고, 많은 가짜 신호를 피합니다.
  3. 전략 논리는 간단하고 명확하며, 이해하기 쉬운 구현으로 초보자 학습에 적합합니다.
  4. 사용자 정의 가능한 평선 주기 조합, 지표 효과를 최적화

위험 분석

  1. 평균선 시스템은 전체적으로 지연되어 가격 변화를 적시에 추적할 수 없습니다.
  2. 파격이 실패할 때, 정지점은 멀리 떨어져 있고, 손실 위험이 크다.
  3. “지진의 흐름 속에서, 상쇄선이 자주 작동된다”.

일부 평균주기를 적절히 줄이고, 다른 지표 확인을 추가함으로써 이러한 위험을 줄일 수 있습니다.

최적화 방향

  1. 평형 주기 조합을 최적화하여 최적의 변수를 찾습니다.
  2. 거래량과 같은 지표가 추가되어 브레이크 신호를 확인합니다.
  3. 트렌드 지표와 결합하여 흔들리는 시장의 잘못된 신호를 피하십시오.
  4. 자동 변수 최적화 프로그램을 개발하고, 동적으로 최적의 변수를 찾습니다.

요약하다

이 전략은 전체적인 아이디어가 명확하고, 여러 시간 동안의 평균적인 통합을 통해 트렌드를 효과적으로 식별할 수 있는, 안정적으로 실용적인 전략이다. 그러나 우리는 또한 그것의 지연성과 잘못된 정보의 위험에 주의를 기울여야 한다. 추가적으로 최적화 파라미터를 설정하고, 확인 지표와 같은 수단을 추가함으로써, 이 전략을 지속적으로 개선하여 강력한 수치화 거래 도구로 만들 수 있다.

전략 소스 코드
/*backtest
start: 2023-11-20 00:00:00
end: 2023-11-27 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("STRATEGY AVERAGE MULTI_SMA", overlay=true)


sma1 = sma(close,input(title="SMA 1", defval=8))

sma2 = sma(close,input(title="SMA 2", defval=21))

sma3 = sma(close,input(title="SMA 3", defval=50))

sma4 = sma(close,input(title="SMA 4", defval=100))

sma5 = sma(close,input(title="SMA 5", defval=200))


mediaSMA= (sma1+sma2+sma3+sma4+sma5)/5

//color mediaSMA

MediaUP = mediaSMA>mediaSMA[1]
colorUP = (MediaUP ? #3CFF35 : na)

MediaDOWN = mediaSMA<mediaSMA[1]
colorDOWN =(MediaDOWN ? #FF0F03 : na)

colorN =(not MediaUP and not MediaDOWN and mediaSMA==mediaSMA[1] ? white : na )

plot(mediaSMA,title="Avarege MULTI_SMA UP", color=colorUP, style=circles, linewidth=2, transp=0)
plot(mediaSMA,title="Avarege MULTI_SMA DOWN", color=colorDOWN, style=circles, linewidth=2, transp=0)
plot(mediaSMA,title="Avarege MULTI_SMA UP NEUTRAL", color=colorN, style=circles, linewidth=2, transp=0)


//plot(sma1,color=blue,linewidth=1, style=line,transp=0,title="SMA 1")
//plot(sma2,color=yellow,linewidth=1, style=line,transp=0,title="SMA 2")
//plot(sma3,color=green,linewidth=1, style=line,transp=0,title="SMA 3")
//plot(sma4,color=purple,linewidth=1, style=line,transp=0,title="SMA 4")
//plot(sma5,color=red,linewidth=1, style=line,transp=0,title="SMA 5")


// Strategy

//BUY
comprar=close>mediaSMA and mediaSMA>mediaSMA[1] 
fechar=close<mediaSMA and mediaSMA<mediaSMA[1]
 
strategy.entry("BUY",strategy.long,when=comprar)
strategy.entry("SELL",strategy.short, when=fechar)

//SELL
vender=close<mediaSMA and mediaSMA<mediaSMA[1] 
fechar2=close>mediaSMA and mediaSMA>mediaSMA[1]

strategy.entry("SELL",strategy.short, when=vender)
strategy.entry("BUY", strategy.long,when=fechar2)