모멘텀 크로스오버 이동 평균 및 MACD 필터 하이킨-아시 촛불 전략

저자:차오장, 날짜: 2024-01-02 12:18:03
태그:

img

전반적인 설명

이 전략은 트렌드를 따르는 전략을 구축하기 위해 이동 평균 크로스오버 신호와 필터링을 위한 MACD 지표와 결합한 하이킨-아시 촛불 기법을 활용합니다. 이 전략은 다른 시간 프레임에서 시장 트렌드를 캡처하여 이동 평균 크로스오버를 통해 거래 신호를 생성하고 MACD 지표를 통해 잘못된 신호를 필터링하여 백테스트에서 높은 수익성을 입증할 수 있습니다.

전략 논리

이 전략은 주로 세 가지 주요 기술 지표를 활용합니다.

  1. 하이킨-아시 촛불. 그것은 폐쇄 가격을 수정하여 데이스 촛불 바를 구성하여 과도한 시장 소음을 필터링하여 진정한 가격 추세를 더 명확하게 표시 할 수 있습니다.

  2. 기하급수적인 이동 평균 (EMA). 빠른 EMA는 단기 트렌드를 포착하고 느린 EMA는 장기적인 트렌드 방향을 판단합니다. 빠른 EMA가 느린 EMA를 넘을 때 구매 신호가 생성됩니다. 빠른 EMA가 느린 EMA를 넘을 때 판매 신호가 생성됩니다.

  3. MACD 지표. 빠른 EMA와 느린 EMA를 결합합니다. MACD 라인이 신호 라인의 위에있을 때 상승 신호입니다. 아래에있을 때 하락 신호입니다.

이 전략의 거래 신호는 빠른 EMA와 느린 EMA의 황금 / 죽은 십자가에서 온다. 잘못된 신호를 필터링하기 위해 MACD 지표가 보조 판단을 위해 도입됩니다. MACD가 EMA 크로스오버와 일치하는 신호를 내리는 경우에만 최종 거래 신호가 활성화되며 이는 잘못된 거래의 확률을 크게 감소시킵니다.

특히, 빠른 EMA가 느린 EMA (황금 십자) 를 넘어서고 MACD 라인이 신호 라인 (승등 신호) 를 동시에 넘어가면 구매 신호가 생성됩니다. 빠른 EMA가 느린 EMA (죽은 십자) 를 넘어서고 MACD 라인이 신호 라인 (하락 신호) 을 동시에 넘어가면 판매 신호가 생성됩니다.

이 이동 평균 크로스오버와 MACD 필터링의 조합은 시장의 주요 전환점을 효과적으로 식별하고 그에 따라 가격 추세를 파악 할 수 있습니다.

장점

이 전략은 다음과 같은 주목할 만한 장점을 가지고 있습니다.

  1. 트렌드 신호를 캡처하는 확률이 크게 향상되었습니다. 하이킨-아시 기법은 더 명확한 트렌드 판단을 제공하며 두 EMA의 크로스오버 신호의 강도도 강력합니다. MACD 필터를 통합한 후 신뢰도는 더욱 높아집니다.

  2. 상대적으로 작은 마감 위험. MACD는 보조 지표로 작용하여 어느 정도 스톱 로스 위험을 완화하고 원치 않는 청산 손실을 효과적으로 줄일 수 있습니다.

  3. 더 조정 가능한 매개 변수. 하이킨-아시 촛불의 기간, 이동 평균 시스템의 빠른 / 느린 EMA, MACD의 매개 변수 등을 시장 조건에 따라 조정하여 전략을 더 적응시킬 수 있습니다.

  4. 간단하고 명확한 구현. 가격을 표시하기 위해 하이킨-아시 촛불을 사용하여 결정에 대한 일반적인 지표로 지원하여 이해하기 쉬운 깔끔하고 간결한 코드로 프로그래밍하기가 쉽습니다.

  5. 자본 사용 효율성이 높습니다. 트렌드를 따라가면 전략은 대부분의 경우 자본 이동을 주요 시장 방향과 조화시키고 수익을 더 효과적으로 창출 할 수 있습니다.

위험성

이 전략은 또한 다음과 같은 잠재적 위험을 가지고 있습니다.

  1. 시장에서 심각한 위프사우가 큰 손실로 이어질 수 있습니다. 가격이 단기간에 크게 격차되거나 빠르게 역전될 때, 중단 손실 조치는 실패 할 수 있으며 예상보다 훨씬 더 많은 손실이 발생할 수 있습니다.

  2. MACD의 잘못된 판단 가능성 MACD는 보조 지표로서 잘못된 호출을 할 수도 있으며, 그 결과 전략이 잘못된 위치를 설정하거나 닫을 수 있습니다.

  3. 유연하지 않은 매개 변수 설정 고정 매개 변수 조합은 끊임없이 변화하는 시장에 적응하지 못할 수 있으므로 좋은 거래 기회를 놓칠 수 있습니다.

  4. 잠재적으로 높은 거래 빈도 트렌드를 따르는 방법은 빈번한 거래를 유발할 수 있으며 비용과 미끄러짐 손실을 증가시킬 수 있습니다.

