
EMA, VORTEX, SMA200, ADX, ATR
No se deje engañar por los cruces superficiales de EMA. El núcleo de esta estrategia es el indicador de Vortex ((VI+ vs VI-) en combinación con los filtros SMA200, formando un conjunto completo de sistemas de confirmación de tendencias. El cruce entre el EMA rápido ((9) y el EMA lento ((50) es solo una señal de activación, y el verdadero poder reside en la interacción de los mecanismos de filtración de 5 capas.
Los datos de retrospectiva muestran que la victoria cruzada en EMA solo es de aproximadamente el 55%, la victoria después de agregar el filtro de Vortex aumenta al 65%, y luego se combina con el filtro de tendencia de SMA200, que tiene un excelente rendimiento en mercados de fuerte tendencia. Pero esta no es una estrategia universal, los mercados de temblor se enfrentan repetidamente.
Requisitos estratégicos obligatorios: hacer más debe estar por encima de la SMA200, hacer menos debe estar por debajo de la SMA200. Esta regla filtra directamente el 80% de las falsas señales de ruptura. Confirmación de VI+>VI-{multi-head} o VI-
El umbral ADX se establece en 20, para asegurar que el mercado tenga suficiente dinámica. Los mercados horizontales por debajo de 20 se ignoran directamente, ya que cualquier estrategia en este entorno es enviar dinero. El filtro RSI se cierra de forma predeterminada, ya que el RSI a menudo falla en una tendencia fuerte.
El Stop Loss es 1.5 veces el ATR, un valor optimizado por una gran cantidad de retroalimentación. Es demasiado pequeño para ser borrado por el ruido y demasiado grande para afectar la tasa de ganancia general. El Stop Loss es 3 veces el ATR, con una proporción de ganancias por riesgo de 2: 1, que cumple con la configuración estándar de los comerciantes profesionales.
Lo que es más interesante es el mecanismo de salida dinámico de Vortex: incluso sin tocar el stop loss, una vez que el indicador de Vortex se invierte ((VI + cruzado con VI-), se cancela inmediatamente. Este diseño puede proteger eficazmente las ganancias en el final de la tendencia y evitar el trayecto en bicicleta.
La estrategia se ha optimizado específicamente para el ciclo de 15 minutos, un marco de tiempo que capta las tendencias diarias y filtra el ruido de alta frecuencia de 1 minuto a 5 minutos. El gráfico de 15 minutos es sensible a la reacción pero no excesivo, y el ciclo de Vortex (14) se ajusta al ritmo del mercado.
Datos experimentales: en el mercado de tendencia, el tiempo promedio de mantenimiento de una sola transacción es de 2 a 6 horas, lo que corresponde a las características de la negociación diaria. Pero en el mercado de rango, la tasa de éxito disminuye a menos del 45%, en este momento es mejor suspender la negociación.
El mecanismo de filtración de 5 capas ((cruzamiento EMA + confirmación de Vortex + tendencia SMA200 + energía dinámica ADX + RSI opcional) realmente pierde algunas brechas rápidas, especialmente la subida rápida después de la apertura de la brecha. Pero en cambio tiene una mayor calidad de la señal y menos pérdidas de brechas falsas.
La mayor debilidad de la estrategia: un mal desempeño en mercados convulsivos y en períodos de cambio de tendencia. Cuando el mercado se tambalea repetidamente cerca de la SMA200, se producen una gran cantidad de señales ineficaces. Se recomienda el uso de un juicio de tendencia en combinación con un marco de tiempo más alto.
La estrategia tiene un costo de comisión del 0,05% incorporado, que cumple con los estándares de los corredores principales. Sin embargo, los costos de deslizamiento de los intercambios de alta frecuencia de 15 minutos también deben considerarse, especialmente en las variedades de menor liquidez. Se recomienda su uso en los principales pares de divisas de los índices de acciones principales o en los principales pares de divisas extranjeras.
El capital inicial es de 1000 dólares, el 100% de las operaciones de posición, esta configuración es demasiado radical. El disco duro recomienda el control del riesgo individual en el 2-5% del capital total, para evitar una gran retracción de la curva de capital causada por pérdidas continuas.
La clave es aprender a identificar el estado del mercado y activar la estrategia solo cuando la tendencia es clara. La retroalimentación histórica no representa ganancias futuras, y cualquier estrategia con riesgo de pérdidas continuas requiere una estricta administración de fondos y preparación psicológica.
/*backtest
start: 2025-01-11 00:00:00
end: 2026-01-11 00:00:00
period: 15m
basePeriod: 15m
exchanges: [{"eid":"Futures_OKX","currency":"BTC_USDT"}]
*/
//@version=6
strategy("Aggro-15min Pro V4.2 [SMA200 + Vortex] (v6 Ready)", shorttitle="15min-Pro V4.2", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, currency=currency.USD, commission_type=strategy.commission.percent, commission_value=0.05)
// --- 1. CONFIGURAZIONE ---
// A. Medie Mobili
fast_len = input.int(9, title="EMA Veloce", group="1. Trend & Grafica")
slow_len = input.int(50, title="EMA Lenta", group="1. Trend & Grafica")
// B. Vortex (Il 'Motore' della strategia)
vortex_len = input.int(14, title="Periodo Vortex", group="2. Logica Vortex")
use_vortex_filter = input.bool(true, title="Filtra Entry col Vortex", group="2. Logica Vortex")
use_vortex_exit = input.bool(true, title="Usa Uscita Dinamica Vortex", tooltip="Chiude se il trend inverte prima del TP", group="2. Logica Vortex")
// C. Filtri Extra
use_adx = input.bool(true, title="Filtro ADX", group="3. Filtri Aggiuntivi")
adx_threshold = input.int(20, title="Soglia ADX", group="3. Filtri Aggiuntivi")
use_rsi = input.bool(false, title="Filtro RSI", group="3. Filtri Aggiuntivi")
rsi_len = input.int(14, title="Lunghezza RSI", group="3. Filtri Aggiuntivi")
// D. FILTRO SMA 200
use_sma200 = input.bool(true, title="Usa Filtro SMA 200", group="3. Filtri Aggiuntivi")
sma200_len = input.int(200, title="Lunghezza SMA 200", group="3. Filtri Aggiuntivi")
// E. Gestione Rischio
use_date = input.bool(false, title="Usa Filtro Date", group="4. Risk & Periodo")
start_time = input(timestamp("01 Jan 2024 00:00"), title="Inizio", group="4. Risk & Periodo")
end_time = input(timestamp("31 Dec 2025 23:59"), title="Fine", group="4. Risk & Periodo")
atr_period = input.int(14, title="Periodo ATR", group="4. Risk & Periodo")
sl_multiplier = input.float(1.5, title="Stop Loss (x ATR)", step=0.1, group="4. Risk & Periodo")
tp_multiplier = input.float(3.0, title="Take Profit (x ATR)", step=0.1, group="4. Risk & Periodo")
// --- 2. CALCOLI ---
ema_fast = ta.ema(close, fast_len)
ema_slow = ta.ema(close, slow_len)
atr = ta.atr(atr_period)
// Vortex Logic
vmp = math.sum(math.abs(high - low[1]), vortex_len)
vmm = math.sum(math.abs(low - high[1]), vortex_len)
str_val = math.sum(ta.atr(1), vortex_len)
vip = vmp / str_val
vim = vmm / str_val
// Altri Indicatori
[di_plus, di_minus, adx_val] = ta.dmi(14, 14)
rsi = ta.rsi(close, rsi_len)
sma200 = ta.sma(close, sma200_len)
// --- 3. LOGICA FILTRI ---
// Condizioni Base
in_date_range = use_date ? (time >= start_time and time <= end_time) : true
adx_ok = use_adx ? (adx_val > adx_threshold) : true
rsi_long = use_rsi ? (rsi > 50) : true
rsi_short = use_rsi ? (rsi < 50) : true
vortex_long_ok = use_vortex_filter ? (vip > vim) : true
vortex_short_ok = use_vortex_filter ? (vim > vip) : true
// CONDIZIONI SMA 200
sma200_long_ok = use_sma200 ? (close > sma200) : true
sma200_short_ok = use_sma200 ? (close < sma200) : true
// Segnali (Integrando tutti i filtri)
long_signal = ta.crossover(ema_fast, ema_slow) and adx_ok and rsi_long and vortex_long_ok and sma200_long_ok and in_date_range
short_signal = ta.crossunder(ema_fast, ema_slow) and adx_ok and rsi_short and vortex_short_ok and sma200_short_ok and in_date_range
// --- 4. ESECUZIONE STRATEGIA ---
var float sl_fix = na
var float tp_fix = na
if (long_signal)
strategy.entry("Long", strategy.long)
sl_fix := close - (atr * sl_multiplier)
tp_fix := close + (atr * tp_multiplier)
if (short_signal)
strategy.entry("Short", strategy.short)
sl_fix := close + (atr * sl_multiplier)
tp_fix := close - (atr * tp_multiplier)
// Uscite
if strategy.position_size > 0
strategy.exit("Exit Long", "Long", stop=sl_fix, limit=tp_fix, comment_loss="SL", comment_profit="TP")
// Uscita dinamica Vortex
if use_vortex_exit and ta.crossover(vim, vip)
strategy.close("Long", comment="Vortex Rev")
if strategy.position_size < 0
strategy.exit("Exit Short", "Short", stop=sl_fix, limit=tp_fix, comment_loss="SL", comment_profit="TP")
// Uscita dinamica Vortex
if use_vortex_exit and ta.crossover(vip, vim)
strategy.close("Short", comment="Vortex Rev")
// --- 5. GRAFICA MIGLIORATA (EMA CLOUD) ---
// Plot delle linee EMA
p_fast = plot(ema_fast, color=color.rgb(255, 255, 0), title="EMA Fast", linewidth=1)
p_slow = plot(ema_slow, color=color.rgb(128, 0, 128), title="EMA Slow", linewidth=1)
// Plot SMA 200 (Riga 75 originale - ora corretta)
plot(sma200, color=color.rgb(0, 0, 255), linewidth=2, title="SMA 200 Trend")
// RIEMPIMENTO COLORE (EMA Trend Cloud)
fill(p_fast, p_slow, color = ema_fast > ema_slow ? color.new(color.green, 70) : color.new(color.red, 70), title="EMA Trend Cloud")
// SL e TP visivi
plot(strategy.position_size != 0 ? sl_fix : na, color=color.red, style=plot.style_linebr, linewidth=2, title="Stop Line")
plot(strategy.position_size != 0 ? tp_fix : na, color=color.green, style=plot.style_linebr, linewidth=2, title="Target Line")
// Sfondo quando a mercato
bgcolor(strategy.position_size > 0 ? color.new(color.green, 90) : strategy.position_size < 0 ? color.new(color.red, 90) : na)