二重移動平均取引戦略


作成日: 2023-12-13 15:23:32 最終変更日: 2023-12-13 15:23:32
コピー: 0 クリック数: 693
1
フォロー
1621
フォロワー

二重移動平均取引戦略

概要

双均線取引戦略は,比較的典型的なトレンド追跡戦略である.この戦略は,急速な移動平均と遅い移動平均の金叉死叉を用いて市場の傾向を判断し,それに応じて空白を多くする.急速な移動平均が下から上へ突破すると,トレンドは上昇傾向に入ると考えられ,これを多くする.急速な移動平均が上から下へ突破すると,トレンドは下方傾向に入ると考えられ,これを空白する.この戦略は,中間の長い傾向が強い市場に適用される.

戦略原則

双均線取引戦略の核心的な論理は,移動平均の金叉死叉に基づいている.移動平均は,市場動向の方向を反映し,市場動向の騒音を効果的に除することができる.急速な移動平均は,価格の変化に敏感であり,現在の段階の傾向を反映することができる.遅い移動平均は,価格の変化に反応し,全体の傾向の方向を判断することができる.

急速移動平均線上を横切ると,短期トレンドの上昇動力が長期トレンドよりも強く,多めにすることができる.急速移動平均線下を横切ると,短期トレンドの減少動力が長期トレンドよりも強く,空っぽにすることができる.

具体的には,この戦略は,長さ9と21の快移動平均と遅移動平均を定義し,ta.crossoverそしてta.crossunder黄金叉と死叉を判断する. 黄金叉の場合は多し,死叉の場合は空にする.

優位分析

双方向取引戦略は以下の利点があります.

  1. シンプルで,理解し,実行しやすい.
  2. 移動平均は市場騒音を効果的にフィルターし,トレンドを識別します.
  3. 平均線と平均線を組み合わせることで,中長線のトレンドを捉えることができます.
  4. 市場ごとに異なる移動平均のパラメータをカスタマイズできます.
  5. 複数の時間周期で使用可能で,柔軟性がある.

リスク分析

双方向の取引戦略には以下のリスクがあります.

  1. 震源地帯にある場合,誤信号が複数回発生する可能性があります.
  2. 速平均線と遅平均線のパラメータが正しく設定されていない場合,信号の誤りが生じます.
  3. 市場が変化しつつあると判断できない状況で,逆転点の近くで損失が発生する可能性がある.
  4. 特定の入場地点が特定できないため,随意性がある.

上記のリスクに対して,移動平均のパラメータを最適化し,他の指標と組み合わせてフィルタリングし,ストップポイントを限定することでリスクを軽減することができます.

最適化の方向

双方向取引戦略は以下の方向から最適化できます.

  1. 移動平均のパラメータを最適化して,最適なパラメータの組み合わせを見つける.
  2. MACD,KDJなどの判断指標を追加して誤信号を回避する.
  3. 単一損失を抑えるため 損失抑制の強化
  4. 波動率の指標と組み合わせてトレンドの強さや弱さを判断し,入場タイミングを最適化する.

要約する

双均線取引戦略は,概してシンプルで実用的なトレンド追跡戦略である.急速均線と遅い均線を組み合わせて使用することで,市場トレンドの方向を効果的に識別することができる.しかし,この戦略には一定の欠陥がある.最適化と改善すると,定量取引の基本戦略の1つになることができる.

ストラテジーソースコード
/*backtest
start: 2023-11-12 00:00:00
end: 2023-12-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("MA Strategy", overlay=true)

// Input parameters
fastLength = input(9, title="Fast MA Length")
slowLength = input(21, title="Slow MA Length")

// Calculate moving averages
fastMA = ta.sma(close, fastLength)
slowMA = ta.sma(close, slowLength)

// Plot moving averages
plot(fastMA, color=color.blue, title="Fast MA")
plot(slowMA, color=color.red, title="Slow MA")

// Strategy conditions
longCondition = ta.crossover(fastMA, slowMA)
shortCondition = ta.crossunder(fastMA, slowMA)

// Strategy orders
if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)

// Plot entry signals
plotshape(series=longCondition, title="Buy Signal", color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=shortCondition, title="Sell Signal", color=color.red, style=shape.triangledown, size=size.small)