MACD 밸리 감지 전략

MACD ATR RSI EMA
생성 날짜: 2024-04-12 17:01:21 마지막으로 수정됨: 2024-04-12 17:01:21
복사: 1 클릭수: 719
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

MACD 밸리 감지 전략

개요

MACD 밸리 디텍터 전략은 MACD 지표에 기반한 거래 전략이다. 이 전략은 MACD 지표의 골짜기를 탐지하여 구매 신호를 생성한다. MACD 지표가 골짜기를 형성하고 MACD 값이 -0.4보다 작고, MACD와 신호 라인의 차이는 0보다 작으면, 전략은 구매 신호를 발송하며 동시에 정지 가격을 설정한다.

전략 원칙

MACD 밸리 디텍터 (MACD Valley Detector) 전략의 핵심은 MACD 지표를 사용하여 잠재적인 반전 기회를 잡는 것입니다. MACD 지표는 두 지표의 이동 평균 (EMA) 의 차로 계산되어 가격의 동력 변화를 반영합니다. MACD 지표가 계곡 바닥을 형성 할 때, 가격의 하향 움직임이 약해질 수 있음을 나타냅니다. 반전이 있을 가능성이 있습니다.

이 전략은 아래의 조건들을 사용하여 MACD 바닥을 판단합니다.

  1. 현재 MACD와 신호선 사이의 차이는 이전 차보다 크다.
  2. 이 두가지의 차이는
  3. MACD 값은 -0.4보다 작습니다.
  4. MACD와 신호선은 0보다 작습니다.

위 조건이 동시에 충족되면, 전략은 MACD 하위가 나타났다고 생각하고 구매 신호를 발송합니다. 동시에, 전략은 고정된 스톱 가격을 설정합니다. 즉, 구매 가격에 고정된 가격 차이가 추가됩니다.

우위 분석

  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)