Les ressources ont été chargées... Je charge...

Stratégie de négociation quantitative basée sur la moyenne mobile modifiée de la coque et Ichimoku Kinko Hyo

Auteur:ChaoZhang est là., Date: 2024-04-28 13h39
Les étiquettes:HMAIKHSLa WMA

img

Résumé

Cette stratégie combine deux indicateurs techniques: le Hull Moving Average (HMA) modifié et Ichimoku Kinko Hyo (IKHS), visant à capturer les tendances du marché à moyen et long terme.

Principes de stratégie

  1. Calculer la moyenne mobile de la coque modifiée (HMA)
    • Calculer la moyenne mobile pondérée (WMA) et appliquer un doublement de lissage pour obtenir la HMA modifiée
  2. Calculer les différents indicateurs de Ichimoku Kinko Hyo
    • Calculer le Tenkan Sen (ligne de conversion), le Kijun Sen (ligne de base), le Senkou Span A (envergure A) et le Senkou Span B (envergure B)
  3. Générer des signaux de trading
    • Lorsque le HMA traverse au-dessus du Kijun Sen et que le prix de clôture est au-dessus du Kumo, générez un signal long
    • Lorsque le HMA traverse sous le Kijun Sen et que le prix de clôture est en dessous du Kumo, générez un signal court
  4. Exécuter des opérations
    • Exécuter les opérations de négociation correspondantes basées sur les signaux longs ou courts
  5. Commerces à la sortie
    • Lorsque le HMA traverse le Kijun Sen dans la direction opposée, sortez de la position actuelle.

Les avantages de la stratégie

  1. Combine deux indicateurs efficaces de suivi des tendances, HMA et IKHS, pour mieux détecter les tendances du marché
  2. Utilise le Kumo de l'IKHS comme condition de filtrage pour réduire efficacement les faux signaux et améliorer le taux de victoire des transactions
  3. L'HMA modifié a une vitesse de réponse plus rapide et un décalage plus faible par rapport aux moyennes mobiles traditionnelles, ce qui permet de refléter en temps opportun les changements du marché
  4. La logique de la stratégie est claire, facile à comprendre et à mettre en œuvre, adaptée à divers marchés et délais

Risques stratégiques

  1. Pendant les fluctuations du marché ou les tendances peu claires, la stratégie peut générer davantage de faux signaux, entraînant des transactions fréquentes et des pertes de capital.
  2. Les paramètres définis par la stratégie ont une incidence significative sur les résultats des transactions et différentes combinaisons de paramètres peuvent entraîner des performances différentes.
  3. La stratégie ne prend pas en compte les situations d'urgence du marché et les comportements irrationnels, et peut être confrontée à des risques plus importants dans des conditions de marché extrêmes

Directions d'optimisation de la stratégie

  1. Mettre en place d'autres indicateurs techniques ou d'indicateurs de sentiment du marché pour améliorer la fiabilité et la stabilité des signaux
  2. Optimiser les paramètres stratégiques, par exemple en utilisant l'apprentissage automatique ou des algorithmes génétiques pour trouver la combinaison optimale de paramètres
  3. Envisager d'ajouter un module de gestion des risques, tel que la fixation des niveaux de stop-loss et de take-profit, la dimensionnement des positions, etc., pour contrôler l'exposition au risque de la stratégie
  4. En fonction des caractéristiques des différents marchés et des délais, apporter des ajustements et des optimisations ciblés à la stratégie

Résumé

En combinant la moyenne mobile de Hull modifiée et Ichimoku Kinko Hyo, cette stratégie construit un système de trading suivant une tendance relativement stable. La logique de la stratégie est claire et facile à mettre en œuvre, tout en ayant certains avantages. Cependant, la performance de la stratégie est toujours affectée par les conditions du marché et les paramètres, ce qui nécessite une optimisation et une amélioration supplémentaires. Dans les applications pratiques, il est nécessaire de faire des ajustements et une gestion appropriés basés sur les caractéristiques spécifiques du marché et les préférences de risque pour obtenir de meilleurs résultats de trading.


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


Relationnée

Plus de