モメント・ライン・クロスオーバー EMA 9株MACD戦略

作者: リン・ハーンチャオチャン開催日:2024年2月27日 16時49分
タグ:

img

概要

この戦略は,EMA指標,ボリンジャーバンド指標,MACD指標を総合的に利用しています. 9日間のEMAと30日間のEMAの黄金十字と死十字に基づいて,価格分布範囲とモメント指標と組み合わせて購入と販売のタイミングを決定します.

戦略原則

  1. 計算する EMA は 3 日間, 9 日間,および 30 日間です.

  2. 標準偏差を20日以内に計算し,標準偏差の1倍と2倍のボリンジャー帯を描きます.

  3. 12日,26日MACDと9日シグナルラインを計算します

  4. 9日間のEMAが30日間のEMAを上回り,価格が1x標準偏差ボリンジャー帯の上限を超えると,買い信号が発信されます.

  5. 30日間のEMAが9日間のEMAを下回り,価格が1x標準偏差ボリンジャー帯の下限を下回ると,セールシグナルが発信されます.

利点分析

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

  1. EMAインジケーターは市場の動向を決定するために価格変化に迅速に対応できる.MACDインジケーターは誤ったブレイクを防ぐために勢いを判断する.

  2. ボリンジャー・バンド標準偏差指標と 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)






もっと