
Une stratégie de suivi de tendance est une stratégie de trading de suivi de tendance basée sur des moyennes mobiles. Cette stratégie utilise une croix de moyennes mobiles indicielles ((EMA) et de moyennes mobiles oscillatrices ((HMA) pour déterminer la direction de la tendance du marché et générer des signaux d’achat et de vente en conséquence. La stratégie s’applique à la négociation de tendances à courte et moyenne ligne, qui vise à suivre les tendances des prix sur des périodes plus longues, plutôt que des fluctuations à court terme.
La stratégie utilise deux moyennes mobiles avec des paramètres différents: une EMA à courte période et une HMA à longue période. L’EMA est plus rapide pour répondre aux variations de prix et pour déterminer les tendances à court terme; la HMA est plus lente pour répondre aux variations de prix et pour déterminer la direction des tendances à long terme.
Lorsque la courte EMA atteint la HMA à long terme, elle est considérée comme entrant dans une tendance à la hausse et la stratégie est achetée au prix du marché à l’ouverture de la ligne K suivante; lorsque la courte EMA atteint la HMA à long terme, elle est considérée comme entrant dans une tendance à la baisse et la stratégie est vendue au prix du marché à l’ouverture de la ligne K suivante.
Afin d’optimiser le timing de l’entrée en bourse, la stratégie a ajouté une option basée sur Heikin-Ashi. Une fois cette option activée, les signaux de négociation d’achat et de vente de la stratégie seront basés sur la ligne Heikin-Ashi, et non sur la ligne K originale.
La stratégie a également ajouté un paramètre de stop-loss. La stratégie s’arrête au prix du marché lorsque les pertes de détention atteignent le seuil de stop-loss prédéfini. Ce mouvement limite la perte maximale d’une seule transaction.
Cette stratégie présente les avantages suivants:
L’utilisation de l’EMA et de l’HMA pour juger de la direction de la tendance permet d’exploiter les avantages des différentes moyennes périodiques pour améliorer l’exactitude des jugements.
Le trading basé sur la tendance, sans inverser la position avec de petites secousses, peut réduire le nombre de transactions inutiles.
L’option Heikin-Ashi permet de filtrer les faux signaux et d’optimiser le timing de la mise sur le marché.
La stratégie de stop loss mobile permet de contrôler efficacement les pertes maximales sur une seule transaction.
Les paramètres de la stratégie sont personnalisables et peuvent être ajustés par l’utilisateur en fonction des variétés et des cycles, ce qui améliore l’adaptabilité.
La stratégie présente également les risques suivants:
La stratégie de suivi des tendances a été moins efficace dans les marchés consolidés.
Le taux d’inflation a augmenté de façon spectaculaire au cours des dernières années.
Une mauvaise configuration du stop-loss peut entraîner des stop-loss inutiles, ou peut entraîner une augmentation des pertes.
Une mauvaise configuration des paramètres peut également entraîner des transactions fréquentes ou complètement inactives.
Les réglages des cycles EMA et HMA doivent être optimisés pour les différentes variétés et cycles.
Il n’est pas possible de filtrer complètement le risque de fausses intrusions.
Cette stratégie peut être optimisée dans les domaines suivants:
L’utilisation de plus de combinaisons d’indicateurs pour évaluer les tendances, comme le MACD, le KDJ, etc., améliore l’exactitude de l’évaluation.
L’ajout de conditions de filtrage supplémentaires, telles que le nombre de transactions, l’ATR et d’autres indicateurs, réduit la probabilité de fausses percées.
Optimiser les paramètres des moyennes mobiles pour les rendre plus adaptés aux différentes variétés et cycles de négociation.
Optimiser les paramètres de la marge d’arrêt pour rendre le stop plus raisonnable et éviter qu’il ne soit trop lâche ou trop rigide.
Envisagez d’ajouter des fonctions de protection des bénéfices, telles que l’arrêt mobile, l’arrêt partiel, etc., pour bloquer les bénéfices.
Tester différentes méthodes alternatives de calcul du coût de détention pour optimiser le calcul du coût de détention.
Les stratégies de suivi de tendance sont basées sur la direction de la tendance à travers les moyennes mobiles et utilisent Heikin-Ashi et les arrêts mobiles pour optimiser la performance de la stratégie. La stratégie est adaptée pour suivre les tendances à longueur moyenne et peut améliorer encore l’efficacité de la stratégie grâce à l’optimisation des paramètres et à l’extension des fonctions.
/*backtest
start: 2022-10-30 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("𝐉𝐔𝐈𝐂𝐘 𝐓𝐑𝐄𝐍𝐃", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=15)
//Heikin Ashi Option
ha = input(true, title = "Heikin Ashi Source")
src = ha ? request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close, barmerge.gaps_off, barmerge.lookahead_off) : close
usestoploss = input(true, title="Stop Loss")
//EMA
len1 = input.int(9, minval=1, title="EMA Length")
ema = ta.ema(src, len1)
emaline = plot(ema, title="EMA", color=color.blue, linewidth=2)
//HMA
len2 = input.int(69, minval=1, title="HMA Length")
hma = ta.wma(2*ta.wma(src, len2/2)-ta.wma(src, len2), math.floor(math.sqrt(len2)))
hmaline = plot(hma, title="HMA", color=color.purple, linewidth=2)
fillcolor = hma < ema ? color.blue : color.purple
fill(emaline, hmaline, title="EMA Fill", color=color.new(fillcolor, 80), editable=true)
//Stop Loss Conditions
stoplosspercent = input.float(title="Stop Loss (%)", defval=-6.5, minval=-50, maxval=0, step=.1) / 100
stoploss = strategy.position_avg_price * (1 + stoplosspercent)
stop = stoploss > close and stoploss[1] < close[1] and strategy.position_size > 0 and usestoploss
//Buy Sell Conditions
buy = hma < ema
sell = hma > ema
//Trades and Alerts
if buy
strategy.entry("Long Position", strategy.long, comment="BUY")
// alert("{\n\"message_type\": \"bot\",\n\"bot_id\": 6477543,\n\"email_token\": \"9b842a1b-9cb4-48ac-9ed4-524c98557e5f\",\n\"delay_seconds\": 0\n}", alert.freq_once_per_bar)
if sell and strategy.openprofit > 0
strategy.close("Long Position", comment="SELL")
// alert("{\n\"action\": \"close_at_market_price\",\n\"message_type\": \"bot\",\n\"bot_id\": 6477543,\n\"email_token\": \"9b842a1b-9cb4-48ac-9ed4-524c98557e5f\",\n\"delay_seconds\": 0\n}", alert.freq_once_per_bar)
if stop
strategy.close("Long Position", comment="STOP")
// alert("{\n\"action\": \"close_at_market_price\",\n\"message_type\": \"bot\",\n\"bot_id\": 6477543,\n\"email_token\": \"9b842a1b-9cb4-48ac-9ed4-524c98557e5f\",\n\"delay_seconds\": 0\n}", alert.freq_once_per_bar)
//Alternate Labels
var pos = 0
if buy and pos <= 0
pos := 1
if sell and pos >= 0
pos := -1
buylabel = pos == 1 and (pos != 1)[1]
selllabel = pos == -1 and (pos != -1)[1]
//Plot Labels
plotshape(buylabel, style=shape.labelup, location=location.belowbar, color=color.blue, text="BUY", textcolor=color.white, size=size.tiny)
plotshape(selllabel, style=shape.labeldown, location=location.abovebar, color=color.purple, text="SELL", textcolor=color.white, size=size.tiny)
plotshape(stop, style=shape.labeldown, location=location.abovebar, color=color.yellow, text="STOP", textcolor=color.white, size=size.tiny)