この戦略は,複数のタイムフレームの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)