리소스 로딩... 로딩...

슈퍼트렌드 이중 이동 평균 크로스오버 전략

저자:차오장, 날짜: 2023-09-19 21:38:06
태그:

전반적인 설명

이 전략은 슈퍼트렌드 지표를 기반으로 하는 이중 이동 평균 크로스오버 전략이다. 슈퍼트렌드는 두 개의 이동 평균으로 구성되며, 그들의 크로스오버는 구매 및 판매 신호로 작용한다. 전략은 트렌드 다음 범주에 속한다.

전략 논리

  1. 빠른 라인 demaFast를 계산합니다, 공식: 2*ema5 - ema(ema5,5)

  2. 느린 직선 demaSlow을 계산합니다, 공식: 2*ema2 - ema(ema2,2)

  3. 빠른 라인은 5 일간의 EMA로 구성되어 있으며 가격 변화에 더 반응합니다. 느린 라인은 2 일간의 EMA로 구성되어 있으며 반응에 지연합니다.

  4. 빠른 선이 아래쪽에서 느린 선 위에 넘어가면 구매 신호를 생성합니다. 위에서 아래쪽을 넘어가면 판매 신호를 생성합니다.

  5. 트렌드 변화를 결정하기 위해 서로 다른 반응 속도를 가진 두 줄의 크로스오버를 사용하는 것은 트렌드를 따르는 전형적인 전략입니다.

  6. 구매 및 판매 신호를 기반으로 거래를 실행합니다.

핵심 논리는 간단하고 명확합니다. MA 매개 변수를 조정함으로써 다른 사이클 시장에 적응 할 수 있습니다.

이점 분석

  1. 트렌드 변화를 결정하기 위해 듀얼 MA 크로스오버를 사용하는 것은 간단하고 실용적인 기술입니다.

  2. 빠른 및 느린 라인 매개 변수는 다양한 기간을 최적화하기 위해 조정됩니다.

  3. 명확한 신호와 간단한 실행

  4. 전략 검증을 위한 백테스트 기능을 완료합니다.

  5. 직관적인 시각 인터페이스로 크로스오버를 보여준다.

  6. 논리를 이해하기 쉽고 초보자도 알 수 있습니다.

위험 분석

  1. 듀얼 MA 크로스오버는 지연 신호 또는 잘못된 신호를 가질 수 있습니다. 매개 변수를 조정하거나 필터를 추가하여 개선 할 수 있습니다.

  2. 범위를 제한하거나 불안정한 시장에서 효과적이지 않습니다. 손실을 멈추는 경향이 있습니다. 트렌드 메커니즘을 추가 할 수 있습니다.

  3. 백테스트에서 최적화 공간이 제한되어 실제 거래 효과는 테스트되지 않았습니다.

  4. 이윤에 대한 거래 비용의 영향을 지켜봐야 합니다.

최적화 방향

  1. 최적의 일치를 찾기 위해 다양한 MA 길이 조합을 테스트합니다.

  2. 신호 필터링을 위한 다른 지표, 예를 들어 KDJ를 추가합니다.

  3. 단일 거래 손실 금액을 제어하기 위해 스톱 로스 메커니즘을 추가합니다.

  4. 다른 시장 조건에 대해 다른 비율을 사용하기 위해 포지션 크기를 추가합니다.

  5. 자금 관리를 최적화하고 수익률과 같은 위험 지표를 설정합니다.

  6. 매개 변수 최적화나 신호 예측을 위한 머신러닝 알고리즘을 고려해보세요.

요약

이 슈퍼트렌드 듀얼 MA 전략은 다른 주기에 적응할 수있는 간단한 추세를 따르는 시스템입니다. 다른 기술적 지표와 위험 통제와 결합하면 안정성을 더욱 향상시킬 수 있습니다. 확장 잠재력이 큰 학습이 쉽습니다. 매우 실용적인 양 거래 전략입니다.


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

strategy(title = "SuperTrend", shorttitle = "BTC")
ema5=ta.ema(close, 5)
ema2=ta.ema(close, 2)
 
demaFast =  request.security(syminfo.tickerid, "30", 2 * ema5 - ta.ema(ema5, 5)  )

plotchar((2 * ema5 - ta.ema(ema5, 5)), "d", "", location = location.top)
plotchar(demaFast, "fast", "", location = location.top)

demaSlow  = request.security(syminfo.tickerid,"30", 2 * ema2 - ta.ema(ema2, 2)  )
plotchar(demaSlow, "slow", "", location = location.top)

buy = ta.crossover(demaSlow, demaFast)
sell = ta.crossunder(demaSlow, demaFast)
strategy.entry("BUY", strategy.long, 1, when = buy)
strategy.entry("SELL", strategy.short, 1, when = sell )

더 많은