Errores más frecuentes en Amibroker

por | Ene 29, 2023 | Amibroker, Premium | 0 Comentarios

Llevo años utilizando Amibroker y me he dejado las pestañas como se suele decir.

Y la verdad que ahora mismo, con más o menos dificultad, soy capaz de plasmar todas mis ideas de trading en AFL (Amibroker Formula Language).

Si tu también quieres aprender a hacerlo te recomiendo mi Curso de Trading Sistemático donde te enseño a dar tus primeros pasos en Amibroker hasta dominarlo y ser capaz de validar tu operativa completa de trading.

Para evolucionar, me ha funcionado muy bien ir revisando indicadores y sistemas de otros autores, copiarlos a mano y modificarlos para llegar a entender exactamente qué hacía cada función y cómo se utilizaban.

Recuerdo que al principio no fue fácil. Venía de programar con ProRealTime y me parecía menos intuitivo.

Poco a poco, fui cambiando de opinión y particularmente ahora creo que AFL es un lenguaje de programación muy sencillo pero muy potente.

Hoy te traigo 6 errores muy típicos que te pueden ayudar

➡️ 1. Errores de código

Uno de los primeros errores que solía hacer cuando aprendía a trabajar con Amibroker es el uso incorrecto del signo igual “=”.

Piensa que no había estudiado programación…

En Amibroker (y en muchos otros lenguajes de programación) el signo igual significa asignación y no igualdad como podríamos intuir. Es decir, se utiliza para asignarle un valor a una variable.

Si lo que quieres es una coincidencia exacta debes usar el doble igual “==”.

Por ejemplo, si escribes ValorRSI=20, a partir de entonces el valor de esa variable es 20. En cambio, si escribes ValorRSI==20, necesitas que el RSI sea 20 para que la condición se cumpla.

Otro error muy común es el uso del condicional if. Podrías escribir lo siguiente:

Desbloquea todos los contenidos con la Zona Premium

Pero ahí hay un error. Si usas un solo signo igual, entonces Amibroker no está buscando una coincidencia, tan solo, le está asignando un valor a una variable.

Si lo que quieres es comprar cuando el RSI es igual a 20 deberías escribir:

Desbloquea todos los contenidos con la Zona Premium

➡️ 2. Mirar al futuro (Future Leak)

Un error importante a evitar es asegurarse de que tu sistema no mire hacia el futuro.

Es decir, asegúrate de no usar valores futuros en el código que no sabrías en el momento de operar en real.

Un ejemplo clásico es cuando tu sistema opera en la apertura, pero se basa en un indicador (por ejemplo, el RSI) que utiliza el precio de cierre.

Por ejemplo, si escribes Buy = RSI(14) < 20; y utilizas BuyPrice = Open sin retrasar la señal, estarás cometiendo un error de mirar al futuro.

El sistema compra en la apertura, pero el indicador se calcula con el cierre de la misma vela.

En este caso, una solución sería usar SetTradeDelays() para retrasar la entrada a la próxima apertura de la barra.

Los errores de mirar al futuro pueden ser difíciles de detectar, por lo que necesitas tomar precauciones. Recuerda siempre que, si tus resultados parecen demasiado buenos para ser reales, desconfía, tu código puede tener algún error de estar mirando al futuro.

➡️ 3. Utilizar precios de entrada y salida poco realistas

Bastante parecido al error anterior. Tienes que asegurarte que el sistema está utilizando precios de entrada y salida factibles.

Por ejemplo, utilizar un precio límite como BuyPrice = Open * 0.95 le dice a Amibroker que compre con un precio un 5% inferior al real.

Lo mismo pasa si compramos en el Mínimo de una barra. Es un precio muy poco probable de ser ejecutado en real. Estás ignorando el impacto de la diferencia entre el Bid y el Ask.

Dicho con otras palabras, si tu sistema está comprando o vendiendo en mínimos o máximos del día, estás haciendo suposiciones poco realistas.

Es mejor corregir el código de la siguiente manera, de esta manera introducimos un deslizamiento más realista al precio de entrada asegurando que tu entrada se hubiera ejecutado completamente en real:

Desbloquea todos los contenidos con la Zona Premium

De esta forma, igualmente estamos entrando al 5% por debajo del precio de apertura, pero nos aseguramos que la orden se ha ejecutado añadiendo la condición que el mínimo de la vela está por debajo de nuestro precio de entrada.

Esto nos proporciona un margen de seguridad y garantiza que las entradas del backtest se habrían podido ejecutar.

