더블 이동 평균 골든 크로스와 데스 크로스 추세 추적 전략


생성 날짜: 2023-11-13 10:55:09 마지막으로 수정됨: 2023-11-13 10:55:09
복사: 1 클릭수: 688
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

더블 이동 평균 골든 크로스와 데스 크로스 추세 추적 전략

개요

쌍평평선 금포크 사포크 전략은 비교적 흔한 트렌드 추적 전략이다. 이 전략은 두 개의 다른 주기적 평균선을 사용하여, 그들의 교차상황에 따라 거래의 흐름을 판단하고 거래한다. 구체적으로, 짧은 주기적 평균선에서 긴 주기적 평균선을 통과할 때, 금포크 신호를 생성하여, 거래가 상승 추세로 들어갔다고 생각하면, 구매할 수 있다. 짧은 주기적 평균선 아래에서 긴 주기적 평균선을 통과할 때, 사포크 신호를 생성하여, 거래가 하향 추세로 들어갔다고 생각하면, 판매할 수 있다.

전략 원칙

이 전략은 주로 6주기, 14주기, 25주기 및 80주기 EMA 평균선을 사용한다. 전략은 먼저 이 4개의 평균선의 값을 계산하고, 그 다음 6주기 EMA와 다른 3개의 평균선의 교차상황에 따라 시장의 움직임을 판단한다.

6주기 EMA에서 14주기 또는 25주기 EMA를 통과하고, 6주기 EMA가 80주기 EMA보다 높을 때, 구매 신호가 발생한다. 이것은 단기 평균선이 중기 및 장기 평균선을 돌파하고 있으며, 시장이 상승 추세로 들어갈 수 있으므로 구매를 고려할 수 있다.

반대로, 6주기 EMA가 14주기 또는 25주기 EMA를 통과하고 80주기 EMA보다 낮으면 판매 신호가 발생한다. 이것은 단기 평균선이 중기 및 장기 평균선으로 돌파되어 가격이 하향 추세에 들어갈 수 있으므로 판매를 고려할 수 있음을 나타냅니다.

거래 신호가 발생하면, 전략은 입장을 구매하거나 판매합니다. 또한, 전략은 중지 손실 논리를 설정합니다. 손실이 설정된 중지 손실 비율을 초과하면 전략은 위험을 제어하기 위해 입장을 종료합니다.

우위 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 평균선 교차 판단을 사용하는 경향은 보다 성숙하고 신뢰할 수 있는 기술 지표이다.

  2. 동시에 여러 주기 평균선과 결합하여 잘못된 판단의 확률을 줄일 수 있습니다. 6 주기 평균선은 거래 신호를 생성하기 위해, 14 주기, 25 주기 평균선은 확인을 위해, 80 주기 평균선은 전반적인 추세를 판단합니다.

  3. 손실의 위험을 통제하기 위해 손실을 설정하면 자금을 효과적으로 보호 할 수 있습니다.

  4. 전략적 논리는 간단하고 명확하며, 이해하기 쉽고, 검증하기 쉽습니다.

  5. 시장 상황에 따라 평균선 주기를 조정하고 전략 매개 변수를 최적화할 수 있다.

위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. 흔들리는 상황에서, 평행선은 무효 교차를 여러 번 생성할 수 있으며, 너무 많은 무효 거래를 가져옵니다. 평행선 주기 최적화를 적절히 조정할 수 있습니다.

  2. 고정 손실 방식은 너무 기계적일 수 있으며, 추적 손실 또는 동적 손실로 변경될 수 있다.

  3. 큰 폭의 폭파로 인해 정지가 뚫릴 위험이 있다. 추가 조건과 함께 정지를 건너뛰는 판단이 가능하다.

  4. 단기 가격 변동에 반응할 수 없다. 다른 지표와 결합하여 거래 신호를 필터링할 수 있다.

  5. 매개 변수 최적화 공간은 제한된다. 자기 적응평등선으로 개선할 수 있다.

최적화 방향

