이 전략은 여러 시간 프레임의 SMA 이동 평균을 계산하고 이동 평균 지표를 구성하기 위해 평균 값을 사용합니다. 가격이 이동 평균 이상으로 상승할 때 구매 신호를 생성하고 가격이 이동 평균 이하로 떨어지면 판매 신호를 생성합니다. 이것은 전형적인 이동 평균 크로스오버 전략입니다.
여러 시간 프레임의 SMA를 평균화함으로써이 전략은 곡선을 효과적으로 부드럽게하고 잘못된 브레이크오웃을 필터링 할 수 있습니다. 단일 이동 평균에 비해 더 높은 안정성을 가지고 있습니다.
이러한 위험은 이동 평균 기간을 적절히 단축하고 다른 확인 지표를 추가함으로써 감소할 수 있습니다.
이 전략의 전반적인 아이디어는 분명하다. 여러 시간 프레임의 이동 평균을 통합함으로써, 트렌드를 효과적으로 식별할 수 있으며 안정적이고 실용적인 전략이다. 그러나, 우리는 또한 지연 및 잘못된 신호 위험에주의를 기울여야 한다. 파라미터 설정을 더 이상 최적화, 확인 지표 등을 추가함으로써, 우리는 이 전략을 지속적으로 개선하여 강력한 양적 거래 도구로 만들 수 있다.
/*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)