
Il s’agit d’une stratégie de trading quantitative basée sur une combinaison d’indicateurs RSI à double équilibre, tout en intégrant un mécanisme de stop-loss dynamique. La stratégie utilise les moyennes mobiles de l’indicateur à 9 cycles et à 21 cycles (EMA) comme indicateur principal de détermination de la tendance, avec l’indicateur relativement fort (RSI) comme condition de filtrage, pour gérer les risques et les gains en définissant des stop-loss dynamiques.
La stratégie utilise un croisement de l’EMA rapide (cycle 9) et l’EMA lente (cycle 21) pour capturer les changements de tendance. Lorsque la ligne rapide monte au-dessus de la ligne lente et que le RSI est inférieur à 70, une position de plusieurs têtes est ouverte; lorsque la ligne rapide descend au-dessus de la ligne lente et que le RSI est supérieur à 30, une position vide est ouverte.
Il s’agit d’une stratégie de trading quantifiée avec une structure claire et une logique rigoureuse. Le risque est géré par la capture de tendances croisées uniformes, le filtrage des moments d’entrée dans le RSI et la gestion des stop-loss dynamiques. Bien qu’il existe certaines limitations, la stabilité et la rentabilité de la stratégie peuvent être encore améliorées par l’orientation d’optimisation recommandée.
/*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")