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
L'utilisation de moyennes mobiles harmoniques multiples peut filtrer efficacement le bruit du marché et améliorer la qualité du signal
La construction de signaux de négociation à double long/short peut capter en temps opportun les points tournants de la tendance
La courbe de solde prend synthétiquement en compte plusieurs délais qui peuvent juger avec précision la direction de la tendance
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
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.
Une optimisation excessive avec des moyennes multiples peut réduire la robustesse de la stratégie
Les calculs de cube peuvent amplifier le bruit intermédiaire dans une certaine mesure, résultant en certains faux signaux
Les doubles croix ont un certain degré de retard, incapables de capturer les points tournants en temps opportun
Directions d'optimisation
Plus de types ou des ordres supérieurs de moyennes harmoniques peuvent être testés
Introduction d'un ajustement dynamique des journées moyennes pour optimiser le système de moyenne
Testez différents paramètres de puissance comme les carrés et les logs
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")