MACDとEMAのゴールデンクロスとデッドクロス戦略


作成日: 2023-12-28 15:22:14 最終変更日: 2023-12-28 15:22:14
コピー: 2 クリック数: 972
1
フォロー
1621
フォロワー

MACDとEMAのゴールデンクロスとデッドクロス戦略

概要

この戦略は,MACD指標の快線と慢線の交差を計算して入場と出場を判断する.同時に,EMA指標と組み合わせてトレンドの方向を判断する.快線が下から慢線を突破し,MACD値が0以下であるとき,多行する.快線が上から慢線を突破し,MACD値が0以上であるとき,空きする.ストップ損失exitは,その信号が生じた時のEMA値であり,ストップオフは,入場価格を2倍する.

戦略原則

MACDの快線が下から慢線を突破し,MACD値が0以下であるとき,株価の短期移動平均が上昇し始め,動力が強化され始め,買える. MACDの快線が上から慢線を突破し,MACD値が0以上であるとき,株価の短期移動平均が低下し始め,動力が弱まり始め,売れる.

EMA指標は,全体的なトレンドの方向を判断する。EMA値が高くなったら上昇傾向であり,値が低かったら下降傾向である。戦略は,EMAが上昇傾向である場合にのみ多額の取引を行い,EMAが下降傾向である場合に空白を行い,逆向きの取引を避ける。

止損方法は,信号が発生する時のEMA値である。EMAはトレンドをよく判断し,EMA値に設定すると,止損が前期低点または高点に突破される確率を減らすことができる。止損は,入場点の2倍に設定され,利益リスク比は2。

優位分析

この戦略は,MACD指標とEMA指標を組み合わせて,入場タイミングとトレンドの方向をよりよく判断することができる.停止方法は合理的で,追尾殺跌を避けている.利回りリスク比率は2であり,より保守的なパラメータに属している.MACD指標パラメータは調整可能で,市場の変化に柔軟に対応できる.

リスク分析

MACD指標にはavraging lagがあり,指標の転換は価格転換に遅れがちである.策略は特定の入場点を特定することができないため,ある種の盲目性がある.止損は震動的な状況によって容易に触発される.止まりのポイントは早めにまたは遅れて触発される可能性がある.

最適化の方向

  1. MACD指標のパラメータを最適化して,より敏感または安定させる.
  2. 他の指標と組み合わせて,入場時間を判断し,より正確な入場地点を決定します.
  3. 動的調整ストップダメージストップパラメータ。
  4. 資金管理を最適化し,より適切なポジションサイズを決定する.

要約する

この戦略は,MACD指標とEMA指標を総合的に使用して,入場タイミングとトレンドの方向を判断する. 単純な合理的なストップ・ストップの方法を使用する. MACD指標の遅れ,ストップ・ストップのパラメータなどにさらに最適化することができ,より良い戦略効果が得られる.

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

//@version=5
strategy("MACD & EMA 200 Strategy", overlay=true)

// MACD Settings
fastLength = input(12, title="Fast Length")
slowLength = input(26, title="Slow Length")
signalLength = input(9, title="Signal Length")
src = close

[macdLine, signalLine, _] = ta.macd(src, fastLength, slowLength, signalLength)

// 200 EMA
ema200 = ta.ema(src, 200)
plot(ema200, title="200 EMA", color=color.red)

// Long Condition
longCondition = ta.crossover(macdLine, signalLine) and macdLine < 0 and close > ema200
if (longCondition and strategy.position_size <= 0)
    strategy.entry("Long", strategy.long)
    longStopLoss = ema200
    longTakeProfit = close + 2 * (close - ema200)
    strategy.exit("Exit Long", "Long", stop=longStopLoss, limit=longTakeProfit)

// Short Condition
shortCondition = ta.crossunder(macdLine, signalLine) and macdLine > 0 and close < ema200
if (shortCondition and strategy.position_size <= 0)
    strategy.entry("Short", strategy.short)
    shortStopLoss = ema200
    shortTakeProfit = close - 2 * (ema200 - close)
    strategy.exit("Exit Short", "Short", stop=shortStopLoss, limit=shortTakeProfit)