マルチSMA移動平均のクロスオーバー戦略

作者: リン・ハーンチャオチャン, 日付: 2023-11-28 15:08:37
タグ:

img

概要

この戦略は,複数のタイムフレームのSMA移動平均を計算し,移動平均指標を構築するために平均値を取る.価格が移動平均値以上になると買い信号を生成し,価格が移動平均値以下になると売り信号を生成する.これは典型的な移動平均クロスオーバー戦略である.

戦略原則

  1. 異なる期間の5つの SMA移動平均を計算する (8日,21日,50日,100日,200日)
  2. 5つの移動平均の平均を取って最終的な移動平均指標を得る
  3. 閉店価格が移動平均値以上になると購入信号を生成する.
  4. 閉店価格が移動平均値を下回ると売り信号を生成する.

この戦略は,複数のタイムフレームのSMAを平均することによって,曲線を効果的に滑らかにし,偽ブレイクアウトをフィルタリングすることができます.単一の移動平均と比較して,より高い安定性があります.

利点分析

  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)



もっと