듀얼 하모니 시스템 전략


생성 날짜: 2024-02-22 15:49:06 마지막으로 수정됨: 2024-02-22 15:49:06
복사: 0 클릭수: 582
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

듀얼 하모니 시스템 전략

개요

이 전략은 여러 개의 조화 평균을 사용하여 거래 신호를 구성한다. 전략은 먼저 1에서 6 단계의 조화 평균을 계산하고, 그 조화 평균을 결합하여 긴 쌍 거래 신호를 구성한다. 단기 신호 라인 아래에 긴 신호 라인을 통과 할 때 공백을 만들고, 단기 신호 라인 위에 긴 신호 라인을 통과 할 때 더한다.

전략 원칙

이 전략은 먼저 harm_average 함수를 정의하여 n 일간의 조화 평균을 계산한다. 그리고 1부터 6 단계의 조화 평균, 즉 T1에서 T6까지 각각 계산한다. T1은 3 일간의 조화 평균이고, T2는 T1의 3 일간의 조화 평균이며, 이렇게 계속된다.

그 다음으로 Balance 곡선을 구성하고, Balance 곡선은 T1에서 T6까지의 세제곱과 평균의 역수를 종합적으로 고려한다. 따라서 단기 및 장기 요소를 동시에 반영할 수 있다.

마지막으로, T1부터 T6까지의 긴 짧은 교차 거래 신호를 구성하여, 즉 X1은 T1, T2, T3의 최소값이고, X2는 T4, T5, T6의 최대값이다. X1 위쪽에서 X2를 뚫을 때 더하고, X1 아래쪽에서 X2를 뚫을 때 공백한다. 여기서 X1은 단기 요소를 반영하고, X2는 장기 요소를 반영한다.

우위 분석

  1. 다중 조화 평균을 사용하여 시장 소음을 효과적으로 필터링하여 거래 신호 품질을 향상시킵니다.

  2. 동향의 전환점을 잡을 수 있는 장단한 교차 거래 신호를 구축

  3. Balance 곡선은 여러 시기를 종합적으로 고려하여 트렌드 방향을 정확하게 판단할 수 있습니다.

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