MACD 谷検出戦略

MACD ATR RSI EMA
作成日: 2024-04-12 17:01:21 最終変更日: 2024-04-12 17:01:21
コピー: 1 クリック数: 719
1
フォロー
1617
フォロワー

MACD 谷検出戦略

概要

MACDバレー検出器戦略は,MACD指数に基づく取引戦略である.この戦略は,MACD指数の谷底を検出することによって買い信号を生成する.MACD指数が谷底を形成し,MACD値は−0.4より小さい場合,MACDと信号ラインの間の差が0より小さい場合,戦略は買い信号を発信し,同時にストップ価格を設定する.

戦略原則

MACDバレー検出器の策略の核心は, MACD指標を使用して,潜在的な反転の機会を捉えることです. MACD指標は,2つの指標の移動平均 ((EMA) の差から計算され,価格の動力の変化を反映しています. MACD指標が谷底を形成するときに,価格の下降動きが弱まる可能性があり,反転の可能性があることを示すものです.

この戦略は,MACDの谷底を判断するために以下の条件を使用します.

  1. MACDの差は前回よりも大きい.
  2. この2つの差値よりも小さいです.
  3. MACDの値が−0.4より小さい場合
  4. MACDは信号線から 0 未満の差で動いています.

上記の条件が同時に満たされると,戦略はMACDの谷底が現れたと考え,買入シグナルを発する.同時に,戦略は,買入価格に加え固定価格差値 ((takeProfitValue) を加えた固定ストップ価格を設定する.

優位分析

  1. MACD指標は,価格の傾向の変化を効果的に捉えるために広く使用されている動態指標である.
  2. MACDの谷底を検知することで,潜在的反転の機会を捉え,価格が下がった後に買い機会を探します.
  3. 策略は,MACDの谷底を確認するために複数の条件を使用し,信号の信頼性を高めます.
  4. 固定ストップ価格を設定することで,リスクをコントロールし,利益をロックすることができます.

リスク分析

  1. MACD指数は遅滞しており,遅延信号を発している可能性があります.
  2. ストラテジーは,高速と遅い移動平均の長さ,MACD信号線の長さなどの固定パラメータの設定に依存し,異なる市場条件下ではうまく機能しない可能性があります.
  3. 戦略には明確な止損メカニズムがないため,市場が継続的に下落すると大きな損失を被る可能性があります.
  4. 固定ストップ価格は,特にトレンドが強い市場では,戦略の収益の可能性を制限する可能性があります.

最適化の方向

  1. ATR指数に基づくストップのようなダイナミック・ストップ・メカニズムを導入することを検討し,リスクをより良く管理する.
  2. MACD指標のパラメータを最適化します.例えば,遺伝的アルゴリズムなどの方法を使用して最適なパラメータの組み合わせを探します.
  3. RSI,ブリン帯などの他の技術指標または市場状態フィルターと組み合わせて,信号の質と信頼性を向上させる.
  4. 動的ストップ戦略を探索する.例えば,市場の波動性や価格行動に基づいてストップレベルを調整して,トレンドの状況から最大限に活用する.

要約する

MACDバレー検出器戦略は,MACD指標の谷底を検出した取引戦略である. MACD指標の谷底をキャプチャすることによって,戦略は潜在的な反転機会を見つけ出し,購入しようとします. 戦略は,信号を確認するために複数の条件を使用し,固定ストップ価格を設定します. この戦略には,広く使用されているMACD指標と複数の条件の確認を使用するなどの利点があるにもかかわらず,いくつかのリスクと制限があります.

ストラテジーソースコード
/*backtest
start: 2024-03-12 00:00:00
end: 2024-04-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © freditansari

//@version=5
//@version=5
strategy("MACD Valley Detector", overlay=true)
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)
MACD = ta.ema(close, fastLength) - ta.ema(close, slowlength)
aMACD = ta.ema(MACD, MACDLength)
delta = MACD - aMACD

rsi = ta.rsi(close, 14)
atr = ta.atr(14)

qty=1

takeProfitValue =7
// stopLossValue = 1


// close[0] < close[1] and close[1] > close[2]
is_valley= delta[0] > delta[1] and delta[1]<delta[2]? 1:0

// plot(is_valley , "valley?")

if(is_valley==1 and MACD<=-0.4 and delta <0)
	takeProfit = close +takeProfitValue
	action = "buy"
    // strategy.entry("long", strategy.long, qty=qty)
    // // strategy.exit("exit", "long", stop=stopLoss, limit=takeProfit)
    // strategy.exit("exit", "long", limit=takeProfit)
    alert('{"TICKER":"'+syminfo.ticker+'","ACTION":"'+action+'","PRICE":"'+str.tostring(close)+'","TAKEPROFIT":"'+str.tostring(takeProfit)+'","QTY":"'+str.tostring(qty)+'"}')

if (ta.crossover(delta, 0))
	stopLoss = low -0.3
    takeProfit = high +0.3
	strategy.entry("MacdLE", strategy.long,qty=qty, comment="MacdLE")
	strategy.exit("exit long", "MacdLE", limit=takeProfit)
	// strategy.exit("exit long", "MacdLE", stop=stopLoss, limit=takeProfit)
if (ta.crossunder(delta, 0))
	stopLoss = high + 0.3
    takeProfit = low - 0.3
	strategy.entry("MacdSE", strategy.short,qty=qty, comment="MacdSE")
	strategy.exit("exit long", "MacdLE", limit=takeProfit)

	// strategy.exit("exit short", "MacdSE", stop=stopLoss, limit=takeProfit)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)