MACDクロスオーバー取引戦略

作者: リン・ハーンチャオチャン,日付: 2024-01-05 15時32分06秒
タグ:

img

概要

MACDクロスオーバー・トレーディング戦略は,トレンドをフォローする戦略である.高速移動平均線と遅い移動平均線をクロスオーバーして購入・販売信号として使用する.高速移動平均線がスロームービング平均線を越えると,購入信号が生成される.高速移動平均線がスロームービング平均線を下回ると,販売信号が生成される.

戦略原則

この戦略は,MACD指標に基づいている.MACD指標は,価格の勢力の変化を反映する,異なるパラメータを持つ2つの移動平均線間の差である.具体的には,MACDバーと呼ばれる高速移動平均線 (デフォルトパラメータは12日線) と遅い移動平均線 (デフォルトパラメータは26日線) の差である.振動を排除するために,MACD指標は,DEA線または信号線も導入し,通常はMACDの9日重度の移動平均線である.

MACDバーがDEA線を下から上へと突破してポジティブな領域に入ると,短期平均線が長期平均線の上を横切って,価格傾向が上昇し,購入信号が生成されることを示します.MACDバーがDEA線を上から下へと落ちて,マイナス領域に入ると,短期平均線が長期平均線を下に横切って,価格傾向が下向きに転移し,販売信号を生成することを意味します.

この戦略は,MACDバーとDEAラインのクロスオーバーを使用して,購入と販売のタイミングを決定します.MACDバーがDEAラインの上を横切ったときに購入し,MACDバーがDEAラインの下を横切ったときに販売します.

利点分析

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

  1. 傾向を追跡し,価格変動をタイムリーに把握する能力
  2. シンプルで理解し 実行しやすい
  3. 比較的固定されたパラメータで,頻繁な調整なし.
  4. 異なる時間枠に適用できる.

リスク分析

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

  1. 横向市場では複数の誤った信号やウィップソウを生む可能性があります.
  2. 価格変動のタイミングを逃す可能性があります.
  3. パラメータは簡単に過度に最適化され,実際の結果は劣る可能性があります.

リスクを軽減するために,パラメータは調整され,またはボリュームおよび変動指標などの他の指標と組み合わせることができます. さらに,適切なストップ損失と利益戦略も重要です.

オプティマイゼーションの方向性

この戦略は,次の側面で最適化できます.

  1. パラメータ最適化 過剰な最適化 を避けるのに最適なパラメータを見つけるために

  2. 他の指標と組み合わせて より強力な組み合わせ戦略を形成します

  3. 適切なストップ・ロストと 収益ポイントを設定して リスクを効果的にコントロールします

  4. この戦略を実際の状況に基づいて,異なる市場と時間枠に適用するための適応最適化.

結論

MACDクロスオーバー・トレーディング戦略は,価格動向をフォローすることによって低コストでトレンド変化を捉える.シンプルで,実践的で,簡単に実装できるため,初心者にとって適したスタートアップ戦略である.しかし,この戦略にはいくつかの欠点もある.常に最適化して改善することで,この戦略の実際の効果はより良いものになる.推奨に値する.


/*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)

もっと