EVWMA 추세 전략

저자:차오장, 날짜: 2023-12-12 16:00:37
태그:

img

전반적인 설명

이 전략은 EVWMA 지표에 기반한 간단한 트렌드 다음 전략으로 설계되었습니다. EVWMA 지표를 구성하기 위해 빠른 라인과 느린 라인을 사용합니다. 빠른 라인이 느린 라인을 넘을 때 긴 포지션이 열리고 빠른 라인이 느린 라인을 넘을 때 짧은 포지션이 열립니다. 트렌드를 따라.

전략 논리

이 전략의 핵심 지표는 Elastic Volume Weighted Moving Average (Elastic Volume Weighted Moving Average) 이다. 이 지표는 가격과 부피 정보를 통합하여 자체 기간을 계산하여 시장 트렌드를 동적으로 반영합니다.

특히, 빠른 라인의 기간은 최근 10 바의 볼륨의 합과 느린 라인의 20 바로 계산된다. 각 바의 EVWMA는 (전 바의 EVWMA × (기간 길이 - 현재 바의 볼륨) + 현재 바의 폐쇄 가격 × 현재 바의 볼륨) / 기간 길이가 계산된다. 이 방법으로 가격과 볼륨 정보를 모두 결합한다.

빠른 선이 느린 선을 넘을 때, 그것은 구매력이 길어지기 위해 강화되고 있음을 나타냅니다. 빠른 선이 느린 선 아래를 넘을 때, 그것은 판매력이 짧아지기 위해 강화되고 있음을 나타냅니다. 빠른 선과 느린 선의 이러한 조합으로 전략은 동적으로 추세를 따라 시장 추세를 포착 할 수 있습니다.

이점 분석

이 전략의 가장 큰 장점은 EVWMA 지표의 동적 기간 설계에 있어서 가격과 부피의 변화에 더 빠르게 반응하여 실시간으로 시장 트렌드를 포착하는 데 있다. 이는 트렌드 다음 전략에 매우 적합하다. 또한 전통적인 이동 평균에 비해 가격과 부피 정보를 통합하여 잘못된 브레이크오프를 필터할 수 있다.

위험 과 해결책

이 전략의 주요 위험은 EVWMA 지표의 부적절한 매개 변수 설정입니다. 빠른 라인과 느린 라인의 기간이 올바르게 설정되지 않으면 과도한 잘못된 신호를 생성 할 수 있습니다. 게다가 트렌드를 따르는 전략 자체는 시장 트렌드가 급격히 역전되면 몇 가지 단점이 있습니다.

이러한 문제를 해결하기 위해 우리는 매개 변수를 최적화하고 가장 좋은 조합을 찾기 위해 빠르고 느린 라인의 계산 기간을 조정할 수 있습니다. 또한 손실 위험을 제어하기 위해 스톱 로스를 설정할 수 있습니다. 중요한 데이터 발표와 같은 중요한 시장 반전이 발생할 가능성이있는 시간 지점에 대해 이 기간 동안 거래를 피하기 위해 전략을 일시적으로 중단하는 것을 고려할 수 있습니다.

최적화 방향

이 전략의 추가 최적화에 대한 여지가 있습니다. 예를 들어, 거래 부피의 파업, 볼링거 밴드 등과 같은 다른 지표는 신호를 확인하기 위해 통합 될 수 있으며, 이로 인해 전략의 안정성을 향상시킬 수 있습니다. 또한 최적 매개 변수 값은 다른 제품과 시간대에 따라 다를 수 있습니다. 실시간 데이터에 기반한 매개 변수를 조정하기 위해 적응 가능한 매개 변수 최적화 메커니즘을 구축 할 수 있습니다.

거래 측면에서는 위험 통제를 위해 동적 스톱 로스, 트레일링 스톱 로스 및 기타 수단도 설계 할 수 있습니다. 또한 적응적 매개 변수 메커니즘은 다른 제품과 시간대에 최적의 매개 변수를 얻는 데 도움이 될 수 있습니다.

요약

이 전략은 EVWMA 지표의 역동적인 기간 디자인을 활용하고 효과적인 트렌드 다음 전략을 구성하기 위해 볼륨 정보를 통합합니다. 가격 변화에 신속하게 대응하고 시장 트렌드를 파악 할 수 있습니다. 매개 변수 최적화, 위험 관리 조치 등을 통해 전략의 안정성을 더욱 향상시킬 수 있습니다. 이 전략의 논리는 혁신적이며 추가 탐색 및 적용 가치가 있습니다.


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

//@version=4
strategy("QuantNomad - EVWMA Cross Strategy", shorttitle="EVWMA Cross", overlay=true)

// Inputs
fast_sum_length = input(10, title = "Fast Sum Length", type = input.integer)
slow_sum_length = input(20, title = "Slow Sum Length", type = input.integer)

// Calculate Volume Period
fast_vol_period = sum(volume, fast_sum_length)
slow_vol_period = sum(volume, slow_sum_length)

// Calculate EVWMA
fast_evwma = 0.0
fast_evwma := ((fast_vol_period - volume) * nz(fast_evwma[1], close) + volume * close) / (fast_vol_period)

// Calculate EVWMA
slow_evwma = 0.0
slow_evwma := ((slow_vol_period - volume) * nz(slow_evwma[1], close) + volume * close) / (slow_vol_period)

// Plot 
plot(fast_evwma, title = "EVWMA Fast", linewidth = 2, color = color.red)
plot(slow_evwma, title = "EVWMA Slow", linewidth = 2, color = color.green)

// Strategy
strategy.entry("Long",   true, when = crossover(fast_evwma, slow_evwma))
strategy.entry("Short", false, when = crossunder(fast_evwma, slow_evwma))

더 많은