위의 위험을 완화하고 줄이기 위해 다음과 같은 조치를 취할 수 있습니다.

  1. 단일 거래에서 손실을 제한하기 위해 스톱 로스 포인트를 설정하십시오. 또한 트렌드를 지나치게 추구하고 포지션 크기를 제어하는 것을 피하십시오.

  2. 잘못된 신호 확률을 줄이기 위해 MACD 매개 변수를 조정합니다. 멀티 확인을 위해 더 많은 지표를 도입 할 수도 있습니다.

  3. 매개 변수 최적화 메커니즘을 구축. 더 높은 적응성을 위해 매개 변수 조합을 자동 조정하기 위해 기계 학습 등을 사용합니다.

  4. 거래 빈도를 줄이기 위해 거래 신호의 트리거 조건을 적절히 완화하거나 최소한의 가격 변화 문턱을 설정합니다.

최적화

큰 잠재력은 다음을 포함하여 전략의 추가 최적화에 있습니다.

  1. 하이킨-아시 촛불 기간을 최적화합니다. 시장 트렌드를 가장 잘 보여주는 것을 찾기 위해 더 길거나 짧은 기간을 테스트하십시오.

  2. 이동 평균 시스템의 매개 변수를 조정합니다. 최적의 매개 변수 집합을 발견하기 위해 빠른 / 느린 EMA의 기간을 수정합니다.

  3. MACD의 다중 매개 변수 최적화. 우수한 구성을 찾기 위해 빠른 / 느린 EMA와 MACD 신호 라인의 매개 변수를 정렬하십시오.

  4. 위험 관리 모듈을 강화합니다. 더 과학적인 스톱 로스/이익 취득 규칙을 개발하고, 포지션 사이즈, 자본 관리 등을 통합하십시오.

  5. 더 많은 보조 지표를 도입합니다. 여러 요소 확인을 위해 KD, RSI와 같은 다른 지표를 추가하여 신호 품질을 향상시킵니다.

  6. 머신러닝 기술을 활용하고 신경망, 유전자 알고리즘 등을 활용하여 전략 매개 변수를 실시간으로 최적화하여 더 높은 적응력을 확보합니다.

기술 지표의 반복적 조합, 지속적인 매개 변수 최적화, 더 강력한 위험 관리 모듈 등으로 전략의 상당한 성과 증진이 더 안정적이고 효율적인 수익성을 기대할 수 있습니다.

결론

이 전략은 하이킨-아시 촛불과 이동 평균 크로스오버를 결합하여 시장 트렌드를 포착하고, 높은 신뢰성 전환점과 거래 신호를 감지하기 위해 MACD 필터레이션에 도움을줍니다. 백트 테스트 된 결과는 탁월하며, 높은 승률, 낮은 드로다운, 높은 조정성 등의 가장자리가 있습니다. 한편, 위험 통제는 극단적인 시장 움직임의 헤지 영향에도주의를 기울여야합니다. 지속적인 개선과 최적화로 전략은 매우 효과적인 정량적 거래 전략으로 큰 잠재력을 보여줍니다.


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

//@version=2
//Heikin Ashi Strategy  V1 by nachobuey

strategy("Heikin Ashi Strategy  V2",shorttitle="HAS V2",overlay=true)
res = input(title="Heikin Ashi Candle Time Frame",  defval="15")
hshift = input(0,title="Heikin Ashi Candle Time Frame Shift")
//res1 = input(title="Heikin Ashi EMA Time Frame", type=resolution, defval="180")
res1   = input(title="Time frame (Minutes. Not lower than chart)",defval="300")
mhshift = input(0,title="Heikin Ashi EMA Time Frame Shift")
fama = input(16,"Heikin Ashi EMA Period")
test = input(0,"Heikin Ashi EMA Shift")
sloma = input(21,"Slow EMA Period")
slomas = input(0,"Slow EMA Shift")
macdf = input(false,title="With MACD filter")
res2 = input(title="MACD Time Frame",  defval="60")
macds = input(1,title="MACD Shift")




//Heikin Ashi Open/Close Price
ha_t = heikinashi(syminfo.tickerid)
ha_open = request.security(ha_t, res, open[hshift])
ha_close = request.security(ha_t, res, close[hshift])
mha_close = request.security(ha_t, res1, close[mhshift])

//macd
[macdLine, signalLine, histLine] = macd(close, 12, 26, 9)
macdl = request.security(ha_t,res2,macdLine[macds])
macdsl= request.security(ha_t,res2,signalLine[macds])

//Moving Average
fma = ema(mha_close[test],fama)
sma = ema(ha_close[slomas],sloma)
plot(fma,title="MA",color=lime,linewidth=2,style=line)
plot(sma,title="SMA",color=red,linewidth=2,style=line)


//Strategy
golong =  crossover(fma,sma) and (macdl > macdsl or macdf == false )
goshort =   crossunder(fma,sma) and (macdl < macdsl or macdf == false )


strategy.entry("Long",strategy.long,when = golong)
strategy.entry("Short",strategy.short,when = goshort)

plotchar(golong,char="L", color=green)
plotchar(goshort,char="S", color=red)

alertcondition(golong, "HAS GO LONG", "OPEN LONG")
alertcondition(goshort, "HAS GO SHORT", "OPEN SHORT")



더 많은