Il s'agit d'une stratégie dynamique d'arrêt de trail basée sur des lignes EMA doubles. Elle utilise des EMA de 9 jours et 20 jours pour déterminer la direction de la tendance du marché, combinée à l'indicateur RSI pour filtrer les fausses ruptures. Elle utilise également l'indicateur ATR pour calculer les niveaux de stop loss et de profit dynamiques. Cette stratégie convient aux avoirs à moyen et long terme.
La stratégie utilise l'EMA de 9 jours comme ligne à court terme et l'EMA de 20 jours comme ligne à moyen terme pour déterminer la tendance des prix. Elle est longue lorsque le prix dépasse la ligne à court terme et que le prix de clôture est supérieur au sommet du jour précédent, avec un RSI inférieur à 70 et une clôture supérieure à l'EMA de 20 jours moins 1 ATR. Elle est courte lorsque le prix dépasse la ligne à court terme et que le prix de clôture est inférieur au sommet du jour précédent, avec un RSI supérieur à 30 et une clôture supérieure à l'EMA de 20 jours moins 1 ATR.
Le stop loss est défini au prix de clôture moins 1,5 fois ATR. Le profit est défini au prix de clôture plus ATR multiplié par un coefficient de profit. Il utilise également 2 fois ATR pour définir le stop loss suivant la tendance.
Dans l'ensemble, il s'agit d'une stratégie de détention à moyen et long terme relativement stable. Elle utilise des EMA doubles pour déterminer la tendance majeure du marché, en évitant d'être affectée par le bruit à court terme. L'ajout du RSI filtre également les fausses pauses dans une certaine mesure. En outre, le mécanisme dynamique de stop loss / take profit permet à la stratégie de s'ajuster en fonction de la volatilité du marché. Cependant, il existe encore des risques tels que le retard des moyennes mobiles et le potentiel de pénétration du stop loss. Nous devons trouver la configuration optimale grâce à l'ajustement et à l'optimisation des paramètres lors de l'application pratique.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("CJTrade", overlay=true) short = ema(close, 9) medium = ema(close, 20) long = ema(close, 50) very_long = ema(close, 200) plot(short, color=color.gray, linewidth=1) plot(medium, color=color.red, linewidth=1) plot(long, color=color.black, linewidth=1) plot(very_long, color=color.blue, linewidth=1) rsiValue = rsi(close, 14) near20EMA = close > medium - atr(14) longCond = crossover(close[1], short) and close >= high[1] and rsiValue < 70 and near20EMA shortCond = crossunder(close[1], short) and close <= low[1] and rsiValue > 30 and near20EMA strategy.entry("Long", strategy.long, when=longCond) strategy.entry("Short", strategy.short, when=shortCond) atrValue = atr(14) stopLossLevel = close - atrValue * 1.5 // Dynamic take profit level based on ATR takeProfitMultiplier = input(2, title="Take Profit Multiplier", minval=0.1, maxval=10, step=0.1) takeProfitLevel = close + atrValue * takeProfitMultiplier // Trailing stop loss for long positions longTrailingStop = close - atrValue * 2 strategy.exit("LongTrailingStop", from_entry="Long", loss=longTrailingStop) // Trailing stop loss for short positions shortTrailingStop = close + atrValue * 2 strategy.exit("ShortTrailingStop", from_entry="Short", loss=shortTrailingStop) strategy.exit("Take Profit/Stop Loss", from_entry="Long", loss=stopLossLevel, profit=takeProfitLevel) strategy.exit("Take Profit/Stop Loss", from_entry="Short", loss=stopLossLevel, profit=takeProfitLevel)