전반적인 설명
이 전략은 거래 신호를 구성하기 위해 여러 개의 하모닉 이동 평균을 사용합니다. 먼저 1 차에서 6 차 순위까지의 하모닉 이동 평균을 계산하고 이 이동 평균을 결합하여 이중 긴 / 짧은 거래 신호를 만듭니다. 단기 신호 라인이 장기 라인을 넘어서면 짧고 단기 신호 라인이 그 위에 넘어가면 길습니다.
전략 논리
이 전략은 먼저 harm_average 함수를 정의하여 n-period 하모닉 이동 평균을 계산합니다. 그 다음에는 1차부터 6차 순위까지 T1에서 T6까지의 하모닉 이동 평균을 계산합니다. 그 중 T1은 3주기 하모닉 이동 평균, T2는 T1의 3주기 하모닉 이동 평균입니다.
그 후 T1에서 T6까지의 큐브 하모닉 이동 평균의 역을 합성적으로 고려하는 균형 곡선을 구성합니다. 이것은 단기 및 장기 요인을 동시에 반영 할 수 있습니다.
마지막으로, T1에서 T6에 따라, X1이 T1, T2 및 T3의 최소를 취하고 X2가 T4, T5 및 T6의 최대를 취하는 이중 긴 / 짧은 크로스 트레이딩 신호를 구축합니다. X1이 X2를 넘을 때 길고 X1이 X2를 넘을 때 짧습니다. 여기 X1은 단기 요인을 반영하고 X2는 장기 요인을 반영합니다.
이점 분석
여러 개의 하모닉 이동 평균을 사용하면 시장 소음을 효과적으로 필터링하고 신호 품질을 향상시킬 수 있습니다.
이중 장기/단기 거래 신호를 구축하면 트렌드 전환점을 적시에 파악할 수 있습니다.
균형 곡선은 합성적으로 트렌드 방향을 정확하게 판단 할 수있는 여러 시간 프레임을 고려합니다.
큐브 평균을 채택하면 중간 변수의 역할을 더욱 강조하고 전략 안정성을 향상시킬 수 있습니다.
위험 분석
하모닉 평균 자체는 높은 지연을 가지고 있으며, 이는 단기적 역전 기회를 놓칠 수 있습니다.
여러 개의 평균으로 과도한 최적화는 전략의 안정성을 줄일 수 있습니다.
큐브 계산은 중간 소음을 어느 정도 증폭시킬 수 있으며, 그 결과 특정 잘못된 신호가 발생한다
이중 교차는 어느 정도 뒤떨어져 있으며, 전환점을 적시에 파악할 수 없습니다.
최적화 방향
더 많은 종류 또는 더 높은 질의 하모닉 평균을 테스트 할 수 있습니다.
평균기계를 최적화하기 위해 평균일의 동적 조정 도입
평면과 로그와 같은 다른 전력 매개 변수를 테스트
신호 품질을 확인하기 위해 더 많은 보조 지표를 포함
요약
이 전략은 복수 하모닉 평균 시스템으로 이중 장기/단기 거래 신호를 구성한다. 단일 평균 시스템과 비교하면, 이 전략은 트렌드를 더 잘 식별하고 소음을 필터링할 수 있다. 한편, 이중 크로스는 시장 전환점을 적시에 포착할 수 있다. 그러나, 복수 평균 및 큐브 계산은 또한 약간의 지연과 소음 증폭을 도입한다. 미래에, 동적 매개 변수 조정과 더 많은 보조 지표들을 도입하면 전략의 안정성과 적시에 향상될 수 있다.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Harmonic System Strategy", overlay=true) harm_average(x,y,z) =>3 / (1 / x + 1 / y + 1 / z) T1 = harm_average(close[1], close[2], close[3]) T2 = harm_average(T1, T1[1], T1[2]) T3 = harm_average(T2, T2[1], T2[2]) T4 = harm_average(T3, T3[1], T3[2]) T5 = harm_average(T4, T4[1], T4[2]) T6 = harm_average(T5, T5[1], T5[2]) Balance = 18 / (1 / T1 * 3 + 1 / T2 * 3 + 1 / T3 * 3 + 1 / T4 * 3 + 1 / T5 * 3 + 1 / T6 * 3) plot(T1,linewidth=2, color=color.green,title="T1") plot(T2,linewidth=1, color=color.blue,title="T2") plot(T3,linewidth=1, color=color.blue,title="T3") plot(Balance,linewidth=2, color=color.black,title="Balance") plot(T4,linewidth=1, color=color.blue,title="T4") plot(T5,linewidth=1, color=color.blue,title="T5") plot(T6,linewidth=2, color=color.red,title="T6") X1 = min(min(T1,T2),T3) X2 = max(max(T4,T5),T6) X3 = min(T1,T2) X4 = max(T3,T4) Buy=crossover(X1,X2) Sell=crossunder(X3,X4) if crossover(X1,X2) strategy.entry("Long", strategy.long, comment="Long") if crossunder(X3,X4) strategy.entry("Short", strategy.short, comment="Short")