추세 예측을 기반으로 한 이중 이동 평균 전략


생성 날짜: 2024-02-02 17:39:54 마지막으로 수정됨: 2024-02-02 17:39:54
복사: 0 클릭수: 572
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

추세 예측을 기반으로 한 이중 이동 평균 전략

개요

트렌드 예측 쌍평평선 전략은 가격 트렌드 반전 전에 트렌드 변화를 예측하려는 전략이다. LazyBear의 WaveTrend 지표에 기반하여 확장한다. 이 전략은 가격 트렌드를 식별하고 곡선으로 채워진 시각적 효과를 통해 구매 및 판매 신호를 표시한다.

전략 원칙

이 전략은 LazyBear의 WaveTrend 지표를 기반으로 합니다. WaveTrend은 매우 훌륭한 트렌드 추적 지표입니다. 이 전략은 이를 기반으로 확장 최적화를 수행합니다. 주요 단계는 다음과 같습니다.

  1. 평균 HLC값을 계산합니다.
  2. 평균 EMA 가격을 계산하기
  3. 가격의 절대적 편차의 EMA를 계산합니다.
  4. 0계 조정 지수를 계산한다
  5. 동향의 EMA를 계산합니다.
  6. 평균을 계산해 봅시다.

이러한 처리를 통해 가격의 무작위적인 변동을 필터링하여 보다 명확한 트렌드를 식별할 수 있다. 급속한 평행선의 교차는 구매 및 판매 신호를 발송하기 위해 사용될 수 있다.

우위 분석

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

  1. 가격 동향을 효과적으로 파악할 수 있습니다.
  2. 신호를 생성하여 트렌드 반전을 미리 예측할 수 있습니다.
  3. 곡선을 통해 트렌드를 명확하게 시각화하십시오.
  4. 파라미터를 최적화 할 수있는 넓은 공간, 다양한 품종과 주기에 따라 조정할 수 있습니다.

위험 분석

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

  1. 모든 기술 지표 전략과 마찬가지로, 가격의 급격한 변동에 실패할 위험이 있습니다.
  2. 잘못 설정된 파라미터는 가짜 신호를 유발할 수 있습니다.
  3. 신호가 지연되면 손실이 발생할 수 있습니다.

이러한 위험은 변수를 조정하거나 다른 지표와 결합하여 완화할 수 있습니다.

최적화 방향

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

  1. 더 많은 품종과 주기를 위한 변수 조정
  2. 손해 방지 전략을 강화하고 손실 위험을 통제합니다.
  3. 다른 지표와 결합하여 신호의 정확도를 향상시킵니다.
  4. 트렌드를 판단하고 신호를 내보내는 데 도움을 주는 기계 학습 모델을 추가합니다.

요약하다

전체적으로 트렌드를 예측하는 쌍평선 전략은 매우 유망한 전략이다. 가격 트렌드를 효과적으로 식별하고, 트렌드의 변화를 미리 예측하는 시도를 할 수 있다. 약간의 최적화와 개선을 통해 이 전략은 강력한 양적 거래 시스템이 될 수 있다. 거래 논리와 명확한 시각적 효과의 단순함은 또한 학습하고 연구할 가치가 있는 전략이 된다.

전략 소스 코드
/*backtest
start: 2023-01-26 00:00:00
end: 2024-02-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("BreakingDawn [JackTz]", overlay = true)

// WaveTrend [LazyBear]
// ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░

n1 = input(10, "Channel Length")
n2 = input(21, "Average Length")
 
WTfactor = input(4, title=" WTFactor")
averageHlc3 = sum(hlc3, WTfactor) / WTfactor
ap = averageHlc3 
esa = ema(ap, n1)
d = ema(abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ema(ci, n2)
wt1 = tci
wt2 = sma(wt1,4)
wtAvg = wt1-wt2
wtPeriodAvgVal = wtAvg * 45 + averageHlc3
wtPeriodAvg2Val = wtAvg * 25 + averageHlc3

buy = wtAvg[1] < wtAvg and wtAvg < close
sell = wtAvg[1] > wtAvg

fillColor = buy ? color.green : color.red
control = plot(wtPeriodAvgVal, color = fillColor)
signal = plot(wtPeriodAvg2Val, color = fillColor)
fill(signal, control, color = fillColor)

if year > 2016
    strategy.entry("buy", strategy.long, when = buy)
    strategy.close("buy",when = sell)