동적 이동 평균 및 MACD 교차 전략


생성 날짜: 2024-02-06 14:29:23 마지막으로 수정됨: 2024-02-06 14:29:23
복사: 0 클릭수: 747
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

동적 이동 평균 및 MACD 교차 전략

개요

이 전략은 MACD의 0축 교차와 결합하여 빠른 라인 EMA (), 느린 라인 EMA (), 느린 라인 EMA (), 느린 라인 EMA (), 느린 라인 EMA (), 느린 라인 EMA (), 느린 라인 EMA (), 느린 라인 EMA (), 느린 라인 EMA (), 느린 라인 EMA (), 느린 라인 EMA (), 느린 라인 EMA (), 느린 라인 EMA (), 느린 라인 EMA (), 느린 라인 EMA (), 느린 라인 EMA (), 느린 라인 EMA (), 느린 라인 EMA (), 느린 라인 EMA (), 느린 라인 EMA (), 느린 라인 EMA (), 느린 라인 EMA (), 느린 라인 EMA (), 느린 라인 EMA (), 느린 라인 EMA (), 느린 라인 EMA (), 느린 라인 EMA (), 느린 라인 EMA (), 느린 라인 EMA ().

전략 원칙

이 전략은 크게 두 가지 기술 분석 지표에 기반을 두고 있습니다.

  1. EMA 평균선 교차. 빠른 선 EMA (3), 느린 선 EMA (11) 및 다시 느린 선 EMA (18) 의 교차 판단 트렌드, 그리고 출전 출전 신호로 사용한다.

  2. MACD 지표와 그 0축 교차. ◇ MACD는 이차값 ((DIFF) 과 DEA로 구성된다. ◇ DIFF는 빠른 선의 EMA ((3) 를 빼고 느린 선의 EMA ((11) 를 구성한다. ◇ DEA는 MACD의 EMA ((27) 를 구성한다. ◇ MACD>0은 다중을 나타내며, MACD은 공백을 나타낸다. ◇ 0축 교차는 입출 신호로 사용된다.

EMA 교차와 MACD 제로 축 교차의 조합에 따라, 세 번의 출전 기회를 설정하고 두 번의 출전 기회를 설정합니다:

  1. MACD는 0축 위와 상향으로 교차하여 처음으로 더 많은 기회를 제공합니다.
  2. 빠른 라인 EMA(3) 에 느린 라인 EMA(11) 을 통과하여 두 번째 기회로 더 많은 기회를 얻습니다.
  3. 빠른 라인 EMA ((3) 에서 느린 라인 EMA ((18) 을 통과하여 3번째 풀 포지션에 더 많은 기회를 제공합니다.
  4. 빠른 라인 EMA ((3) 아래로 느린 라인 EMA ((11) 를 통과하여 1차 청산 공백 기회를 제공합니다.
  5. MACD는 제로 축 아래로 그리고 아래로 가로질러 두 번째 청산 기회

전체적으로 이 전략은 쌍 EMA 교차 시스템과 MACD 지표를 통합하여 평균선 변수와 MACD 변수를 동적으로 조정하여 전략의 수익성을 향상시킬 수 있습니다.

전략적 이점

  1. EMA 평평선 교차와 MACD 지표의 장점을 최대한 활용하여, 종합적인 이중 지표 판단을 통해 정확도를 높였다.

  2. 세 번 더 많은 기회를 설정하고, 두 번 청산 기회를 설정하여, 전략 거래의 빈도를 증가시키고, 수익의 공간을 확장한다.

  3. 동적 파라미터를 최적화 할 수 있는 공간이 넓다. 빠른 라인 EMA, 느린 라인 EMA, 0축 EMA 및 MACD 길이는 모두 최적화 조정할 수 있다.

  4. 전략 논리는 명확하고 이해하기 쉽고, 디비팅 및 최적화를 용이하게 합니다.

전략적 위험

  1. EMA 교차와 MACD 지표는 일정한 오차 비율을 생성하여 불필요한 손실을 초래할 수 있다.

  2. 거래 빈도가 높고, 매번 막는 손실이 적고, 손실이 누적될 위험이 있다.

  3. 매개 변수를 최적화하는 것은 매우 어렵고, 잘못된 최적화는 역사 데이터에 맞지 않을 수 있다.

  4. 거래 비용의 영향을 충분히 고려해야 합니다.

위험성:

  1. 합리적인 스톱로스 설정으로 단편 손실을 줄여라.

  2. 너무 잘 어울리지 않도록 매개 변수를 적절하게 조정하십시오.

  3. 거래 빈도 감소와 같은 비용의 영향을 고려하십시오.

전략 최적화 방향

  1. 다른 지표 테스트를 대체하십시오. 예를 들어, 브린 밴드, KDJ 등.

  2. EMA 평균선 교차의 변수를 최적화한다: 빠른 선 EMA와 느린 선 EMA의 길이 변수를 변경한다.

  3. MACD의 최적화 변수: MACD의 DIFF와 DEA 계산 EMA 길이를 변경한다.

  4. 더 많은 손실을 방지하는 전략: 거래 수, 시간, 이동 손실 등의 손실을 방지합니다.

  5. 거래비용의 영향을 고려하고, 출석 수를 조정한다.

요약하다

이 전략은 이중 EMA 교차 시스템과 MACD 지표의 조합을 통해 거래 빈도 높고 수익 잠재력을 가진 동적 파라미터 전략을 구축한다. 동시에 전략 논리는 간단하고 명확하며 이해하기 쉽고 최적화 조정이다. 그러나 또한 합리적인 스톱스, 과잉 모색 방지 등의 방법으로 대응해야하는 특정 잘못된 보도 위험과 파라미터 최적화 어려움이 있습니다.

전략 소스 코드
/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-05 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("MACD+EMA crossovers Strategy custom",initial_capital=10000,max_bars_back=150,commission_type=strategy.commission.percent , commission_value=0.1, shorttitle="MACD+EMAcross",pyramiding = 10,default_qty_type=strategy.percent_of_equity,default_qty_value=33,overlay=false)

short = ema(close,3)
long = ema(close, 11)
long2 = ema(close, 18)
//plot(short, color = red, linewidth = 4)
//plot(long, color = blue, linewidth = 4)
//plot(long2, color = green, linewidth = 4)

isCross1 = crossover(short, long)
isCross2 = crossover(short, long2)
isCrossSell = crossunder(short, long)
//isCross3 = crossover(long, long2)

//plotshape(isCross1 and not isCross2, color=lime, style=shape.arrowup, text="1st in",size = size.tiny, location = location.belowbar)
//plotshape(isCross2 , color=lime, style=shape.arrowup, text="2nd in",size = size.tiny, location = location.belowbar)

//plotshape(isCross3 , color=lime, style=shape.arrowdown, text="All in",size = size.normal, location = location.abovebar)

//plotshape(isCrossSell , color=red, style=shape.arrowdown, text="SELL",size = size.small, location = location.abovebar)

fastLength = input(3)
slowlength = input(11)
MACDLength = input(27)

MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength) //signal
delta = MACD - aMACD // histograma

strategy.entry("MacdLE 1st in", strategy.long, comment="MacdLE 1st in",when=crossover(delta, 0))

strategy.entry("2nd in", strategy.long, comment="2nd in",when=isCross1)

strategy.entry("all in", strategy.long, comment="all in",when=isCross2)

strategy.close("2nd in",when=isCrossSell) 
strategy.close("all in",when=isCrossSell)
//strategy.close("2nd in",when=crossunder(delta, 0)) 
//strategy.close("all in",when=crossunder(delta, 0))
strategy.close("MacdLE 1st in",when=crossunder(delta, 0)) 
    
histColour = (delta > 0) ? green : (delta < 0) ? red :  #4169E1
    
plot(MACD,color=red,linewidth=2)
plot(aMACD,color=blue,linewidth=2)
plot(delta,style=histogram, color=histColour, linewidth=10)
plot(0,color=white)