MACDとボリンジャーバンドに基づくMomentum Trend戦略
概要
本戦略の名称は「Momentum Trend」です。MACD指標とボリンジャーバンド指標の利点を組み合わせ、トレンドフォロー戦略を実現します。この戦略では、MACDの短期線と長期線を使ってボリンジャーバンドを構築し、バンドの中央線はMACDのシグナル線とします。価格がバンドの上限を突破した場合は弱気、下限を突破した場合は強気とみなします。価格が調整してバンドの中央線付近まで戻ったタイミングでエントリーし、中長期的なトレンドを追いかけます。
戦略の原理
この戦略の核となる指標はMACDとボリンジャーバンドです。MACD指標は短期線、長期線、およびMACDの差から構成されます。短期線は通常12日EMA、長期線は26日EMAを取ります。それらの差がMACDのヒストグラムとなります。本戦略では、短期線と長期線の差をボリンジャーバンドの基準となる中央線として使用し、中央線の周りに上限と下限を設定してバンドを描画します。
価格が下から上にボリンジャーバンドの下限を突破したときに買いシグナルが発生し、価格が上から下にボリンジャーバンドの上限を突破したときに売りシグナルが発生します。損失の固定化や反転の機会損失を減らすため、本戦略ではバンド突破時に即座にエントリーせず、価格が調整してバンドの中央線をテストした時点でエントリーします。
また、ボリンジャーバンドの上限と下限はレジスタンスラインおよびサポートラインとしても活用できます。価格上昇時は上限がレジスタンス、下限がサポートとなり、価格下落時は上限がサポート、下限がレジスタンスとなります。
優位性分析
本戦略はMACDとボリンジャーバンドの2つの指標の利点を組み合わせてトレンドフォローを実現し、以下のような優位性があります。
-
MACDはトレンド判断力に優れており、ボリンジャーバンドは自己適応的に調整されるため、両者の組み合わせによりトレンド転換点を効果的に判断できます。
-
調整後のエントリーによりストップロスのリスクを回避しやすくなり、中長期的なトレンドをフォローできます。
-
ボリンジャーバンドのレジスタンスとサポートを利用して利益をさらに確定できます。
-
MACDとボリンジャーバンドのパラメータは柔軟に調整可能で、さまざまな市場環境に対応できます。
リスク分析
本戦略には以下のようなリスクも存在します。
-
トレンドがレンジ相場の場合、MACDとボリンジャーバンドが複数回にわたって無効なシグナルを出す可能性があります。その場合はポジションサイズを減らして巨額の損失を回避する必要があります。
-
調整後のエントリー時にはストップロスを設定する必要があり、調整が深すぎると損失が拡大するリスクがあります。
-
ボリンジャーバンドのパラメータは市場のボラティリティに応じて調整する必要があり、パラメータ設定が適切でないと偽のブレイクアウトの確率が高まります。
-
適切なリスク管理とポジションコントロールが、この戦略で継続的な利益を得るための鍵です。戦略シグナルだけに依存すると、全体のリスクを見落としやすくなります。
最適化の方向性
本戦略は以下の方向でさらに最適化できます。
-
MACDのパラメータを最適化し、短期線を8日、長期線を20日に変更し、銘柄や期間に応じて調整することで、指標の感度を高めます。
-
上昇トレンドと下降トレンドの判断を追加し、ボリンジャーバンドのパラメータを最適化して、レンジ相場での偽シグナル率を低減します。
-
ストップロス戦略を追加し、ボリンジャーバンドの上限・下限ラインを利用してストップロスラインを設定し、リスクをコントロールします。
-
他の指標フレームワークと組み合わせて検証し、戦略の安定性を高めます。
まとめ
MACDとボリンジャーバンドに基づくMomentum Trend戦略は、指標の組み合わせにより中長期的なトレンドを追跡し、調整後のエントリーでリスクを低減します。パラメータ設定を最適化し、リスクをコントロールすることで、トレンド銘柄において良好なパフォーマンスを示します。しかし、どの戦略も完璧ではなく、多角的な視点から継続的に改善・最適化を図り、変化する市場環境に適応させる必要があります。
/*backtest
start: 2023-02-22 00:00:00
end: 2024-02-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//Simple strategy based on MACD and Bollinger Bands, where BBs are calculatend from macd signal.
strategy("Strategy MACD vs BB", overlay=false)
- 1

