モメンタム移動平均クロスオーバーEMA 9銘柄MACD戦略


作成日: 2024-02-27 16:49:10 最終変更日: 2024-02-27 16:49:10
コピー: 1 クリック数: 649
1
フォロー
1617
フォロワー

モメンタム移動平均クロスオーバーEMA 9銘柄MACD戦略

概要

この戦略は,EMA平均線指標,ボリンジャー帯指標,MACD指標を総合的に使用し,EMA9平均線および30平均線の金叉死叉の実現に基づいて,価格分布範囲と動力の指標を組み合わせて,買入販売のタイミングを判断する.

戦略原則

  1. 3日EMA,9日EMAと30日EMAを計算する.

  2. 20日間の価格の標準差を計算し,標準差の1倍と2倍の範囲のボリンジャー帯を描きます.

  3. 12日,26日MACDと9日信号線を計算する.

  4. 9日EMAが30日EMAを突破し,価格が標準差の1倍以上のボリンジャー帯の上限を超えると,買入シグナルを発する.

  5. 30日EMAを下回って9日EMAを突破し,価格が標準差の1倍以下のボリンジャー帯の下限に達すると,売り信号を発する.

優位分析

この戦略は,均線指標と動態指標を組み合わせて,市場動向とタイミングをよりよく把握することができ,以下の利点があります.

  1. EMA指数は価格の変化に迅速に反応し,市場動向を判断する.MACD指数は判断力があり,偽突破を防止する.

  2. Bollinger Bandsの標準差指数とEMAを組み合わせると,買い物や売却のタイミングをより正確に判断できます.

  3. 複数の指標の組み合わせは互いを補完する. ひとつの突破において,異なる指標は判断を検証する.

リスクと最適化分析

この戦略にはいくつかのリスクがあり,以下の点に注意を向ける必要があります.

  1. EMA平均線配列は調整・最適化され,異なる周期によりトレンドをよりよく捉えることができる.

  2. ボリンジャー帯のパラメータは最適化できる,変数倍数の基準は偽信号をフィルターするのに劣る.

  3. MACD指標のパラメータを最適化して組み合わせ,判断力の効果を向上させることができる.

要約する

この戦略は,EMA平均線指標を統合して,大トレンドを判断し,ボリンジャー帯指標を補助して,強度が大きいときに正確に買い売り点を把握することができる.MACD指標は,トレンド確認を補足し,偽信号を効果的にフィルターすることができる.パラメータを最適化することで,この戦略は,さらに効果を高めることができる.

ストラテジーソースコード
/*backtest
start: 2023-02-20 00:00:00
end: 2024-02-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("emabb_collab", shorttitle="emabb", overlay=true)

// Input parameters
ema3 = input(3, title="3 EMA")
ema9 = input(9, title="9 EMA")
ema30 = input(30, title="30 EMA")
macdShort = input(12, title="MACD Short")
macdLong = input(26, title="MACD Long")
macdSignal = input(9, title="MACD Signal")
length = input.int(20, minval=1)
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
basis = ta.sma(src, length)
dev1 = mult * ta.stdev(src, length)
upper1 = basis + dev1
lower1 = basis - dev1
dev2 = mult * 2 * ta.stdev(src, length)
upper2 = basis + dev2
lower2 = basis - dev2
plot(basis, "Basis", color=#FF6D00)
p1 = plot(upper1, "Upper1", color=#2962FF)
p2 = plot(lower1, "Lower1", color=#2962FF)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))
plot(basis, "Basis", color=#FF6D00)
p3 = plot(upper2, "Upper2", color=#00FF8C)
p4 = plot(lower2, "Lower2", color=#00FF8C)
fill(p3, p4, title = "Background", color=color.rgb(0, 153, 140, 95))

// Calculate EMAs
ema3Value = ta.ema(close, ema3)
ema9Value = ta.ema(close, ema9)
ema30Value = ta.ema(close, ema30)


// Calculate MACD
[macdLine, signalLine, _] = ta.macd(close, macdShort, macdLong, macdSignal)


// Conditions for buy signal
buyCondition = ta.crossover(ema9Value, ema30Value)  and ta.stdev(close, 20) > ta.stdev(close, 20)[1]

//Conditions for sell signal
sellCondition = ta.crossover(ema30Value, ema9Value)  and ta.stdev(close, 20) < ta.stdev(close, 20)[1]

// Plot signals on the chart

plotshape(buyCondition, title='Buy Label', style=shape.triangleup, location=location.belowbar, size=size.normal, text='Buy', textcolor=color.new(color.white, 0), color=color.new(color.green, 0))
plotshape(sellCondition, title='sell Label', style=shape.triangledown, location=location.abovebar, size=size.normal, text='sell', textcolor=color.new(color.white, 0), color=color.new(color.red, 0))

// Plot EMAs
plot(ema3Value, title="3 EMA", color=color.orange)
plot(ema9Value, title="9 EMA", color=color.purple)
plot(ema30Value, title="30 EMA", color=color.red)


if buyCondition
    strategy.entry('Long', strategy.long)
if sellCondition
    strategy.entry('Short', strategy.short)