MACD 밸리 탐지기 전략

저자:차오장, 날짜: 2024-04-12 17:01:21
태그:MACDATRRSIEMA

img

전반적인 설명

MACD 밸리 디렉터 전략은 MACD 지표에 기반한 거래 전략이다. 이 전략은 MACD 지표에서 계곡을 감지하여 구매 신호를 생성한다. MACD 지표가 계곡을 형성하면 MACD 값이 -0.4보다 작거나 같고 MACD와 신호 라인의 차이는 0보다 작고 전략은 구매 신호를 발행하고 수익을 취하는 가격을 설정한다.

전략 원칙

MACD 밸리 디렉터 전략의 핵심은 잠재적 인 반전 기회를 포착하기 위해 MACD 지표를 사용하는 것입니다. MACD 지표는 두 개의 기하급수적 이동 평균 (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 지표와 다조건 확인을 활용하는 것과 같은 특정 장점이 있지만 지연, 고정 매개 변수, 명확한 스톱-손실 부족 등 일부 위험과 한계도 있습니다. 전략을 개선하기 위해 동적 스톱-손실, 매개 변수 최적화, 필터링을위한 다른 지표와 결합하고 동적 수익을 얻는 방법을 고려 할 수 있습니다. 전반적으로 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)

관련

더 많은