Il s'agit d'une stratégie de trading quantitative basée sur un double croisement EMA combiné à un indicateur RSI, intégré à des mécanismes dynamiques de prise de profit et de stop-loss.
La stratégie utilise le croisement de l'EMA rapide (9 périodes) et de l'EMA lente (21 périodes) pour capturer les changements de tendance. Les positions longues sont ouvertes lorsque la ligne rapide traverse la ligne lente et que le RSI est inférieur à 70; les positions courtes sont ouvertes lorsque la ligne rapide traverse la ligne lente et que le RSI est supérieur à 30. Chaque transaction est définie avec un profit de 1,5% et un stop-loss de 1%, ce mécanisme dynamique s'ajustant automatiquement en fonction des prix d'entrée.
Il s'agit d'une stratégie de trading quantitative bien structurée et logiquement rigoureuse. Elle capture les tendances à travers les croisements EMA, filtre le timing d'entrée avec le RSI et gère le risque avec des niveaux dynamiques de prise de profit / stop-loss. Bien qu'elle ait certaines limitations, les directions d'optimisation suggérées peuvent encore améliorer la stabilité et la rentabilité de la stratégie.
/*backtest start: 2024-10-01 00:00:00 end: 2024-10-31 23:59:59 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Estrategia BTC/USDT - Ajustada", overlay=true) // Definición de las EMAs emaRapida = ta.ema(close, 9) emaLenta = ta.ema(close, 21) // Cálculo del RSI rsi = ta.rsi(close, 14) // Condiciones de compra y venta longCondition = ta.crossover(emaRapida, emaLenta) and rsi < 70 shortCondition = ta.crossunder(emaRapida, emaLenta) and rsi > 30 // Ajustes de Take Profit y Stop Loss takeProfitLong = close * 1.015 // Take Profit del 1.5% para Long stopLossLong = close * 0.99 // Stop Loss del 1% para Long takeProfitShort = close * 0.985 // Take Profit del 1.5% para Short stopLossShort = close * 1.01 // Stop Loss del 1% para Short // Ejecución de la estrategia if (longCondition) strategy.entry("Compra", strategy.long) strategy.exit("Take Profit Long", "Compra", limit=takeProfitLong, stop=stopLossLong) if (shortCondition) strategy.entry("Venta", strategy.short) strategy.exit("Take Profit Short", "Venta", limit=takeProfitShort, stop=stopLossShort) // Visualización de las EMAs plot(emaRapida, color=color.green, linewidth=2, title="EMA Rápida") plot(emaLenta, color=color.red, linewidth=2, title="EMA Lenta")