Tendance croisée multi-EMA à la suite de la stratégie

Auteur:ChaoZhang est là., Date: 2024-01-04 16:22:07 Je vous en prie
Les étiquettes:

img

Résumé

La stratégie de suivi de tendance multi-EMA combine plusieurs lignes EMA avec différents paramètres pour identifier les directions de tendance basées sur les signaux de croisement, dans le but de suivre les tendances du marché.

La logique de la stratégie

La logique de base de cette stratégie est basée sur les principes de croisement des lignes EMA. Parmi les EMA, les EMA à plus courte période sont plus sensibles aux changements de prix récents et peuvent refléter les tendances à court terme, tandis que les EMA à plus longue période sont moins sensibles et représentent des tendances à long terme.

Cette stratégie surveille 7 groupes de croisements EMA simultanément, y compris les périodes 12&26, 12&50, 12&100, 12&200, 12&89 et 12&144. Par exemple, lorsque l'EMA de 12 jours franchit le niveau supérieur de l'EMA de 26 jours, la stratégie ouvrira une position longue. Elle fermera la position longue lorsqu'une croisée mortelle se produit. La même logique s'applique aux autres paires EMA.

Analyse des avantages

Le plus grand avantage de cette stratégie est la capacité de capturer les tendances sur plusieurs délais. En combinant plusieurs EMA, il peut identifier les tendances à court et à long terme, réalisant la tendance à plusieurs délais.

Analyse des risques

Le principal risque de cette stratégie est la fréquence excessive des signaux de croisement lorsque plusieurs EMA sont utilisés ensemble. Par exemple, les croisements entre les EMA de 12 et 26 jours se produisent plus souvent que ceux entre les lignes de 12 et 200 jours.

Pour atténuer les risques, les périodes EMA peuvent être optimisées pour contrôler la fréquence de croisement aux niveaux appropriés.

Directions d'amélioration

L'espace d'optimisation principal réside dans l'ajustement des paramètres de l'EMA, tels que l'expérimentation de plus de combinaisons de périodes ou l'essai d'autres moyennes mobiles comme SMA. Des filtres supplémentaires peuvent également être ajoutés pour améliorer la qualité du signal, par exemple, les indicateurs de volume ou de volatilité.

Conclusion

La stratégie de suivi des tendances multi-EMA identifie les directions de tendance en comparant les situations de croisement entre plusieurs EMA, capturant les tendances à travers les délais. Son avantage est la flexibilité de modifier les paramètres et de capturer les tendances à différents niveaux.


/*backtest
start: 2023-12-27 00:00:00
end: 2024-01-03 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("EMA Trades", overlay=true, pyramiding=4)

src = input(close, title="Source")

shortestLine = input(12, minval=1, title="Shortest Line")
shorterLine = input(26, minval=1, title="Shorter Line")
shortLine = input(50, minval=1, title="Short Line")
middleLine = input(100, minval=1, title="Middle Line")
longLine = input(200, minval=1, title="Long Line")
longerLine = input(89, minval=1, title="Longer Line")
longestLine = input(144, minval=1, title="Longest Line")

shortestLineOutput = ema(src, shortestLine)
shorterLineOutput = ema(src, shorterLine)
shortLineOutput = ema(src, shortLine)
middleLineOutput = ema(src, middleLine)
longLineOutput = ema(src, longLine)
longerLineOutput = ema(src, longerLine)
longestLineOutput = ema(src, longestLine)

//plot(shortestLineOutput, title="Shortest EMA", color=#ffffff)
//plot(shorterLineOutput, title="Shorter EMA", color=#e54fe6)
//plot(shortLineOutput, title="Short EMA", color=#4e6bc3)
//plot(middleLineOutput, title="Middle EMA", color=#1dd6d8)
//plot(longLineOutput, title="Long EMA", color=#d0de10)
//plot(longerLineOutput, title="Longer EMA", color=#ef6a1a)
//plot(longestLineOutput, title="Longest EMA", color=#ff0e0e)

longEnrtyCondition_1 = crossover(shortestLineOutput[1], shorterLineOutput[1]) and shortestLineOutput > shorterLineOutput
longEntryCondition_2 = crossover(shortestLineOutput[1], shortLineOutput[1]) and shortestLineOutput > shortLineOutput
longEnrtyCondition_3 = crossover(shortestLineOutput[1], middleLineOutput[1]) and shortestLineOutput > middleLineOutput
longEntryCondition_4 = crossover(shortestLineOutput[1], longLineOutput[1]) and shortestLineOutput > longLineOutput

shortEnrtyCondition_1 = crossunder(shortestLineOutput[1], shorterLineOutput[1]) and shortestLineOutput < shorterLineOutput
shortEntryCondition_2 = crossunder(shortestLineOutput[1], shortLineOutput[1]) and shortestLineOutput < shortLineOutput
shortEnrtyCondition_3 = crossunder(shortestLineOutput[1], middleLineOutput[1]) and shortestLineOutput < middleLineOutput
shortEntryCondition_4 = crossunder(shortestLineOutput[1], longLineOutput[1]) and shortestLineOutput < longLineOutput

if (longEnrtyCondition_1)
    strategy.entry("Buy1", strategy.long)
    strategy.exit("Sell1")

if (longEntryCondition_2)
    strategy.entry("Buy2", strategy.long)
    strategy.exit("Sell2")

if (longEnrtyCondition_3)
    strategy.entry("Buy3", strategy.long)
    strategy.exit("Sell3")

if (longEntryCondition_4)
    strategy.entry("Buy4", strategy.long)
    strategy.exit("Sell4")

if (shortEnrtyCondition_1)
    strategy.entry("Sell1", strategy.short)
    strategy.exit("Buy1")

if (shortEntryCondition_2)
    strategy.entry("Sell2", strategy.short)
    strategy.exit("Buy2")

if (shortEnrtyCondition_3)
    strategy.entry("Sell3", strategy.short)
    strategy.exit("Buy3")

if (shortEntryCondition_4)
    strategy.entry("Sell4", strategy.short)
    strategy.exit("Buy4")

Plus de