MACDクロスオーバー・トレーディング戦略は,トレンドをフォローする戦略である.高速移動平均線と遅い移動平均線をクロスオーバーして購入・販売信号として使用する.高速移動平均線がスロームービング平均線を越えると,購入信号が生成される.高速移動平均線がスロームービング平均線を下回ると,販売信号が生成される.
この戦略は,MACD指標に基づいている.MACD指標は,価格の勢力の変化を反映する,異なるパラメータを持つ2つの移動平均線間の差である.具体的には,MACDバーと呼ばれる高速移動平均線 (デフォルトパラメータは12日線) と遅い移動平均線 (デフォルトパラメータは26日線) の差である.振動を排除するために,MACD指標は,DEA線または信号線も導入し,通常はMACDの9日重度の移動平均線である.
MACDバーがDEA線を下から上へと突破してポジティブな領域に入ると,短期平均線が長期平均線の上を横切って,価格傾向が上昇し,購入信号が生成されることを示します.MACDバーがDEA線を上から下へと落ちて,マイナス領域に入ると,短期平均線が長期平均線を下に横切って,価格傾向が下向きに転移し,販売信号を生成することを意味します.
この戦略は,MACDバーとDEAラインのクロスオーバーを使用して,購入と販売のタイミングを決定します.MACDバーがDEAラインの上を横切ったときに購入し,MACDバーがDEAラインの下を横切ったときに販売します.
この戦略の利点は以下の通りです.
この戦略にはいくつかのリスクもあります:
リスクを軽減するために,パラメータは調整され,またはボリュームおよび変動指標などの他の指標と組み合わせることができます. さらに,適切なストップ損失と利益戦略も重要です.
この戦略は,次の側面で最適化できます.
パラメータ最適化 過剰な最適化 を避けるのに最適なパラメータを見つけるために
他の指標と組み合わせて より強力な組み合わせ戦略を形成します
適切なストップ・ロストと 収益ポイントを設定して リスクを効果的にコントロールします
この戦略を実際の状況に基づいて,異なる市場と時間枠に適用するための適応最適化.
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)