Stratégie inverse de Heikin-Ashi

Auteur:ChaoZhang est là., Date: 2023-11-16 15:44:14 Je vous en prie.
Les étiquettes:

img

Résumé

Cette stratégie utilise principalement des bougies Heikin-Ashi améliorées pour identifier les points d'inversion des prix et capter les changements de tendance importants. Elle appartient aux stratégies de trading à court terme. La stratégie calcule les prix d'ouverture, de hausse, de baisse et de fermeture des bougies en utilisant HA, et détermine la couleur finale en fonction de la relation de prix. Les bougies vertes représentent des prix en hausse et les bougies rouges représentent des prix en baisse.

La logique de la stratégie

La logique de base de la stratégie est de détecter les changements de couleur dans les bougies HA pour déterminer l'inversion des prix.

Tout d'abord, obtenir les prix d'ouverture, de hausse, de baisse et de fermeture à partir des données HA ou des données originales basées sur le paramètre d'entrée.

haClose = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, close) : close

haOpen = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, open) : open  

haHigh = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, high) : high

haLow = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, low) : low

Calculer ensuite le courant HA d'ouverture et de fermeture selon les formules.

haclose = (haOpen + haHigh + haLow + haClose) / 4  

haopen := na(haopen[1]) ? (haOpen + haClose) / 2 : (haopen[1] + haclose[1]) / 2

En outre, obtenir HA les prix les plus élevés et les plus bas.

hahigh = max(haHigh, max(haopen, haclose))

halow = min(haLow, min(haopen, haclose))  

Déterminez la couleur de la bougie HA en fonction de la relation ouverte/close.

hacolor = haclose > haopen ? color.green : color.red

Identifier les signaux d'inversion basés sur le changement de couleur HA entre les barres.

turnGreen = haclose > haopen and haclose[1] <= haopen[1]  

turnRed = haclose <= haopen and haclose[1] > haopen[1] 

Ouvrir des positions longues/courtes lorsque les signaux sont déclenchés.

strategy.entry("long", 1, when=turnGreen)
  
strategy.entry("short", 0, when=turnRed) 

Fermez les positions sur les signaux opposés.

strategy.close("long", when=turnRed)

En détectant les changements de couleur des bougies HA, la stratégie capture les points de renversement des prix pour le trading de renversement.

Les avantages

Les principaux avantages de cette stratégie sont les suivants:

  1. L'utilisation de bougies HA améliorées filtre le bruit et identifie plus clairement les renversements.

  2. Une logique simple basée sur le changement de couleur HA, facile à comprendre et à mettre en œuvre.

  3. Le trading inverse capte rapidement les changements de tendance pour réaliser des bénéfices.

  4. Personnalisable pour utiliser des bougies HA ou non pour différents marchés.

  5. Les flèches du chandelier indiquent visuellement les retours.

  6. Des paramètres tels que le délai peuvent être optimisés pour différents produits.

Les risques

Il y a aussi quelques risques à noter:

  1. Les signaux ont besoin d'une fiabilité solide.

  2. Des baisses fréquentes peuvent se produire sur les marchés variés.

  3. Impossible de déterminer la durée de la tendance, peut inverser puis poursuivre la tendance.

  4. Indicateur unique susceptible de faux signaux, doit être combiné avec d'autres.

  5. Il faut éviter les surajustements par l'optimisation.

Les solutions:

  1. Optimiser les paramètres pour des signaux fiables.

  2. Ajoutez un filtre de tendance pour éviter les variations de marché.

  3. Utiliser le stop loss pour contrôler la perte par transaction.

  4. Confirmez les signaux avec d'autres indicateurs pour éviter de faux signaux.

  5. Des tests de retour approfondis pour optimiser les paramètres et prévenir les surajustements.

Amélioration

La stratégie peut être améliorée de la manière suivante:

  1. Optimiser les délais pour les différents produits.

  2. Testez l'utilisation des bougies HA par caractéristique du produit.

  3. Ajoutez un filtre de tendance pour éviter les fléchettes sur les marchés à variation.

  4. Mettre en œuvre des arrêts dynamiques basés sur la volatilité du marché.

  5. Confirmez les signaux avec des indicateurs supplémentaires.

  6. Incorporer une dimensionnement des positions basé sur la gestion des risques.

  7. Élargir le commerce d'arbitrage sur plusieurs produits.

  8. Ajuster les paramètres en fonction des résultats des tests antérieurs pour éviter un surajustement.

Conclusion

Cette stratégie tire parti des forces des bougies HA améliorées pour découvrir les points de renversement potentiels grâce à des changements de couleur HA. Par rapport aux bougies normales, HA filtre le bruit pour des signaux plus propres. La stratégie implémente une logique de trading de renversement d'une manière simple et intuitive qui est facile à utiliser pour le trading en direct.


/*backtest
start: 2022-11-09 00:00:00
end: 2023-11-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Heikin-Ashi Change Strategy", overlay=true)

UseHAcandles    = input(true, title="Use Heikin Ashi Candles in Algo Calculations")
//
// === /INPUTS ===

// === BASE FUNCTIONS ===

haClose = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, close) : close
haOpen  = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, open) : open
haHigh  = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, high) : high
haLow   = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, low) : low

// Calculation HA Values 
haopen = 0.0
haclose = (haOpen + haHigh + haLow + haClose) / 4
haopen := na(haopen[1]) ? (haOpen + haClose) / 2 : (haopen[1] + haclose[1]) / 2
hahigh = max(haHigh, max(haopen, haclose))
halow = min(haLow, min(haopen, haclose))

// HA colors
hacolor = haclose > haopen ? color.green : color.red

// Signals
turnGreen = haclose > haopen and haclose[1] <= haopen[1]
turnRed = haclose <= haopen and haclose[1] > haopen[1]

// Plotting
bgcolor(hacolor)

plotshape(turnGreen, style=shape.arrowup, location=location.belowbar, color=color.green)
plotshape(turnRed, style=shape.arrowdown, location=location.abovebar, color=color.red)

// Alerts
alertcondition(turnGreen, "ha_green", "ha_green")
alertcondition(turnRed, "ha_red", "ha_red")

strategy.entry("long", 1, when=turnGreen)
//strategy.entry("short", 0, when=turnRed)
strategy.close("long", when=turnRed)


Plus de