Stratégie du double système harmonique

Auteur:ChaoZhang est là., Date: le 22 février 2024
Les étiquettes:

img

Résumé

Cette stratégie utilise plusieurs moyennes mobiles harmoniques pour construire des signaux de trading. Elle calcule d'abord les moyennes mobiles harmoniques de 1er à 6e ordre, puis combine ces moyennes mobiles pour construire des signaux de trading doubles long/short.

La logique de la stratégie

La stratégie définit d'abord une fonction harm_average pour calculer la moyenne mobile harmonique n-période. Puis elle calcule les moyennes mobiles harmoniques du 1er au 6e ordre, à savoir T1 à T6. Parmi elles, T1 est la moyenne mobile harmonique à 3 périodes, T2 est la moyenne mobile harmonique à 3 périodes de T1, et ainsi de suite.

Ensuite, il construit une courbe de balance, qui prend synthétiquement en compte l'inverse des moyennes mobiles harmoniques cubiques de T1 à T6.

Enfin, selon T1 à T6, il construit des signaux croisés longs / courts doubles, où X1 prend le minimum de T1, T2 et T3, et X2 prend le maximum de T4, T5 et T6. Il va long quand X1 traverse au-dessus de X2, et court quand X1 traverse au-dessous de X2.

Analyse des avantages

  1. L'utilisation de moyennes mobiles harmoniques multiples peut filtrer efficacement le bruit du marché et améliorer la qualité du signal

  2. La construction de signaux de négociation à double long/short peut capter en temps opportun les points tournants de la tendance

  3. La courbe de solde prend synthétiquement en compte plusieurs délais qui peuvent juger avec précision la direction de la tendance

  4. L'adoption d'une moyenne cubique peut encore mettre en évidence le rôle des variables intermédiaires et renforcer la stabilité de la stratégie

Analyse des risques

  1. Les moyennes harmoniques elles-mêmes présentent un retard élevé, ce qui peut entraîner un manque d'opportunités d'inversion à court terme.

  2. Une optimisation excessive avec des moyennes multiples peut réduire la robustesse de la stratégie

  3. Les calculs de cube peuvent amplifier le bruit intermédiaire dans une certaine mesure, résultant en certains faux signaux

  4. Les doubles croix ont un certain degré de retard, incapables de capturer les points tournants en temps opportun

Directions d'optimisation

  1. Plus de types ou des ordres supérieurs de moyennes harmoniques peuvent être testés

  2. Introduction d'un ajustement dynamique des journées moyennes pour optimiser le système de moyenne

  3. Testez différents paramètres de puissance comme les carrés et les logs

  4. Incorporer plus d'indicateurs auxiliaires pour vérifier la qualité du signal

Résumé

Cette stratégie utilise un système de moyenne harmonique multiple pour construire des signaux de trading long/short doubles. Par rapport aux systèmes de moyenne unique, cette stratégie peut mieux identifier les tendances et filtrer le bruit. Pendant ce temps, les doubles croisements peuvent également capturer en temps opportun les points tournants du marché. Cependant, les calculs de moyenne multiple et de cube introduisent également un certain retard et une amplification du bruit.


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


Plus de