MACD 히스토그램 전략

저자:차오장, 날짜: 2023-12-25 11:45:10
태그:

img

전반적인 설명

이 전략은 RSI 지표의 MACD를 기반으로 거래 신호를 생성합니다. 그것은 시장에서 과반 구매 및 과반 판매 수준을 판단하는 RSI 지표의 능력과 시장 추세와 동력 변화를 결정하는 MACD의 장점을 결합하여 여러 지표를 사용하여 거래 신호를 제공하는 전략을 설계합니다.

전략 논리

전략은 먼저 RSI 지표를 계산하고, RSI 지표에 기초하여 MACD를 계산합니다. RSI 지표는 시장에서 과잉 구매 및 과잉 판매 조건을 결정할 수 있으며, MACD는 시장 추세와 동력의 변화를 포착합니다.

구체적으로, 전략은 먼저 14주기 RSI 지표를 계산합니다. 그 다음 RSI를 기반으로 MACD 지표가 계산됩니다. 12주기 및 26주기 EMA와 9주기 신호 라인을 포함합니다. MACD 히스토그램이 계산됩니다.

MACD 히스토그램이 0을 넘을 때 구매 신호가 생성됩니다. MACD 히스토그램이 0을 넘을 때 판매 신호가 유발됩니다. 이 방법으로 전략은 과잉 구매 / 과잉 판매 수준을 판단하기 위해 RSI를 활용하며 트렌드 및 추진력 변화를 결정하는 동시에 MACD를 사용하여 거래 신호를 생성합니다.

전략 의 장점

이 전략은 RSI와 MACD 지표의 강점을 결합하여 시장 조건에 대한 더 포괄적인 판단을 가능하게하여 더 신뢰할 수있는 신호를 제공합니다.

  1. 과잉 구매/ 과잉 판매 수준을 판단하기 위해 RSI를 사용하는 것은 주식 선택과 잘못된 파장을 방지하는 데 도움이 됩니다.

  2. 트렌드 및 동력 변화에 대한 MACD의 판단은 거래 신호를 더 명확하게합니다.

  3. RSI와 MACD의 조합은 여러 가지 요소에 기반한 판단으로 잘못된 신호를 필터링하는 데 도움이됩니다.

전략 의 위험

  1. RSI와 MACD의 매개 변수 설정은 전략 성능에 영향을 미치며 조정 및 최적화를 요구합니다.

  2. 여러 지표의 조합은 전략의 복잡성과 오류의 가능성을 증가시킵니다.

  3. MACD 거래 신호는 지연할 수 있으며 다른 지표로 보완되어야 합니다.

최적화 방향

  1. 가장 좋은 매개 변수 조합을 찾기 위해 RSI와 MACD 매개 변수를 최적화합니다.

  2. KDJ, 볼링거 밴드 같은 다른 지표를 통합하여 지표 클러스터를 형성하고 신호 정확도를 향상시킵니다.

  3. 트레이드 당 손실을 제어하기 위해 스톱 로스 전략을 포함합니다.

  4. 입력 및 출력 논리를 최적화하여 충돌 신호를 방지합니다.

결론

이 전략은 RSI와 MACD 지표의 결합된 강점을 활용하여 거래 신호를 형성하여 과잉 구매 / 과잉 판매 수준을 판단하면서 트렌드 및 추진 요인을 고려하여 잘못된 신호를 효과적으로 필터링하고 품질 신호를 제공합니다. 다음 단계는 매개 변수 최적화, 스톱 로스, 더 많은 지표 등을 추가하여 신호 정확성과 신뢰성을 향상시키는 것과 같은 추가 개선이 포함됩니다.


/*backtest
start: 2022-12-18 00:00:00
end: 2023-12-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

strategy(title = "MACD of RSI", overlay = false)
//////////////////////// RSI ///////////////////////////

src = close, len = input(14, minval=1, title="Length")

up = sma(max(change(src), 0), len)

down = sma(-min(change(src), 0), len)

rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

//////////////////////// RSI   //////////////////////////

//////////////// MACD  ////////////////////////////

sourcemacd = rsi

fastLength = input(12, minval=1), slowLength=input(26,minval=1)

signalLength=input(9,minval=1)


fastMA = ema(sourcemacd, fastLength)

slowMA = ema(sourcemacd, slowLength)

macd = fastMA - slowMA

signal = ema(macd, signalLength)

delta=macd-signal

swap1 = delta>0?green:red


plot(delta,color=swap1,style=columns,title='Histo',histbase=0,transp=20)

p1 = plot(macd,color=blue,title='MACD Line')

p2 = plot(signal,color=red,title='Signal')

fill(p1, p2, color=blue)

hline(0)

/////////////////////////MACD  //////////////////////////

// Conditions

longCond = na

sellCond = na

longCond :=  crossover(delta,0)

sellCond :=  crossunder(delta,0)

monthfrom =input(6)

monthuntil =input(12)

dayfrom=input(1)

dayuntil=input(31)

if (  longCond   )

    strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND", comment="BUY")

else

    strategy.cancel(id="BUY")

if ( sellCond   )

    strategy.close("BUY")

더 많은