
La estrategia es un sistema de seguimiento de tendencias basado en una media móvil simple de 200 ciclos (MA200), que combina indicadores técnicos como el indicador de fuerza relativa (RSI), el índice de tendencia promedio (ADX) y el rango real promedio (ATR) para formar un marco de decisión comercial completo. La estrategia logra un control efectivo del riesgo a través de la configuración de objetivos de pérdida y ganancia dinámicos.
La lógica central de la estrategia se basa en los siguientes puntos clave:
La estrategia se basa en la combinación de varios indicadores técnicos para construir un sólido sistema de seguimiento de tendencias. La estrategia está diseñada para controlar el riesgo y mejorar la fiabilidad de las operaciones mediante un mecanismo de suspensión dinámica y confirmación de señales. Aunque hay espacio para la optimización, en general es una estrategia de negociación de valor práctico.
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"TRB_USDT"}]
*/
//@version=5
strategy("BTC/USD MA200 with RSI, ADX, ATR", overlay=true)
// Definition of the main moving average
ma_trend = ta.sma(close, 200) // Main trend filter
// Definition of RSI and ADX
rsi = ta.rsi(close, 14)
[diplus, diminus, adx] = ta.dmi(14, 14) // Correction for ADX
// Definition of ATR for Stop Loss and Take Profit
atr = ta.atr(14)
// Conditions for crossing of the MA200
crossover_condition = ta.crossover(close, ma_trend)
crossunder_condition = ta.crossunder(close, ma_trend)
// Trend confirmation after 2 bars
buy_confirmation = crossover_condition[2] and (rsi > 40) and (adx > 20) and close > ma_trend
sell_confirmation = crossunder_condition[2] and (rsi < 60) and (adx > 20) and close < ma_trend
// Definition of Stop Loss and Take Profit
take_profit = close * 1.02 // 2% profit
stop_loss = close - (1.5 * atr) // Dynamic stop based on ATR
// Execution of orders
if (buy_confirmation and strategy.opentrades == 0)
strategy.entry("Buy", strategy.long)
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", limit=take_profit, stop=stop_loss)
label.new(bar_index, high, "BUY", style=label.style_label_down, color=color.green, textcolor=color.white, size=size.normal)
if (sell_confirmation)
if (strategy.opentrades > 0)
strategy.close("Buy")
label.new(bar_index, low, "SELL", style=label.style_label_up, color=color.red, textcolor=color.white, size=size.normal)
// Draw the main moving average
plot(ma_trend, color=color.purple, title="MA 200")