Cuando empiezas a programar sistemas en AmiBroker, tarde o temprano te encuentras con dos funciones que parecen hacer lo mismo… pero no lo hacen: ExRem() y Flip().
Ambas trabajan con señales binarias (1 o 0), pero su comportamiento puede cambiar por completo la lógica de tu estrategia si no entiendes bien lo que hacen.
En este artículo te explicamos la diferencia real entre ExRem y Flip, con ejemplos, visuales y un consejo final para usarlos como un pro. 🚀
🎯 ¿Qué hacen exactamente?
🔹 ExRem – Remove Excessive Signals
ExRem(Array1, Array2) elimina las señales repetidas. Es decir, solo se activa la primera vez que Array1 es verdadero, y se mantiene en 0 hasta que Array2 sea cierto, independientemente de las veces que se haya dado la variable Array1.
Una vez, se ha cumplido Array2, se vuelve a activar cuando haya otro verdadero en Array1.
Es ideal para evitar señales de compra o venta innecesarias.
🔹 Flip – Actúa como un interruptor
Flip(Array1, Array2) funciona como un latch, o interruptor binario. Activa (1) desde el primer verdadero en Array1, y permanece activado hasta que Array2 es True, que lo apaga (0)… hasta que vuelva a activarse con otro verdadero en Array1.
Útil si necesitas una condición que se mantenga “encendida” durante un periodo de tiempo determinado.
🧪 Ejemplo práctico
Imagina este conjunto hipotético de señales:
b n b n n n b n n s n b
Donde:
b= señal de Buy (Array1)s= señal de Sell (Array2)n= sin señal
🔍 Resultado con ExRem(buy, sell)
1 0 0 0 0 0 0 0 0 0 0 1
🔸 Solo se emite la primera señal de compra (ignora las siguientes) hasta que aparece una señal de venta.
🔍 Resultado con Flip(buy, sell)
1 1 1 1 1 1 1 1 1 0 0 1
🔹 La señal de compra se mantiene activa hasta que llega la de venta. Luego, se apaga, y vuelve a activarse en el siguiente Buy.
🧠 ¿Cuándo usar cada uno?
Situación
Quieres eliminar señales duplicadas de una variable
Necesitas marcar un período «activo» entre dos eventos
Te interesa que una variable esté activa hasta que se produzca una segunda
Quieres mantener una condición hasta que se «resetea» con otra
Usa ExRem() si…
✅
❌
✅
❌
Usa Flip() si…
❌
✅
❌
✅
💡 Consejo de experto
¿Confundes señales en tus sistemas? Usa ExRem() cuando quieras asegurarte de que solo haya una entrada activa entre una compra y una venta.
Usa Flip() cuando necesites que una condición se mantenga encendida (por ejemplo, una posición abierta) hasta que ocurra algo (como un cierre).
Ambas funciones son poderosas, pero usarlas mal puede llevar a backtests engañosos, errores de interpretación o duplicación de operaciones.
Ahora que sabes la diferencia real, ¿por qué no pruebas con tus propias reglas en AmiBroker y ves cómo cambia tu curva de equity?












0 comentarios