
이 전략은 EVWMA 지표를 기반으로 간단한 트렌드 추적 전략을 설계했다. 이 전략은 빠른 라인과 느린 라인을 사용하여 EVWMA 지표를 구축하고, 빠른 라인에서 느린 라인을 통과 할 때 더 많이하고, 빠른 라인 아래에서 느린 라인을 통과 할 때 공백을 만들고, 트렌드 추적을 구현했다.
이 전략의 핵심 지표는 탄력량 가중 이동 평균 (EVWMA) 이다. 그것은 가격과 거래량 정보를 결합하여 시장의 추세를 동적으로 반영하는 자체 계산 주기 길이를 사용합니다.
구체적으로, 빠른 라인의 계산 주기 길이는 최근 10개의 K 라인 거래량의 합이고, 느린 라인의 계산 주기 길이는 최근 20개의 K 라인 거래량의 합이다. 각 K 라인의 EVWMA는 ((전날의 EVWMA × (주기 길이는 현재 K 라인 볼륨) + 현재 K 라인 매장 가격 × 현재 K 라인 볼륨) / 주기 길이의 의 공식에 따라 계산된다. 이렇게 동시에 가격과 거래량 정보가 결합된다.
빠른 선에서 느린 선을 통과하면 구매력이 증가하고 더 많이하는 것을 나타냅니다. 빠른 선 아래에서 느린 선을 통과하면 판매력이 증가하고 공백을 만듭니다. 이러한 빠른 선 조합을 통해 동적으로 시장 추세를 포착하고 추세 추적 전략을 구현 할 수 있습니다.
이 전략의 가장 큰 장점은 EVWMA 지표의 동적 주기 디자인을 활용하여 가격 및 거래량 변화에 더 빠르게 반응하여 시장의 동향을 실시간으로 포착하는 것입니다. 이것은 트렌드 추적 전략에 매우 적합합니다. 또한, 전통적인 이동 평균과 같은 지표와 비교하여 가격과 거래량 정보를 결합하여 가짜 돌파구를 필터링 할 수 있습니다.
이 전략의 주요 위험은 EVWMA 지표 매개 변수 설정의 문제이다. 만약 빠른 라인과 느린 라인 사이클이 잘못 설정되면, 많은 가짜 신호를 생성하는 결과를 초래할 수 있다. 또한, 트렌드 추적 전략 자체는 justes trendyțile consecințe în cazul inversării bruște a tendinței pieței.
이러한 문제를 해결하기 위해, 최적화 파라미터를 사용하여, 빠른 라인 및 느린 라인의 계산 주기를 조정하여 최적의 파라미터 조합을 찾을 수 있습니다. 동시에, 손실 위험을 제어하기 위해 스톱로스를 설정할 수 있습니다. 시장에서 중요한 전환이 일어날 수있는 시점, 예를 들어 중요한 데이터 발표, 일시 중지 전략을 고려하여이 기간을 회피 할 수 있습니다.
이 전략은 또한 추가적인 최적화 할 여지가 있습니다. 예를 들어, 거래량 돌파구, 브린 띠 및 기타와 같은 다른 지표를 추가하는 것이 고려 될 수 있습니다. 전략의 안정성을 높이기 위해 확인 신호. 또한, 다른 품종과 다른 시간 동안의 매개 변수 조합의 최우수 값은 다를 수 있으며, 매개 변수 자체 적응 최적화 메커니즘을 구축하여 실시간 데이터에 따라 매개 변수를 조정할 수 있습니다.
거래 측면에서 볼 때, 동적 스톱, 스톱 추적 등의 방법을 설계하여 위험을 제어할 수 있다. 또한, 다른 품종과 다른 시간 동안의 파라미터 조합의 최우수 값이 다를 수 있으며, 실시간 데이터에 따라 파라미터를 조정할 수 있는 파라미터 적응 최적화 메커니즘을 구축할 수 있다.
이 전략은 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))