¿Qué es un sistema de trading?
Un sistema de trading es un conjunto de reglas claras que explicitan cuándo entrar en el mercado, con qué tamaño de posición, con qué stop de seguridad, en qué mercado y cuándo y cómo cerrar la posición.
Por ejemplo, un sistema de trading sencillo podría ser el siguiente:
Compraremos 300 acciones del Banco Santander cuando la media móvil de 30 periodos cruce a la de 50 periodos de abajo a arriba. Pondremos un stop loss justo por debajo de la media móvil de 50 periodos. Si el precio se mueve a favor, una vez alcanzado un avance del 10% se deshará la mitad de la posición y se continuará con el resto hasta que la media móvil rápida cruce a la lenta de arriba a abajo.
Últimamente, la sección «I+D+I» de Novatos Trading club se ha estado centrando en el desarrollo de sistemas de trading a través del backtesting.
¿Qué es hacer backtesting en trading?
El backtesting («probar hacia a atrás») consiste en, dado un sistema de trading, probarlo en datos históricos y calcular qué beneficios o pérdidas se habrían alcanzado en un determinado periodo del pasado.
Hoy vamos a explicar cómo podemos utilizar el backtesting y ProRealTime para preparar un sistema de trading y depurarlo hasta conseguir un sistema ganador que podamos aplicar en el presente.
¿cómo hacer Backtesting en Prorealtime?
ProRealTime es un software de gráficos sencillo de utilizar y, a la vez, muy potente. Es el que empleamos habitualmente en Novatos Trading club para presentar nuestras operaciones. Este programa, que es completamente gratis para gráficos que no sean intradía en tiempo real, tiene un módulo llamado ProBacktest que facilita mucho la labor del backtesting.
Para conseguir un sistema que pueda dar pingües beneficios en el futuro, el primer paso es que los pudiera haber dado en el pasado. Esto no es garantía de nada, pero es un inmejorable punto de partida.
Empezaremos por inventarnos un sistema de trading. Lo mejor es que sea sencillito de todo. Una o dos reglas muy básicas, y luego, añadir detalles para refinar su comportamiento en los momentos en los que peor funcione:
Primer paso en el backtesting
Será decidir en qué marco vamos a operar. Podemos decantarnos por sólo posiciones largas en valores españoles operando con gráficos diarios. Podemos pensar en posiciones largas o cortas en futuros sobre materias primas en mercados americanos intradía. Podemos pensar en sólo posiciones cortas en CFD‘s sobre índices mundiales en plazos de semanas, etc.
Hay que definir qué mercado, qué marco temporal y qué tipo de posiciones abriremos.
Para nuestro ejemplo vamos a centrarnos sólo en posiciones largas, en valores de la bolsa española que formen parte del IBEX35 (Santander, Telefónica, Repsol, Técnicas reunidas, etc.). Nos moveremos con gráficos diarios.
Segundo paso en el backtesting
Hay que establecer es cuál va a ser nuestra referencia para entrar y cuál para salir del mercado.
Nuestra idea es la de comprar primero para vender después a un precio mayor. Intentaremos cazar tendencias alcistas de varios días por lo que nos fijaremos en el precio y en algún indicador seguidor de tendencias para poder aguantar sobre ellas. Además, para las entradas atenderemos a las señales de algún oscilador.
Concretando, pondremos una media móvil simple para seguir las tendencias del precio y utilizaremos al RSI para capturar buenos puntos de entrada.
Cogeremos como valor de partida a Telefónica para nuestras pruebas. Tiene la ventaja de ser el valor más líquido del mercado español.
Así pues, nuestro sistema de trading de ejemplo queda como sigue:
Abriremos nuestra posición de 2000€ en Telefónica cuando el precio esté por encima de su media móvil simple de 50 periodos. Además el RSI de 5 periodos deberá estar en zona de sobreventa (menor de 30%).
No cerraremos la posición hasta que el precio cruce de arriba a abajo su media móvil de 50 periodos.
Por seguridad, mantendremos un stop loss que iremos actualizando cada pocos días por debajo de la media móvil de 50 periodos. Este stop nunca debería dispararse, puesto que la condición de salida está justo por encima.
La idea es programar esto en ProRealTime. Cuando lo tengamos, él nos dirá cuándo entrar y cuándo salir atendiendo a nuestras condiciones.
Se supone que cuando el ordenador nos recuerde que tenemos que entrar o salir del mercado, nosotros daremos a nuestro broker la orden correspondiente. Esto no quita que un día nos olvidemos de atender a la bolsa y haya un colapso en los precios. Nos alegraremos de tener una orden de stop de seguridad en el mercado que nos sacará de la posición sin nuestra intervención.
Para implementar nuestro sistema en ProRealTime, lo primero es crear un gráfico de Telefónica con su media móvil de 50 periodos y añadir un indicador RSI de 5 periodos. Esto nos facilitará mucho la programación y el seguimiento del backtesting.
Añadiremos un nuevo ProBacktest, que nombraremos como queramos.
Programaremos con el asistente o tecleando el código si lo conocemos (es muy sencillito y se aprende muy fácilmente).
Una vez definido el sistema tenemos que establecer las condiciones de la prueba. Pinchando en «Gestión del capital», fijamos el capital de partida en 2000€ y le ponemos un precio fijo de comisiones de 10€ por compra o venta.
También hay que especificar entre qué fechas queremos hacer el ensayo.
Para empezar, decidimos probar nuestro sistema sobre los últimos diez años de Telefónica. Esto es, desde el 1 de enero de 1999 hasta la fecha actual.
Ejecutamos el test («Validar programa») y comprobamos nuestros resultados. Con este sistema, desde enero del 99, habríamos ganado 3664€.
El programa presenta un informe detallado de cómo nos habría ido, resaltando datos claves como cuál habría sido nuestra máxima pérdida o cuál es el porcentaje de operaciones ganadoras.
Encima de nuestro gráfico de Telefónica, añade una curva de liquidez y un histograma de posiciones que nos permiten saber de un vistazo cómo se habría comportado nuestro sistema.
Además, sobre el gráfico de precios, nos pinta flechas verdes o cruces rojas, indicando cuando abriríamos o cerraríamos nuestras posiciones.
Con esto ya hemos dado el primer paso para crear un sistema de trading. Hemos realizado un diseño preliminar y lo hemos probado en unas condiciones determinadas.
Es estupendo que el sistema arroje resultados positivos, pero no queremos sobrevivir simplemente, queremos ganar lo máximo posible.
Ha llegado la hora de depurar el sistema. Ha llegado la hora de la optimización. Pero esto… lo veremos en el próximo episodio.
Si discrepas, si no entiendes algo, si estás de acuerdo, si tienes una idea, si te enfrentas a un problema ¡añade tu comentario!
Javier, por lo que tengo entendido, PRT ha pasado varias funciones de baktesting a su versión de pago. No obstante, este artículo ya es muy antiguo y, respecto a este tema, te aconsejo que leas esto:
https://www.novatostradingclub.com/formacion/conclusiones-sobre-los-sistemas-mecanicos/
Buenos días, tenía una gran duda, y es que en tu planteamiento para crear sistemas automáticos no paran de surgirme pegas, entre ellas preguntas cómo: ¿Es necesario conocer el probacktest? ¿Si es así, necesito conocer programación?, ¿Y en caso que se requiriera sobre programar, cómo lo aprendo? Son preguntas típicas pero no me salen resueltas, debido a que tengo sistemas creados incapaces de poder ser codificados. Muchísimas gracias Uxío por el valor que aporta siempre y espero llegar a una posible solución. Saludos. 🙂
Creo que algo falla, el crosses over no se corresponde con que el precio cruce de arriba a abajo el mm50, pero ademas si aplicas en el codigo un cross under, no te da beneficios, por lo que supongo que lo que se tenia que buscar era vender cuando el mm50 cruce de arriba a abajo el precio, cierto??
lo que es un precio crosses over mm50
Saludos
gracias por la rapida respuesta.
El «problema» es que ya estoy dentro. Problema entre comillas porque la parte buena es que esos valores van como un tiro jejej.
Entonces ahi ni velas ni sistema,
Sentido comun y poco mas, correcto?
Gracias
La falta de liquidez es un problema siempre y lo mejor es escapar de ella por todos los medios. Tienes muchos valores líquidos en los mercados financieros como para irte de rally por un campo minado. Busca lo más líquido de los mercados más líquidos. Siempre.
Buenas Uxio
Primero decirte que tremenda la web, se aprende mucho, al menos un novato como yo.
Un par de preguntas, en cuanto a el metodo de colocacion y variacion del stop loss fijandonos en las velas y el sistema de trading que arriba explicas. Son validos para un producto del MAB?? las empresas que cotizan tiene poca liquidez, un volumen entre 100k y 1M al dia son las que mas tienen. Es suficiente? o es tan facil moverlo con poco dinero que no podemos guiarnos por esas reglas??
Gracias y saludos
Gracias por la pronta respuesta!
Buscaré en la ayuda, si encuentro algo parecido lo comentaré por si a alguien le surge la misma duda.
Saludos!
Hola, Sergi.
Esta entrada ya es muy vieja y tiene detalles de estos. Y sí, estás en lo cierto 🙂
Ahora mismo no sé cómo es el código, pero PRT tiene una ayuda de funciones (hay un botón). Rebusca un poco y verás qué opciones hay. Seguramente haya alguna alternativa.
Hola Uxío y compañía!
Hace tiempo que visito la página y recientemente me he registrado porqué me gustaría tomar parte activa en ella (si el tiempo me lo permite…). También aprovecho mi primer comentario para felicitarte por tu trabajo, me parece espectacular.
Tenia una duda sobre este post y es que, al intentar reproducir el programa, he visto que la instrucción «x% CAPITAL» ya no existe en la nueva versión la reemplazan por la instrucción «x SHARE».
Por lo que he entendido la primera instrucción abre una posición con el 100% del capital (100% CAPITAL) pero la segunda lo que hace es comprar x acciones, warrants, contratos o lo que se esté invirtiendo, sin saber cuánto capital se está utilizando exactamente.
Estoy en lo cierto? Como se invertiría todo el capital en la nueva versión?
Gracias y saludos!
Hola Uxío, me gustaria poder programar en proraltime, desde el proscreener hasta este ejemplo de sistema que pones pero no se como hacer esto, sabes como puedo aprender a hacerlo, o me puedes explicar mas o menos, te agradezco nuevamente por tu atencion y tu tiempo,
un saludo
Seguro: Es como tú dices, sin duda. Se me escapó el OVER. Tenía que ser un UNDER.
¡Saludos y gracias!
Humíldemente creo que el error puede estar en la programación, pues ocurre a lo largo de todo el gráfico desde 1999 que el sistema vende al cruzar hacia arriba (en lugar de hacia abajo como la explicación de la estrategia dice). Además, el texto del programa sale como CROSSES OVER. Entiendo la intención del ejemplo, pero había pasado varias horas intentando entender todos los detalles y no que cuadraba … Gracias.
Sí, eso es correcto: Hay un fallo en el gráfico. Lo habré programado mal ese día o habré cogido un pantallazo del momento equivocado.
En cualquier caso, aunque tienes razón, no es relevante en este punto (respecto al foco del artículo).
Gracias por la respuesta, pero entonces no entiendo (mirando el último gráfico del artículo), la compra que hace en 21 Nov 2003
debería venderse en 11 Marzo de 2004 que es cuando la corta hacia abajo y en lugar de eso, el precio baja mucho más abajo y el sistema vende en 8 Abril 2004 cuando la corta hacia arriba.
Puede ser un fallo del sistema ? (culpa del gap …)
Disculpas por la insistencia y gracias a cualquier respuesta.
Hola, Arruinat.
No pone eso, pone: No cerraremos la posición hasta que el precio cruce de arriba a abajo su media móvil
Eso quiere cuando el precio la corta hacia abajo.
¡No es la esencia del artículo, pero pensamos igual en ese punto!
He estado «estudiando» el artículo y algo que me desconcierta.
Si alguien tiene la atención de responderme, lo agradecería mucho.
Se trata de la duda siguiente:
Uxio propone un sistema con compra cuando el precio está por encima de la media móvil y además tenemos el RSI por debajo de 30 y propone venta cuando el precio corta hacia arriba la media móvil.
La pregunta sería: No sería más lógico un sistema que venda cuando el precio corta la media hacia abajo ????
Gracias.
Entiendo que mi duda no es la esencia del artículo sino que el sistema es solo para el ejemplo, pero me gustaría quitarme esta duda de la cabeza. Gracias, Salut i peles !
Hola, Hugo. Gracias por escribir.
ProRealTime muestra valores de numerosos mercados. Desconozco hasta qué punto cubre la bolsa colombiana (supongo que lo hará muy bien). Lo mejor es que se lo preguntes a ellos: [email protected]
¡Gracias y un saludo!
Uxio soy de colombia y me gustaría utilizar la plataforma ProRealtime en la bolsa de colombia, es eso posible? o esta plataforma solo se usa para la bolsa de españa?
saludos.
Hola, Javier.
Desde luego, uno tiene que colocar los stops donde se sienta cómodo.
Todos somos diferentes y haremos un trading diferente. Se puede extraer dinero del mercado de infinitos modos.
¡Saludos!
Hola:
Gracias por compartir tus avances, pero aunque se nombran a veces, se habla poco de los deslizamientos de precio o de cuando una noticia o una negociación afterhours sube o baja el precio de una acción de manera dramática entonces no solo saltarían nuestros stop-losses sino que se ejecutarían a un nivel de precios terrible en nuestra contra. Lo mismo si se pone un precio de compra, a veces puede ocurrir un salto tan grande que lo compres muy por encima de tu precio objetivo de compra.
Muchas gracias por tu paciencia, pero me dan miedo esos stop-losses muy ceñidos por el ruido del mercado.
Javier
Muchísimas gracias.
Saludos.
¡Hecho!
Hola Uxío.
Me parece muy buena idea lo del StockTest, aunque a decir verdad, no he tenido tiempo de verlo en profundidad.
El que me falta es el StockReview. ¿Podrías enviármelo?
Gracias.
Saludos.
Bien, Benito. Eso es el diario de trading.
Puedes utilizar el formato que quieras. Como ya sabes, yo utilizo el StockTest para el planteamiento y el StockReview para el cierre, además, anoto los datos «contables» en un excel y capturo imágenes de los gráficos antes, durante y después (y las lleno de comentarios, como hago en el blog), que mantengo ordenados en carpetas.
Conozco a gente que lo hace sobre Word, otros imprimen los gráficos y lo anotan todo a mano, otros se crean un blog no abierto al público, otros utilizan el Excel y algunos incluso el Outlook. Lo más importante es que tu formato se adapte a ti.
La verdad es que cuesta un poco de tiempo encontrar el punto justo entre lo que a uno le da toda la información pero que no le cuesta demasiado trabajo mantener al día.
¡Un saludo!
Hola Uxío.
Perdona. Tal vez no me haya explicado bien. He leído repetidas veces en tu página que, mientras dura una operación, hay que anotarlo todo (en un cuaderno, hoja de excel,…). Y por eso me preguntaba si hay algún ejemplo de tabla-plantilla,… en la que ir apuntando todos los detalles. No sé. Se me ocurre la típica tabla en Word, algo parecido en excel (en donde también se pudieran añadir gráficos…). Y como no sé cómo hacerlo, preguntaba si tendrías algún ejemplo de esto.
Un saludo y gracias.
xesc: Resuelto por email.
Sergy: ¡Ya está en el nuevo!
Benito: Explica mejor a qué te refieres, Benito ¿Qué necesitas?
¡Un saludo!
Hola.
Me gustaría saber si existe alguna plantilla de ejemplo de un Sistema de Trading.
Gracias.
Saludos, Uxío.
No estaría mal que la próxima entrada la pusieras en el nuevo blog (por ordenarnos, más que nada)
Un saludo, Uxío.
Buenas,
no terminó de cnseguir obtener un gráfico como el de ustedes, utilizo el ProRealTime y no hay manera de conseguir algo parecido a ustedes. Podrían hehcarme un cable o algo, es que no se en que me peudo equivocar ya que hago lo mismo que ustedes.
PD: Hago referencia a la 2n imagen, en la que no me sale el 2n gráfico igual ni el primer gráfico la línea azul y morada que se puede apreciar por debajo de las barras.
Gracias por todo 😉 .