Cette stratégie est basée sur trois périodes différentes de la moyenne des lignes EMA pour la décision de la signal de négociation, en utilisant 8 périodes, 50 périodes et 200 périodes de trois lignes EMA pour la décision de la fourchette dorée et la fourchette morte, afin de tirer parti des avantages des différentes lignes EMA pour une meilleure efficacité de la négociation.
La stratégie consiste à calculer trois EMA moyennes de 8 cycles, 50 cycles et 200 cycles, et à définir un passage de la ceinture de Brin pour effectuer des jugements de rupture. La logique spécifique est la suivante:
Les EMA à cycle rapide permettent d’évaluer le fond, les EMA à cycle moyen d’assurer la tendance et les EMA à cycle lent de filtrer les oscillations. Les trois éléments se complètent pour évaluer la conversion du modèle tout en tenant compte de la fréquence de négociation.
La moyenne des trois EMA permet de juger de la tendance raisonnablement et de tirer pleinement parti des avantages des EMA de différentes périodes. Les EMA de huit périodes déterminent l’opportunité de rebond à court terme, les EMA de 50 périodes déterminent la direction de la tendance à moyen terme et les EMA de 200 périodes filtrent les oscillations pour assurer la tendance majeure.
Il est possible d’opter pour une hausse seulement si le prix est supérieur à l’EMA de 200 cycles, afin d’éviter que les chocs ne produisent de faux signaux.
La ligne d’arrêt EMA est réglable pour une position d’arrêt raisonnable.
Les paramètres visuels tels que la couleur de la ceinture, l’affichage des lignes EMA, etc., améliorent la personnalisation des stratégies.
Il contient une logique de jugement qui est simple et compréhensible.
La moyenne des EMAs est en retard et peut manquer le meilleur moment pour établir une position. La période des EMAs peut être raccourcie de manière appropriée ou combinée à d’autres indicateurs tels que le MACD.
La moyenne EMA peut produire un signal erroné dans des conditions de tremblement. On peut utiliser des EMA à long terme pour éliminer les tremblements ou ajouter d’autres conditions de filtrage.
La position d’arrêt est fixe et ne peut pas être ajustée en fonction des fluctuations du marché. Elle peut être modifiée en position d’arrêt dynamique, déterminée en fonction d’indicateurs tels que l’ATR.
Il n’y a pas de critère de sortie de stop-loss, il y a un risque de perte. Vous pouvez configurer un stop-loss mobile ou un stop-loss à point fixe pour contrôler le risque.
Les cycles EMA peuvent être optimisés pour trouver la meilleure combinaison de paramètres.
On peut ajouter des indicateurs comme le MACD pour évaluer le temps d’inactivité.
Ajouter des conditions de stop dynamiques et ajuster la position de stop en fonction de la volatilité du marché.
Ajouter une logique de stop-loss, définir un stop-loss mobile ou un stop-loss à point fixe.
Optimisation des conditions d’entrée, tels que l’augmentation de l’indicateur de capacité et des filtres.
Cette stratégie est basée sur le filtrage stable de la courbe EMA pour déterminer la direction de la tendance, combinant les avantages des EMA de différentes périodes pour saisir les opportunités de négociation. L’optimisation de la stratégie de stop-loss et l’ajout de plus de jugements d’indicateurs peuvent augmenter le taux de victoire de la stratégie.
/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-20 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Long only EMA CROSS 8/50/200 Backtest", shorttitle="Golden Cross Tri EMA", overlay=true)
// EMA 8/50/200 Cross TEST
// Input
switch1=input(true, title="Enable Bar Color?")
switch2=input(true, title="Show 8 EMA")
switch3=input(true, title="Show 50 EMA")
switch4=input(true, title="Show 200 EMA")
switch5=input(false, title="Show profit level EMA")
bool_Long_EMA200=input(false, title="Long only above EMA200")
movingaverage_8 = ema(close, input(8))
movingaverage_50 = ema(close, input(50))
movingaverage_market_signal = ema(close, input(200))
movingaverage_profitlvl = ema(close, input(50))
// Calculation
bullish_cross = if bool_Long_EMA200 == true
crossover(movingaverage_8, movingaverage_50) and movingaverage_8 > movingaverage_market_signal
else
bullish_cross = crossover(movingaverage_8, movingaverage_50)
bearish_cross = crossunder(close, movingaverage_profitlvl)
// Strategy
if bullish_cross
strategy.entry("long", strategy.long)
strategy.close("long", when = bearish_cross )
// Colors
bartrendcolor = close > movingaverage_8 and close > movingaverage_50 and change(movingaverage_50) > 0 ? green : close < movingaverage_8 and close < movingaverage_50 and change(movingaverage_50) < 0 ? red : blue
barcolor(switch1?bartrendcolor:na)
// Output
plot(switch2?movingaverage_8:na,color = change(movingaverage_8) > 0 ? green : red,linewidth=2, title="EMA8")
plot(switch3?movingaverage_50:na,color = change(movingaverage_50) > 0 ? green : red,linewidth=2,title="EMA50")
plot(switch4?movingaverage_market_signal:na,color = change(movingaverage_market_signal) > 0 ? green : red,linewidth=3,title="EMA200")
plot(switch5?movingaverage_profitlvl:na,color = change(movingaverage_profitlvl) > 0 ? green : red,linewidth=3, title="EMA Profit LVL")
//
alertcondition(bullish_cross, title='Golden Cross (bullish)', message='Bullish')
alertcondition(bearish_cross, title='Death Cross (bearish)', message='Bearish')