MACDとボリンジャーバンドに基づくモメンタムトレンド戦略


作成日: 2024-02-29 13:49:03 最終変更日: 2024-02-29 13:49:03
コピー: 0 クリック数: 682
1
フォロー
1617
フォロワー

MACDとボリンジャーバンドに基づくモメンタムトレンド戦略

概要

この策略は,Momentum Trendと呼ばれるもので,MACD指数とブリン帯指数の優位性を組み合わせて,トレンド追跡策略を実現する.この策略は,MACDの快線と慢線を使ってブリン帯を構成し,ブリン帯の中線はMACDの信号線である.価格がブリン帯を突破すると空見で,価格がブリン帯を突破すると空見で,価格がブリン帯を突破すると下線で空見である.それは,価格の反調を待つ.

戦略原則

この戦略の核心指標はMACDとブリン帯である。その中で,MACD指標は快線,慢線,MACD差値で構成されている。快線は通常12日EMA,慢線は26日EMAを取る。それらの差値はMACD柱である。この戦略は,快線と慢線の差値をブリン帯の基礎中線として利用し,中線の周りに上下線を設定し,ブリン帯を描画する。

価格は下から上へブリン帯を突破して下線を突破するときに買い信号を生じ;価格が上から下へブリン帯を突破して上線を突破するときに売る信号を生じます. セットされ,反転の機会を逃す可能性を減らすために,この戦略は軌道突破時にすぐに入場するのではなく,価格の逆走を待つためにブリン帯の中線をテストするときに再び入場します.

また,ブリン帯の上線と下線は,レジスタンス位とサポート位として利用することもできます. 上線は価格が上昇するときにレジスタンスであり,下線はサポートであり,上線は価格が低下するときにサポートであり,下線はレジスタンスである.

優位分析

この戦略は,MACDとブリン帯の2つの指標の優位性を組み合わせてトレンド追跡を実現し,以下の利点があります.

  1. MACDは強いトレンド判断能力を持ち,ブリン帯は自律的調整を備えており,両者の組み合わせによりトレンド転換点を効果的に判断することができる.

  2. また,リコール入場は,ストップ・ローズを回避し,中長線トレンドを追跡するのに有効である.

  3. ブルイン帯の抵抗とサポートを利用して,さらに利益を得ることができます.

  4. MACDとブリン帯のパラメータは柔軟に調整され,さまざまな市場環境に適用されます.

リスク分析

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

  1. 振動的なトレンドでは,MACDとブリン帯は,複数の失効信号が発生する可能性があります.このとき,大きな損失を避けるために,ポジションの規模を減らす必要があります.

  2. 回収入場時にストップロスを設定し,回収が深すぎると損失が拡大することを避ける必要がある.

  3. ブリン帯のパラメータは,市場の変動率に合わせて調整する必要がある.パラメータが正しく設定されていない場合,偽突破の確率が増加する.

  4. 優れたリスク管理とポジションコントロールは,この戦略が継続的に収益を上げることの鍵である. 戦略の信号のみに依存すると,全体的なリスクが無視されやすい.

最適化の方向

この戦略は,以下の方向で最適化できます.

  1. MACDのパラメータを最適化して,8日速線,20日遅線に変更し,異なる品種と周期に応じて調整し,指標の感度を改善する.

  2. 上下トレンドの判断を高め,ブリン帯のパラメータを最適化し,波動市場における偽信号率を下げます.

  3. ブリン帯の上下線位置を利用して,リスク管理のための止損ラインを設定する.

  4. 他の指標の枠組みと組み合わせた検証により,戦略の安定性を高めます.

要約する

MACDとブリンベルトに基づくモメンタムトレンド戦略は,指標の組み合わせによって中長線トレンドを追跡し,リスクを下げるために入場をリコールします.パラメータ設定を最適化し,リスクを制御し,トレンドの品種で優れたパフォーマンスを発揮します.しかし,いかなる戦略も完璧ではありません.我々は,多岐にわたる市場環境に適応するために,複数の角度から継続的に最適化および改善する必要があります.

ストラテジーソースコード
/*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)

fast_length = input(title="Fast MA period", type=input.integer, defval=8)
slow_length = input(title="Slow MA period", type=input.integer, defval=21)
src = input(close,"Source")


// ----------MA calculation - ChartArt-------------
smoothinput = input(1, minval=1, maxval=4, title='Moving Average Calculation: (1 = SMA), (2 = EMA), (3 = WMA), (4 = Linear)')

fast_ma = smoothinput == 1 ? sma(src, fast_length):smoothinput == 2 ? ema(src, fast_length):smoothinput == 3 ? wma(src, fast_length):smoothinput == 4 ? linreg(src, fast_length,0):na
slow_ma = smoothinput == 1 ? sma(src, slow_length):smoothinput == 2 ? ema(src, slow_length):smoothinput == 3 ? wma(src, slow_length):smoothinput == 4 ? linreg(src, slow_length,0):na
//----------------------------------------------
macd = fast_ma - slow_ma
p1=plot(macd,"macd signal",color=color.blue)
length = input(40, minval=1)
mult = input(2.0,"BB multiplier")

basis = sma(macd, length)
dev = mult * stdev(macd, length)
plot(basis,"BB basis",color=color.orange)
upper = basis + dev
lower = basis - dev
p2=plot(upper,"BB upper",color=color.red)
p3=plot(lower,"BB basis",color=color.green)

longCondition = crossover(macd, lower)
shortCondition = crossunder(macd, upper)

plotshape(longCondition?lower:na, title="Long", style=shape.xcross, location=location.absolute, text="Long", color=color.green, transp=0, size=size.tiny)
plotshape(shortCondition?upper:na, title="Short", style=shape.xcross, location=location.absolute, text="Short", color=color.red, transp=0, size=size.tiny)
fill(p1,p3,color=macd<lower?color.green:na,transp=90,title="support")
fill(p1,p2,color=macd>upper?color.red:na,transp=90,title="resistance")

if longCondition
    strategy.entry("Long",strategy.long)
if shortCondition
    strategy.entry("Short",strategy.short)