Cette stratégie est conçue sur la base de la croix d'or et de la croix morte des moyennes mobiles rapides et lentes. Lorsque le MA rapide traverse au-dessus du MA lent, passez long. Lorsque le MA rapide traverse au-dessous du MA lent, passez court. Cette stratégie convient au trading à moyen et long terme et peut capturer les inversions de tendance sur le marché.
La stratégie utilise la moyenne mobile exponentielle (EMA) pour calculer les lignes rapides et lentes. La longueur de la MA rapide est de 10 périodes et la longueur de la MA lente est de 30 périodes. La stratégie calcule d'abord la EMA rapide et la EMA lente, puis trace les lignes et montre différents arrière-plans colorés pour indiquer la direction de la tendance.
Lorsque la clôture d'aujourd'hui est supérieure à la MA rapide et que la MA rapide est supérieure à la MA lente, le fond est vert, indiquant une tendance à la hausse.
Dans une tendance à la hausse, s'il y a un chandelier rouge (fermer en dessous de l'ouverture) et que hier il y avait aussi un chandelier rouge, passez long.
Dans une tendance à la baisse, s'il y a un chandelier vert (fermer au-dessus de l'ouverture) et que hier il y avait aussi un chandelier vert, allez court.
Après ouverture d'une position dans chaque sens, si le temps de rétention dépasse 1008000000 millisecondes (environ 2 semaines), forcer la fermeture de la position pour éviter l'impasse.
Dans l'ensemble, cette stratégie est assez équilibrée, en utilisant une double EMA pour les tendances et des filtres à chandeliers avec des règles supplémentaires pour éviter les faux signaux.
/*backtest start: 2023-10-10 00:00:00 end: 2023-11-09 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © yeainshukla //@version=5 strategy('BuyRedSellGreen4H', overlay = true) greenCandle = close > open redCandle = open > close start = timestamp(2023,9,18,0,00) end = timestamp(2023,12,31,0,00) fastLength = input.int(10, title="Fast Average Length") slowLength = input.int(30, title="Slow Average Length") averageData = input.source(close, title="Average Data Source") // Calculate exponential moving averages fastAverage = ta.ema(averageData, fastLength) slowAverage = ta.ema(averageData, slowLength) // Plot averages plot(fastAverage, color=color.navy, title="Fast EMA") plot(slowAverage, color=color.fuchsia, linewidth=2, title="Slow EMA") // Show the moving average trend with a coloured background backgroundColor = if close > fastAverage and fastAverage > slowAverage color.new(color.green, 85) else if close < fastAverage and fastAverage < slowAverage color.new(color.red, 85) else color.new(color.orange, 90) bgcolor(backgroundColor, title="EMA Background") if time >= start and time < end if(close < open) if(close[1] < open[1]) strategy.entry("Enter Long", strategy.long) strategy.exit("Exit Long", from_entry="Enter Long") strategy.close("Enter Short") else if(close[1] > open[1]) strategy.entry("Enter Short", strategy.short) strategy.exit("Exit Short", from_entry="Enter Short") strategy.close("Enter Long") if strategy.position_size < 0 or strategy.position_size > 0// short and long is opened. if((time - strategy.opentrades.entry_time(strategy.opentrades - 1)) > 1008000000) strategy.close("Enter Short") strategy.close("Enter Long")