하모닉 듀얼 시스템 전략

저자:차오장, 날짜: 2024-02-22 15:49:06
태그:

img

전반적인 설명

이 전략은 거래 신호를 구성하기 위해 여러 개의 하모닉 이동 평균을 사용합니다. 먼저 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는 장기 요인을 반영합니다.

이점 분석

  1. 여러 개의 하모닉 이동 평균을 사용하면 시장 소음을 효과적으로 필터링하고 신호 품질을 향상시킬 수 있습니다.

  2. 이중 장기/단기 거래 신호를 구축하면 트렌드 전환점을 적시에 파악할 수 있습니다.

  3. 균형 곡선은 합성적으로 트렌드 방향을 정확하게 판단 할 수있는 여러 시간 프레임을 고려합니다.

  4. 큐브 평균을 채택하면 중간 변수의 역할을 더욱 강조하고 전략 안정성을 향상시킬 수 있습니다.

위험 분석

  1. 하모닉 평균 자체는 높은 지연을 가지고 있으며, 이는 단기적 역전 기회를 놓칠 수 있습니다.

  2. 여러 개의 평균으로 과도한 최적화는 전략의 안정성을 줄일 수 있습니다.

  3. 큐브 계산은 중간 소음을 어느 정도 증폭시킬 수 있으며, 그 결과 특정 잘못된 신호가 발생한다

  4. 이중 교차는 어느 정도 뒤떨어져 있으며, 전환점을 적시에 파악할 수 없습니다.

최적화 방향

  1. 더 많은 종류 또는 더 높은 질의 하모닉 평균을 테스트 할 수 있습니다.

  2. 평균기계를 최적화하기 위해 평균일의 동적 조정 도입

  3. 평면과 로그와 같은 다른 전력 매개 변수를 테스트

  4. 신호 품질을 확인하기 위해 더 많은 보조 지표를 포함

요약

이 전략은 복수 하모닉 평균 시스템으로 이중 장기/단기 거래 신호를 구성한다. 단일 평균 시스템과 비교하면, 이 전략은 트렌드를 더 잘 식별하고 소음을 필터링할 수 있다. 한편, 이중 크로스는 시장 전환점을 적시에 포착할 수 있다. 그러나, 복수 평균 및 큐브 계산은 또한 약간의 지연과 소음 증폭을 도입한다. 미래에, 동적 매개 변수 조정과 더 많은 보조 지표들을 도입하면 전략의 안정성과 적시에 향상될 수 있다.


/*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")


더 많은