이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.

  1. 다른 평균 주기 조합을 테스트하여 시장에 더 민감한 주기 파라미터를 찾습니다.

  2. 스포드 메커니즘을 개선하고, 트레이킹 스포드 또는 동적 스포드를 사용하여 스포드 스포드가 뚫리는 가능성을 줄입니다.

  3. KDJ, MACD 등과 같은 다른 지표들을 필러하기 위해 추가하여, 흔들림 중에 너무 많은 무효 거래가 발생하지 않도록 한다.

  4. 진입 조건을 최적화하고, 정평선이 완전히 교차한 후에 다시 진입하여, 잘못된 신호를 줄인다.

  5. 자기 적응 평균선을 사용하여 시장의 변동에 따라 평균선 주기 변수를 자동으로 조정한다.

  6. 새로운 포지션 관리 메커니즘, 시장 상황에 따라 포지션을 조정한다.

  7. 스티커 탈퇴 메커니즘을 추가한다.

요약하다

요약하자면, 이 쌍평선 금叉死叉 전략은 간단한 평선 교차 원칙을 통해 시장 추세를 판단하고, 구현하기 쉽고, 위험은 제어할 수 있으며, 중·장기 추세를 추적하는 데 적합하다. 그러나 이 전략은 최적화 할 수있는 공간이 넓고, 입시 조건, 손해 차단 방법, 지표 필터링 등에서 개선 할 수 있으며, 전략은 시장 환경에 더 적합하다. 전체적으로, 이 전략은 기본 추세로 전략에 따라, 장점과 위험 모두 제어 가능한 범위에서 학습하고 연습할 가치가 있다.

전략 소스 코드
/*backtest
start: 2022-11-06 00:00:00
end: 2023-11-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = " bhramaji EMA Cross Strategy", shorttitle = "EMA Cross",calc_on_order_fills=true,calc_on_every_tick =true, initial_capital=21000,commission_value=.25,overlay = true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
StartYear = input(2018, "Backtest Start Year")
StartMonth = input(1, "Backtest Start Month")
StartDay = input(1, "Backtest Start Day")
UseStopLoss = input(true,"UseStopLoss")


stopLoss = input(20, title = "Stop loss percentage(0.1%)")


maSource   = input(defval = close, title = "MA Source")
maLength6   = input(defval = 6, title = "MA Period 6", minval = 1)
maLength14  = input(defval = 14, title = "MA Period 14", minval = 1)
maLength25  = input(defval = 25, title = "MA Period 25", minval = 1)
maLength80  = input(defval = 80, title = "MA Period 80", minval = 1)

ma6 = ema(maSource, maLength6)
ma14 = ema(maSource, maLength14)
ma25 = ema(maSource, maLength25)
ma80 = ema(maSource, maLength80)

ma_6_plot = plot(ma6 , title = "MA  6", color = red, linewidth = 2, style = line, transp = 50)
ma14_plot = plot(ma14, title = "MA 14", color = green, linewidth = 2, style = line, transp = 50)
ma25_plot = plot(ma25, title = "MA 25", color = blue, linewidth = 2, style = line, transp = 50)
ma80_plot = plot(ma80, title = "MA 80", color = silver, linewidth = 2, style = line, transp = 50)


longEMA = (crossover(ma6, ma14) or crossover(ma6, ma25)) and (ma6>ma80) 
exitLong = (crossunder(ma6, ma14) or crossunder(ma6, ma25)) 

shortEMA = (crossunder(ma6, ma14) or crossunder(ma6, ma25)) and (ma6< ma80)
exitShort =(crossover(ma6, ma14) or crossover(ma6, ma25))

if (longEMA)
    strategy.entry("LongId", strategy.long)
 
if (shortEMA)
    strategy.entry("ShortId", strategy.short)

if (UseStopLoss)
    strategy.exit("StopLoss", "LongId", loss = close * stopLoss / 1000 / syminfo.mintick)
    strategy.exit("StopLoss", "ShortId", loss = close * stopLoss / 1000 / syminfo.mintick)