Stratégie croisée de la Turtle Breakout EMA

Auteur:ChaoZhang est là., Date: 2023-11-07 15:40:08 Je suis désolé
Les étiquettes:

img

Résumé

Cette stratégie utilise deux lignes EMA de périodes différentes pour identifier les renversements de tendance à travers leurs croisements en tant que signaux d'entrée et de sortie.

La logique de la stratégie

La stratégie calcule deux lignes EMA en utilisant ta.ema, l'une avec une longueur de 10 pour le court terme et l'autre avec une longueur de 20 pour la tendance à long terme. Elle identifie les croisements et les croisements EMA en utilisant ta.crossover et ta.crossunder pour déterminer les points d'entrée et de sortie. Lorsque la courte EMA traverse la longue EMA, elle devient longue. Lorsque la courte EMA traverse sous la longue EMA, elle devient courte. De cette façon, les croisements EMA sont utilisés pour capturer les points tournants de la tendance.

La stratégie utilise également une variable lastCrossTime pour enregistrer l'heure du dernier croisement afin d'éviter les signaux répétés.

Les avantages

  1. La logique de la stratégie est simple et claire, facile à comprendre et à mettre en œuvre.

  2. L'utilisation des croisements EMA pour identifier les points d'inversion de tendance est une stratégie d'indicateur technique efficace couramment utilisée.

  3. L'adoption de moyennes moyennes de différentes périodes permet d'améliorer la sensibilité aux mouvements à court terme tout en saisissant les grandes tendances.

  4. Prendre profit et arrêter la perte aide à contrôler le risque et la récompense de chaque transaction.

  5. La variable lastCrossTime filtre les signaux en double et évite les transactions inutiles.

Les risques

  1. Les croisements EMA peuvent générer de faux signaux, avec un certain risque de piqûre.

  2. Les TP et SL fixes peuvent ne pas s'adapter à l'évolution des conditions du marché; des niveaux dynamiques doivent être utilisés.

  3. Les systèmes qui reposent uniquement sur le crossover EMA peuvent subir des pertes sur des marchés variés.

  4. Les coûts de négociation tels que le spread ne sont pas pris en compte, ce qui a un impact sur les performances réelles.

  5. La stratégie fonctionne mieux dans les tendances plutôt que dans les marchés variés.

Des améliorations peuvent être apportées par l'optimisation du TP/SL, l'ajout de filtres, la combinaison d'autres indicateurs, etc. Un contrôle strict du risque et l'évitement de pertes importantes lors d'une seule transaction sont essentiels pour le trading en direct.

Amélioration

  1. Testez et optimisez les périodes EMA pour trouver de meilleures combinaisons.

  2. Ajoutez d'autres indicateurs tels que KDJ, MACD, etc. pour améliorer la qualité du signal et éviter les sauts.

  3. Utilisez le système dynamique de prise de profit et de stop-loss, tel que le stop de suivi le long de la tendance.

  4. Considérez le volume des transactions pour confirmer les signaux.

  5. Incorporer des modèles d'action des prix comme les ruptures pour renforcer les signaux.

  6. Prenez en compte les coûts de négociation tels que les spreads et optimisez les niveaux de TP/SL en conséquence.

Conclusion

La stratégie identifie les renversements de tendance en utilisant des croisements EMA de manière simple et directe. TP/SL sont utilisés pour contrôler les risques et les récompenses. Il est facile à mettre en œuvre, mais les croisements EMA présentent des risques. Des optimisations supplémentaires peuvent être effectuées en ajustant les paramètres, en ajoutant des filtres et en combinant d'autres indicateurs pour améliorer la robustesse.


/*backtest
start: 2023-10-30 00:00:00
end: 2023-11-06 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('XXXquang', overlay=true)

// Sử dụng hàm input.int() và input.float() để tạo các trường nhập liệu với giới hạn giá trị
length1 = input.int(10, title="Length EMA Short", minval=1)
length2 = input.int(20, title="Length EMA Long", minval=1)
lotSize = input.int(1, title="Lot Size", minval=1)

takeProfitLevel = input.int(600, title="Take Profit Level", minval=1)
stopLossLevel = input.int(200, title="Stop Loss Level", minval=1)

ema1 = ta.ema(close, length1)
ema2 = ta.ema(close, length2)

var float lastCrossTime = na

if ta.crossover(ema1, ema2)
    if na(lastCrossTime)
        strategy.close_all()
    strategy.entry('Buy Order', strategy.long, qty=lotSize)
    strategy.exit('Exit Buy', 'Buy Order', profit=takeProfitLevel / syminfo.pointvalue, loss=stopLossLevel / syminfo.pointvalue)
    lastCrossTime := timenow

if ta.crossunder(ema1, ema2)
    if na(lastCrossTime)
        strategy.close_all()
    strategy.entry('Sell Order', strategy.short, qty=lotSize)
    strategy.exit('Exit Sell', 'Sell Order', profit=takeProfitLevel / syminfo.pointvalue, loss=stopLossLevel / syminfo.pointvalue)
    lastCrossTime := timenow

plot(ema1, title='EMA Short', color=color.new(color.blue, 0), linewidth=2)
plot(ema2, title='EMA Long', color=color.new(color.red, 0), linewidth=2)


Plus de