En ocasiones nos puede interesar eliminar las cotizaciones de uno o varios valores de los que tenemos en cartera
Si no son muchos los valores que eliminar sus precios, podemos ir a cada uno de ellos y en la barra superior de Amibroker seleccionar Symbol -> Quote Editor, seleccionar todas las cotizaciones y hacer clic en el botón que se encuentra en la parte inferior izquierda “Delete”.


Uno de los motivos por el que se me ocurre que podemos necesitar eliminar las cotizaciones anteriores es porque el plugin de Investing no descarga todas las cotizaciones cada vez que abrimos un símbolo.
El plugin analiza la fecha de la última vela y únicamente descarga esa última vela y las correspondientes a partir de esa fecha
Por lo que si por cualquier motivo, hubiera alguna vela anterior que faltase, no las tendría en cuenta y tendríamos un GAP en el tiempo en cuando a cotizaciones se refiere.
Otra posible razón que se me ocurre para querer borrar masivamente las cotizaciones históricas de un Watchlist sería activos de futuros.
Cuando concatenamos futuros con vencimientos continuos, se producen los rolados, es decir, se producen saltos en los precios que en caso de backtest, nos estarían generando resultados nada realistas.
Para poder solventar ese problema, lo que se hace es back-ajustar los datos del pasado, hablaré en otro artículo sobre cómo back-ajustar los datos de las cotizaciones históricas o en su defecto, si la serie histórica ya viene actualizada, borraríamos las cotizaciones anteriores para volver a descargarlas y de ese modo tener los datos actualizados.
Por lo tanto, cuando queremos borrar las cotizaciones de muchos activos masivamente, podría ser tedioso tener que ir de uno en uno.
No es la primera vez que escribo sobre borrar cotizaciones:
- Cómo borrar cotizaciones en un rango de fechas
- Cómo Borrar cotizaciones automáticamente en Amibroker
Hoy te explico una solución similar aunque diferente: es el borrado masivo de todos los precios de un número determinado de activos mediante un sencillo script que debemos ejecutar con Amibroker abierto y situado en la base de datos de la que queremos borrar cotizaciones.
Dicha tarea no la vamos a realizar mediante AFL, sino que utilizaremos scripts.
🎯 Amibroker: Los scripts
Un Script es un conjunto de instrucciones escritas desarrolladas en JavaScript (ficheros con extensión *.js) que sirven para automatizar procesos y que se ejecutan de manera secuencial para realizar tareas específicas.
El código que mostraré a continuación no es un código AFL para ejecutar desde Amibroker e incluye unos activos determinados a efectos prácticos, para vuestro caso, tendréis que reemplazar ese listado por los valores que queráis borrar las cotizaciones.
💡 Base de Datos: Las Watchlists
Amibroker nos brinda la oportunidad de trabajar con Watchlists y afortunadamente, esa información la podemos ver no sólo desde Amibroker, sino también desde fuera del programa, con un simple explorador de archivos y un editor de texto.

Si vamos a la carpeta donde le indicamos a Amibroker dónde guardar la base de datos, veremos que hay una subcarpeta llamada WatchLists, en dicha carpeta veremos que se guardan todas las listas de activos que hemos definido para esa base de datos, se trata de ficheros con la extensión *.tls.

Si pulsamos con el botón derecho del ratón sobre uno de ellos y elegimos la opción “abrir con” y seleccionamos un procesador de texto, veremos que se abre una ventana donde en cada línea tendremos todos los activos de esa WatchList. Podríamos copiar dicha información para llevárnosla al script.
Si editamos cualquiera de estos ficheros con un editor de texto, nos brinda una nueva oportunidad para poder gestionar de forma externa las WatchList con independencia de Amibroker, lo que nos facilita el trabajo.
🎯 Visualización: Barra de procesos
He trabajado con algunos scripts y una vez que se ejecutan he echado de menos poder ver cómo se realizaba el proceso, por lo que he incluido algunas líneas de código que sirven para poder visualizar en qué estado se encuentra.
Para ello mostrará el porcentaje de borrado de cada uno de los activos indicados en el script y también mostrará en qué situación se encuentra con respecto al borrado total.

📋 Automatización: Acceso directo
Se me ocurren varias formas de poder ejecutar el script de forma automática desde el propio Ambroker, por ejemplo, crear un batch que llame al script, pero el procedimiento que mostraré es compatible con la pantalla que mostrará la barra de procesos y consiste en crear un acceso directo sobre el propio script.
Para ello vamos a utilizar Windows, iremos con un explorador a la ruta donde hayamos guardado el script, clic botón derecho del ratón -> Nuevo -> Crear Acceso directo.

En el hueco donde nos pide la dirección indicaremos lo siguiente:

cscript //nologo «D:\Program Files\AmiBroker\Scripts\RemoveAllQuotes (con Barra).js»
Cambiaremos por la ruta donde hayamos guardado el script e indicaremos el nombre que le hayamos dado al mismo.
El resultado será un archivo que funciona como un ejecutable que no sólo nos borrará todas las cotizaciones de los activos que hayamos indicados, sino que nos mostrará una pantalla en la que indica los porcentajes que lleva dentro del proceso.
Este script modifica directamente nuestra base de datos, por lo que recomiendo hacer una copia de seguridad de la misma antes de ejecutarlo por si hubiesen cometido algún error a la hora de crear el script.
🎓 ¿Quieres Dominar AmiBroker Completamente?
Esta es solo una herramienta de las cientos que puedes crear con AmiBroker.
Si quieres:
- ✅ Crear tus propios screeners personalizados
- ✅ Programar sistemas de trading completos
- ✅ Hacer backtests profesionales sin errores
- ✅ Optimizar estrategias correctamente
- ✅ Automatizar tu análisis completamente
Nuestro Curso de AmiBroker desde Cero te enseña TODO lo que necesitas saber.
Más de 200 inversores ya dominan AmiBroker gracias a este curso estructurado paso a paso.

Este artículo fue cortesía de Juan Carlos Sobrino para MKTSignals.













0 comentarios