Tendance à la suite de la stratégie

Auteur:ChaoZhang est là., Date: 2023-11-06 10h34 et 19h
Les étiquettes:

img

Résumé

La stratégie de suivi de tendance est une stratégie de trading de tendance basée sur le croisement des moyennes mobiles. Elle utilise le croisement d'une moyenne mobile exponentielle (EMA) et d'une moyenne mobile Hull (HMA) pour déterminer la direction de la tendance et générer des signaux de trading en conséquence.

La logique de la stratégie

La stratégie utilise deux moyennes mobiles avec des paramètres différents: une EMA plus rapide et une HMA plus lente. La EMA réagit plus rapidement aux changements de prix et est utilisée pour juger des tendances à court terme, tandis que la HMA répond plus lentement et suit la direction de la tendance à long terme.

Lorsque l'EMA plus rapide traverse au-dessus de l'HMA plus lent, il est considéré comme le début d'une tendance à la hausse, et la stratégie placera un ordre long au prix du marché sur la barre suivante ouverte.

Pour optimiser le timing d'entrée, la stratégie intègre une option Heikin-Ashi. Lorsque activée, les signaux d'achat et de vente seront basés sur des barres Heikin-Ashi au lieu de bougies normales.

Lorsque la perte de position atteint le pourcentage de perte de position prédéfini, la position sera fermée au prix du marché, plafonnant la perte maximale par transaction.

Analyse des avantages

Les avantages de cette stratégie sont les suivants:

  1. L'utilisation du croisement EMA et HMA pour déterminer les tendances peut tirer parti des moyennes mobiles de différentes périodes et améliorer la précision.

  2. Le trading basé sur les tendances permet d'éviter de se tourmenter sur des oscillations mineures et réduit les transactions inutiles.

  3. L'option Heikin-Ashi optimise le temps d'entrée en filtrant les faux signaux.

  4. Le stop loss mobile limite effectivement la perte maximale par transaction.

  5. Les paramètres personnalisables permettent l'optimisation pour différents produits et délais.

Analyse des risques

Les risques de cette stratégie comprennent:

  1. En tant que système de suivi des tendances, il est moins performant sur les marchés à fourchette.

  2. Elle peut subir de lourdes pertes lorsqu'une tendance inverse survient.

  3. Les paramètres d'arrêt des pertes incorrects peuvent entraîner des arrêts inutiles ou augmenter les pertes.

  4. Un mauvais réglage des paramètres peut entraîner un sur-trading ou une inaction.

  5. Les périodes EMA et HMA doivent être optimisées pour différents produits et délais.

  6. Heikin-Ashi ne peut pas éviter complètement le risque de fausses fuites.

Directions d'optimisation

La stratégie peut être améliorée par les aspects suivants:

  1. Utilisez plus d'indicateurs comme MACD, KDJ pour améliorer la précision de la tendance.

  2. Ajouter plus de filtres tels que le volume, ATR pour réduire les fausses pauses.

  3. Optimiser les paramètres des moyennes mobiles en fonction des produits et des délais.

  4. Ajustez le pourcentage de stop loss pour un meilleur comportement de stop loss.

  5. Considérez les caractéristiques de prise de profit telles que le déplacement de l'arrêt de profit et la prise partielle de profit.

  6. Tester des méthodes alternatives pour calculer la base de coûts de positionnement pour l'optimisation.

Résumé

La stratégie de suivi des tendances identifie les tendances en utilisant des croisements de moyennes mobiles et optimise les performances via Heikin-Ashi et le stop loss mobile. Elle convient au trading de tendances à moyen et long terme et peut être améliorée grâce à l'ajustement des paramètres et à l'expansion des fonctionnalités. Mais les utilisateurs doivent être conscients des risques d'inversions et de stop loss inappropriés. Dans l'ensemble, elle fournit un cadre universel et personnalisable pour le trading de tendances qui fonctionne sur différents produits et délais.


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


Plus de