Whale Speed Volatility Divergence
- Asesores Expertos
- Mustafa Ozkurkcu
- Versión: 1.0
Este EA busca una ruptura de impulso/liquidez de dos capas:
Detección de divergencia (trigger):
-
TPS (ticks-per-second / bar tick_volume ) debe ser alto frente a su media reciente ( TPS_Multiplier ),
-
mientras que la Volatilidad (barra alta-baja ) debe ser baja frente a su media reciente ( Volatility_Multiplier ).
Esta combinación indica "flujo en un rango tranquilo" → una probable ruptura a corto plazo.
Dirección y filtro:
-
Si la barra de señal es verde ( cierre > apertura ) → considerar COMPRA; si es roja → VENTA.
-
Filtro de tendencia MA opcional ( Use_TrendFilter ): barra por encima de MA → COMPRA permitida; por debajo de MA → VENTA permitida.
Parámetros de la orden:
-
SL = barra de señal baja (COMPRA) o alta (VENTA).
-
TP = SL × TakeProfit_Multiplier (múltiplo de riesgo/recompensa).
-
El tamaño de la posición se calcula a partir de RiskPercentage . Si el margen es insuficiente, el tamaño se reduce iterativamente ( Reduce_On_Margin_Or_Limit , Open_Retry_* ).
Salvaguardas de ejecución (realidades del broker):
-
Antes de colocar órdenes, compruebe el spread, los niveles de stop/freeze, el tamaño del tick y un buffer de latencia.
-
Para las modificaciones de SL, utilice el acelerador, salte cuando esté demasiado cerca de la congelación, pre-modifique el refresco de ticks y afloje los pips para reducir los rechazos "cercanos al mercado".
-
En los fallos de apertura/modificación, aplique enfriamientos para evitar registros de spam y reintentos innecesarios.
Motor de trailing stop:
-
A medida que el precio se mueve a favor, adelanta el SL una distancia en pips ( TrailingStop_Pips ),
-
aplicando un paso mínimo en cada modificación ( Trailing_Min_Step_Pips ) y respetando las distancias stop/freeze + buffer.
Compatibilidad datos/calentamiento y tester:
-
Si no hay suficientes barras, el EA espera ( Require_History_Warmup ) o retrocede a otro timeframe.
-
En el tester, TPS puede ser emulado desde tick_volume ( Use_TickVolume_Emulation ) y las señales pueden ser fijadas a bar[1] ( Use_Closed_Bar ) para backtests estables/reproducibles.
OnTimer (cada 1s): Contador de TPS en tiempo real → tps_history[] ; media de máximos y mínimos de las últimas 5 barras → vol_history[] .
OnTick:
-
¿Calentamiento y símbolo/TF listos? Si no, espera o usa TF de reserva.
-
Calcula TPS_ahora / TPS_avg y Vol_ahora / Vol_avg (emulado en el probador).
-
Condición: TPS_now > TPS_avg × TPS_Multiplier AND Vol_now < Vol_avg × Volatility_Multiplier .
-
El color de la barra + el filtro MA opcional establecen la dirección.
-
Construir SL/TP, calcular tamaño a partir de riesgo, comprobar spread y stop/freeze, ejecutar ajuste de margen iterativo → abrir orden.
-
Si una posición está abierta, ejecuta trailing; antes de modificar, refresca tick + aplica holgura para mantener SL dentro de límites seguros.
Controles de riesgo y operaciones
-
TakeProfit_Multiplier
Establece TP como un múltiplo de la distancia SL (RR). Ejemplo: 2.0 = 1:2 RR. -
Max_Spread_Pips
Si el spread actual excede esto, omite las señales (evita entradas de poca liquidez). -
InpMagicNumber
Número mágico para etiquetar las operaciones del EA. En cuentas de compensación, una posición por símbolo. -
RiskPercentage
% del saldo arriesgado por operación. El tamaño del lote se deriva de esto, la distancia SL y el valor del tick. -
TrailingStop_Pips
Si está activado, el SL sigue al precio en esta cantidad de pips (respetando el stop/freeze + buffers). -
Max_Lots_Per_Trade
Límite máximo: aunque la fórmula de riesgo sugiera más, el tamaño no excederá este límite. -
Reduce_On_Margin_Or_Limit
Si la apertura falla debido al margen/volumen, reduce el lote y reintenta. -
Open_Retry_Attempts
Cuántos reintentos de lote reducido en apertura. -
Open_Retry_Factor
Cada reintento multiplica el lote por este factor (por ejemplo, 0,75 → reducir un 25%).
Filtro de tendencia (MA)
-
Use_TrendFilter
Cuando está activado, una COMPRA/VENTA sólo se permite si se alinea con el lado MA. -
MA_Period, MA_Method, MA_Price
Ajustes de MA para el filtro de tendencia (SMA/EMA/WMA, close/HLC3, etc.).
Lógica de Señales (TPS & Vol)
-
TPS_Multiplier
Umbral para el lado de "flujo". Más alto = más selectivo frente al TPS medio. -
Volatility_Multiplier
Umbral para la "tranquilidad". Más bajo = requisito más estricto para el rango bajo. -
HistorySize
Cuántos segundos/muestras de historial TPS/Vol guardar (temporizador de 1 segundo en vivo).
Backtest y robustez
-
Use_TickVolume_Emulation
En el tester, emular TPS a partir del tick_volumen de la barra en lugar del tick real. -
Use_Closed_Bar
Computa señales en barras cerradas (barra[1]) → reduce el sesgo de repaint/look-ahead. -
TPS_Lookback_Bars / Vol_Lookback_Bars
Bar lookbacks for TPS/Vol averages (tester path).
Garantías de ejecución
-
Modify_Throttle_Sec
Segundos mínimos entre modificaciones de SL (reduce spam/rechazos). -
Trailing_Min_Step_Pips
Mejora mínima de pips necesaria para mover el SL. -
Modify_Extra_Buffer_Pips
Buffer extra sobre los niveles de stop y freeze del broker. -
Enable_CloseToMarket_Backoff
En "close to market/invalid stops," reintentar una vez con distancia más floja. -
Backoff_Extra_Pips
Distancia extra utilizada para ese único reintento. -
Freeze_Skip_Pips
Si el SL actual está dentro del nivel de congelación + este buffer, omite la modificación (evita rechazos). -
Modify_Latency_Margin_Pips
Seguridad extra contra saltos de precios en vivo. -
Modify_Failure_Cooldown_Sec
Tiempo de espera después de una modificación fallida antes de intentarlo de nuevo. -
PreModify_Refetch_Tick
Actualiza el tick justo antes de modificar el SL; recalcula los límites con el precio actual. -
PreModify_Slack_Pips
Coloca el SL un toque más allá del límite teórico para reducir los errores "cerca del mercado". -
Open_Failure_Cooldown_Sec
Si la apertura falla (Sin dinero / límite de volumen), espera antes de reintentar - registros más limpios, comportamiento más seguro.
Datos y calentamiento
-
Auto_Select_Symbol
Auto-selecciona el símbolo si no está ya visible. -
Require_History_Warmup
No operar hasta que se hayan cargado suficientes barras. -
Auto_Find_Available_TF
Si el TF principal carece de datos, auto-fallback al primer TF con datos. -
Warmup_Min_Bars
Mínimo de barras requeridas antes de empezar. -
Fallback_Timeframe
Plazo de respaldo utilizado cuando los datos son insuficientes. -
Preload_Bars
Cuántas barras precargar al inicio.
-
Dimensionamiento de posiciones: lotes dinámicos a partir de RiskPercentage y distancia SL.
-
Ajustedel margen: utiliza OrderCalcMargin frente al margen libre; si no se ajusta, reduce iterativamente el tamaño.
-
Filtro de margen: omite entradas cuando se excede Max_Spread_Pips.
-
Protecciones a nivel de broker: niveles de stop/freeze + buffers extra + margen de latencia.
-
Política de reintentos: sólo contraer y reintentar en errores de volumen/dinero; no insistir en otros rechazos.
-
Enfriamientos: en fallos de apertura/modificación para evitar el exceso de negociación y de riesgo.
-
Ajuste primero la señal ( TPS_Multiplier , Volatility_Multiplier , lookbacks), luego pula la ejecución (trailing + pre-modify slack).
-
Majors (EURUSD H1/M30): mantener Max_Spread_Pips bajo; empezar PreModify_Slack_Pips alrededor de 0.4-0.8.
-
XAUUSD (D1/H1): tamaño de punto grande; ampliar TrailingStop_Pips , aumentar Modify_Latency_Margin_Pips y Backoff_Extra_Pips .
-
Scalp (M1/M5): comenzar con Use_Closed_Bar = true para mayor estabilidad; desactivarlo aumenta el riesgo.
Este EA/estrategia:
-
No es un consejo de inversión.
-
No garantiza beneficios; los backtests/optimizaciones no representan rendimientos futuros.
-
Las condiciones del mercado (noticias, caídas de liquidez, deslizamiento, latencia, límites del broker) pueden afectar negativamente a los resultados.
-
Una configuración incorrecta, un capital bajo, un apalancamiento elevado o unos porcentajes de riesgo inadecuados pueden provocar pérdidas de capital.
-
Realiceuna prueba de demostración/adelanto antes de empezar a operar; comience con un porcentaje de riesgo bajo (por ejemplo, 0,1-0,5%) e increméntelo gradualmente.
-
Los niveles de stop/freeze y las especificaciones de los contratos varían según el broker; verifique las condiciones de su broker antes de utilizar parámetros agresivos.

This could be great but a lack of proven sets AND control of LS is very dangerous.
On M5 this EA took a trade with LS 2. (TWO!?!?!) despite risk % set at 0.1% of balance.
Trade ended up at -330.
This will kill accounts.
Author can improve this EA with proven sets.