Stratégie de trading quantitative basée sur la moyenne mobile modifiée de Hull et Ichimoku Kinko Hyo

HMA IKHS WMA
Date de création: 2024-04-28 13:39:00 Dernière modification: 2024-04-28 13:39:00
Copier: 11 Nombre de clics: 564
1
Suivre
1617
Abonnés

Stratégie de trading quantitative basée sur la moyenne mobile modifiée de Hull et Ichimoku Kinko Hyo

Aperçu

La stratégie combine deux indicateurs techniques, la moyenne mobile de Hull modifiée (HMA) et l’équilibre à première vue (Ichimoku Kinko Hyo), afin de capturer les tendances à moyen et long terme du marché. L’idée principale de la stratégie est d’utiliser le signal croisé de l’HMA avec la ligne de base de l’équilibre à première vue (Kijun Sen), tout en combinant le nuage d’équilibre à première vue (Kumo) comme condition de filtrage pour déterminer la direction de la tendance du marché et effectuer des transactions.

Principe de stratégie

  1. Calcul de la moyenne mobile modifiée de la coque (HMA)
    • Calculer la WMA (moyenne mobile pondérée) et effectuer un doublement de lissage pour obtenir une HMA modifiée
  2. Calculer les indicateurs qui semblent équilibrés
    • Calculer la ligne de basculement ((Tenkan Sen), la ligne de référence ((Kijun Sen), la ligne de pointe (Senkou Span A) et la ligne de pointe (Senkou Span B)
  3. Génération de signaux de trading
    • Un signal de multiplication est généré lorsque la HMA traverse la ligne de référence et que le prix de clôture est au-dessus du nuage
    • Un signal de couverture est généré lorsque le HMA est en dessous de la ligne de référence et que le prix de clôture est en dessous du nuage
  4. Exécution de la transaction
    • Opérations de négociation correspondantes basées sur des signaux de prise de plus ou de moins
  5. Sortie du marché
    • Lorsque la HMA traverse la ligne de référence dans la direction opposée, sortez de la position actuelle

Avantages stratégiques

  1. La combinaison d’HMA et de l’équilibre à première vue, deux indicateurs de suivi de tendance efficaces, permet de mieux saisir les tendances du marché
  2. L’utilisation d’un nuage d’équilibre à première vue comme condition de filtrage peut réduire efficacement les faux signaux et améliorer les chances de succès des transactions.
  3. Les HMA corrigées ont une vitesse de réponse plus rapide et un délai plus court que les moyennes mobiles traditionnelles, permettant de refléter en temps opportun les changements du marché.
  4. Une logique stratégique claire, facile à comprendre et à mettre en œuvre, applicable à divers marchés et périodes de temps

Risque stratégique

  1. Cette stratégie peut générer de plus en plus de faux signaux lors de turbulences ou de tendances incertaines sur le marché, entraînant des transactions fréquentes et des pertes de fonds.
  2. La configuration des paramètres de la stratégie a une influence majeure sur les résultats de la transaction, et différentes combinaisons de paramètres peuvent entraîner des performances différentes.
  3. La stratégie ne prend pas en compte les événements inattendus et les comportements irrationnels du marché, qui peuvent présenter un risque plus élevé dans des conditions de marché extrêmes.

Orientation de l’optimisation de la stratégie

  1. Introduction d’autres indicateurs techniques ou d’émotions du marché pour améliorer la fiabilité et la stabilité du signal
  2. Optimiser les paramètres de la stratégie, par exemple en recherchant la combinaison optimale de paramètres par des méthodes telles que l’apprentissage automatique ou les algorithmes génétiques
  3. Envisager d’ajouter des modules de gestion du risque, tels que la mise en place d’un stop loss, la gestion de la position, etc., pour contrôler l’ouverture du risque de la stratégie
  4. Adaptation et optimisation des stratégies en fonction des caractéristiques des différents marchés et périodes

Résumer

La stratégie, combinée à des moyennes mobiles Hull modifiées et à l’équilibre de première vue, a permis de construire un système de trading de suivi de tendance relativement robuste. La logique de la stratégie est claire et facile à mettre en œuvre, mais elle présente également certains avantages. Cependant, la performance de la stratégie est toujours influencée par les conditions du marché et les paramètres définis, ce qui nécessite une optimisation et une amélioration supplémentaires.

Code source de la stratégie
/*backtest
start: 2024-04-20 00:00:00
end: 2024-04-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Hull MA_X + Ichimoku Kinko Hyo Strategy", shorttitle="HMX+IKHS", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=0)

// Hull Moving Average Parameters
keh = input(12, title="Double HullMA")
n2ma = 2 * wma(close, round(keh/2)) - wma(close, keh)
sqn = round(sqrt(keh))
hullMA = wma(n2ma, sqn)

// Ichimoku Kinko Hyo Parameters
tenkanSenPeriods = input(9, title="Tenkan Sen Periods")
kijunSenPeriods = input(26, title="Kijun Sen Periods")
senkouSpanBPeriods = input(52, title="Senkou Span B Periods")
displacement = input(26, title="Displacement")

// Ichimoku Calculations
highestHigh = highest(high, max(tenkanSenPeriods, kijunSenPeriods))
lowestLow = lowest(low, max(tenkanSenPeriods, kijunSenPeriods))
tenkanSen = (highest(high, tenkanSenPeriods) + lowest(low, tenkanSenPeriods)) / 2
kijunSen = (highestHigh + lowestLow) / 2
senkouSpanA = ((tenkanSen + kijunSen) / 2)
senkouSpanB = (highest(high, senkouSpanBPeriods) + lowest(low, senkouSpanBPeriods)) / 2

// Plot Ichimoku
p1 = plot(tenkanSen, color=color.blue, title="Tenkan Sen")
p2 = plot(kijunSen, color=color.red, title="Kijun Sen")
p3 = plot(senkouSpanA, color=color.green, title="Senkou Span A", offset=displacement)
p4 = plot(senkouSpanB, color=color.orange, title="Senkou Span B", offset=displacement)
fill(p3, p4, color=color.gray, title="Kumo Shadow")

// Trading Logic
longCondition = crossover(hullMA, kijunSen) and close > senkouSpanA[displacement] and close > senkouSpanB[displacement]
shortCondition = crossunder(hullMA, kijunSen) and close < senkouSpanA[displacement] and close < senkouSpanB[displacement]

// Strategy Execution
if (longCondition)
    strategy.entry("Long", strategy.long)
if (shortCondition)
    strategy.entry("Short", strategy.short)

// Exit Logic - Exit if HullMA crosses KijunSen in the opposite direction
exitLongCondition = crossunder(hullMA, kijunSen)
exitShortCondition = crossover(hullMA, kijunSen)

if (exitLongCondition)
    strategy.close("Long")
if (exitShortCondition)
    strategy.close("Short")