ダブル移動平均クロスオーバー取引トレンドフォロー戦略


作成日: 2024-01-05 15:32:06 最終変更日: 2024-01-05 15:32:06
コピー: 1 クリック数: 677
1
フォロー
1617
フォロワー

ダブル移動平均クロスオーバー取引トレンドフォロー戦略

概要

双均線交差取引戦略は,トレンドを追跡する戦略である.それは,迅速な移動平均 ((MACD) と緩やかな移動平均の交差を,買入と売却のシグナルとして利用する.迅速な移動平均が,下から緩やかな移動平均を掃描するときに,買入シグナルを生成する.迅速な移動平均が,上から下から緩やかな移動平均を掃描するときに,売出シグナルを生成する.

戦略原則

この策略はMACD指数に基づいている。MACD指数は,価格の動量変化を反映する2つの異なるパラメータの移動平均の差値である。具体的には,高速移動平均 ((デフォルトパラメータは12日線) 減緩速移動平均 ((デフォルトパラメータは26日線) の差値である,MACD柱と呼ばれている。震動を排除するために,MACD指数にDEA線または信号線を導入し,一般的にはMACDの9日重力移動平均である。

MACD柱がDEA線を上下から突破して正値区域に入るときは,短期平均線上を長期平均線を掃き,株価の傾向が上昇して買入シグナルを生成することを示す. MACD柱がDEA線を上下から破って負値区域に入るときは,短期平均線下を長期平均線を掃き,株価の傾向が低下して売出シグナルを生成することを示す.

この戦略は,MACD柱とDEA線の交差を利用して,買入と売却のタイミングを判断する.MACD柱上を掃き DEA線を掃き買い,下を掃き売りする.

優位分析

この戦略の利点は以下の通りです.

  1. captured 価格の動向の変化を順番に把握する.
  2. シンプルでわかりやすく,実行可能.
  3. パラメータは固定で,頻繁に調整する必要はありません.
  4. 異なる時間帯に適用できます.

リスク分析

この戦略にはいくつかのリスクがあります.

  1. whipsawsは,横盤で繰り返し買い売りを誘発する誤った信号を複数回発生させることがあります.
  2. 遅滞 遅滞があるため,価格の変化の最適なタイミングを逃す可能性があります.
  3. over optimization パラメータは過度に最適化されやすく,実際の効果は良くないかもしれない.

リスクを軽減するために,パラメータを適切に調整したり,量価指標,波動率指標などの他の指標と組み合わせて使用することもできます.さらに,合理的な止損と停止戦略も重要です.

最適化の方向

この戦略は以下の点で最適化できます.

  1. パラメータ最適化: 異なるパラメータの組み合わせをテストして最適なパラメータを見つけることができます.しかし,過度に最適化することを避けるように注意してください.

  2. 他の指標との組み合わせ.量値指標,波動率指標などを取り入れ,より強力な組み合わせ戦略を形成することができる.

  3. ストップ・ストップ・ストップ・戦略 合理的なストップ・ストップ・ポイントを設定し,リスクを効果的に制御する.

  4. 適応性最適化: この戦略は,異なる市場と時間周期に適用され,実際の状況に応じて調整することができます.

要約する

双均線交差戦略は,価格トレンドの変化を捉え,低コストのトレンド追跡取引を実現する.それはシンプルで実用的で,実行しやすい,新入生に適した入門戦略である.しかし,この戦略には一定の欠陥があり,リスク予防に注意する必要がある.継続的な最適化と改善によって,この戦略の実際の効果を良くすることができる.推奨される.

ストラテジーソースコード
/*backtest
start: 2022-12-29 00:00:00
end: 2024-01-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("MACD Strategy by Forbes",default_qty_type=strategy.percent_of_equity, default_qty_value=100, overlay=false)

fastLength = input(20)
slowlength = input(40)
MACDLength = input(4)

// === INPUT BACKTEST RANGE ===
FromYear  = input(defval = 2011, title = "From Year", minval = 2009)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2009)
ToMonth   = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 31, title = "To Day", minval = 1, maxval = 31)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD

// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350

f1 = plot(MACD,color=red)
s1 = plot(aMACD,color=blue)
plotColor = if delta > 0
    delta > delta[1] ? lime : green
else 
    delta < delta[1] ? maroon : red

plot(delta, color=plotColor, style=columns)

if (crossover(delta, 0))
    strategy.entry("Buy", true, when=window(), comment="Buy")

if (crossunder(delta, 0))
    strategy.close_all(when=window())

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)