Si no utilizamos algo así, Amibroker puede ejecutar operaciones irreales y estaríamos obteniendo unos resultados mejores que nos podrían hacer pensar que la estrategia es buena.

➡️ 4. Utilizar datos incorrectos

Cuando ejecutas un explorador o un backtest tienes que entender los datos que estás utilizando:

  • ¿Los splits se han ajustado?
  • ¿Los dividendos se han ajustado?
  • ¿Has incluido en el universo aquellas acciones que ya no pertenecen al índice?

Estas son algunas de las preguntas que debes hacerte antes de escoger un proveedor de datos y antes de lanzar un backtest.

Si utilizas datos que no han ajustado splits, tendrás que considerar muchos gaps. Esto no es importante si operas en temporalidad intradiaria pero sí lo es si utilizas una estrategias de más largo plazo.

Si utilizas datos sin ajustar dividendos los resultados del backtest serán inferiores a los de la operativa real. En cambio, si ajustas dividendos en el backtest se van a tomar entradas erróneas ya que el precio ha sido modificado.

Los datos tienen que incluir acciones deslistadas y con los constituyentes. Las acciones se eliminan de la bolsa continuamente y hacer un backtest sin estos valores lleva a lo que se conoce como sesgo de supervivencia y, por lo tanto, obtendríamos resultados distorsionados.

Si tienes datos diarios, ten en cuenta que ejecutar órdenes con precios intradiarios son poco realistas.

Los sistemas intradiarios normalmente necesitan datos de 1 minuto o menos para proporcionar simulaciones precisas.

Si utilizas datos fundamentales, ten en cuenta los ajustes y las discrepancias contables que se pueden dar. Por ejemplo, la FED puede dar un dato de desempleo que posteriormente ajusta cuando tiene más datos. Para hacer un backtest necesitas el valor inicial y no el ajustado pues no sería realista.

➡️ 5. No cerrar posiciones de acciones deslistadas

Otro error puede ocurrir cuando Amibroker mantiene una posición abierta de una acción que ha sido deslistada y que ha dejado de cotizar.

Por norma general, te interesa cerrar cualquier posición que tenga acciones deslistadas o que hayan sido fusionadas con otra compañía.

Si ves que tus resultados solo tienen un pequeño número de operaciones y muchas posiciones abiertas, confirma que sean acciones que siguen cotizando a día de hoy.

Puedes utilizar el siguiente código para cerrar esas posiciones:

Desbloquea todos los contenidos con la Zona Premium

Si estás utilizando retraso en la compra o venta, utiliza mejor este trozo de código:

Desbloquea todos los contenidos con la Zona Premium

Si utilizas nuestra Base de Datos Premium podrías utilizar también el siguiente código:

Desbloquea todos los contenidos con la Zona Premium

Y añadir a la condición de compra que sea valida_y_dentro y a la de venta que no lo sea.

➡️ 6. No establecer límites de tamaño de posición

En cada sistema que crees, asegúrate de no estar comprando una cantidad ingesta de acciones. Por ejemplo, si una acción tiene un volumen diario de 100.000 acciones no puedes comprar 50.000 acciones, puesto que tu compra influiría radicalmente en el precio de ese activo y, por lo tanto, en el precio de compra y venta.

Cuando operas en real, normalmente no obtienes el precio que a ti te gustaría. Eso es algo que le tienes que indicar a Amibroker, indicando límites de volumen para que el backtest solo compre un pequeño porcentaje del volumen diario.

Lo puedes hacer en la ventana de Settings, en Portfolio. Normalmente yo le indico un 2% del volumen diario promedio lo que significa que mi entrada no puede ser más grande que el 2% del volumen diario de la acción.

Hasta aquí los 6 errores que te quería comentar.

No quiero terminar, sin decirte que lo bueno de aprender Amibroker en comunidad es que los errores se solucionan muy rápido y puedes seguir avanzando en tus objetivos sin perder tiempo.

Si te ha parecido útil déjame un comentario y te leo si quieres contarme algún otro error típico que te haya pasado!

La newsletter de MKTSignals

Si quieres estar al tanto de todas nuestras novedades, suscríbete a nuestra newsletter. ¡Es gratis!

¡Puntúa este artículo!

Total votos: 8. Promedio: 5

También te puede interesar:

¿Quieres acceder a todo el contenido Premium HOY?

+50 códigos de Amibroker

0 comentarios

Enviar un comentario

Loading...