Si lees de vez en cuando este blog, sabrás que mi estilo de inversión es tranquilo, de medio / largo plazo. Sin embargo, debo confesar que a veces me aburro, especialmente si estoy en una racha de pérdidas.
En esos momentos trato de distraerme usando ideas de corto plazo del tipo «ganar dinero rapido», en plazos de 1 a 5 días, mientras mantengo los sistemas de largo sin tocar.
Asi que te voy a describir un algoritmo de disparo rápido, que diseñé hace tiempo y que llamaré (ya estoy cansado de tanto anglicismo) el «algoritmo Giménez«.
🙂
El algoritmo Giménez
Es muy sencillo; Consiste en comprar acciones muy sobrevendidas, confiando en que reboten, y venderlas muy rápidamente.
Tiene dos partes, el RSI y el MACD
Primer indicador: el RSI de 2 días.
El RSI de 2 días es un indicador muy rápido, y buscando valores extremos como el valor 2, predice el rebote con gran fiabilidad.
Como se ve, la idea es comprar una acción cuyo RSI está por debajo del valor 2, muy sobrevendido, por lo que con frecuencia el valor rebota.
La venta es también muy rápida: cuando el RSI supera el valor 50. De este modo no ganamos demasiado en una operación, pero acertamos muy a menudo.
Las operaciones se hacen a día vencido, que es lo más fácil. Hacer operaciones en el cierre del mismo día de la señal suele ser más rentable, pero es mucho más complejo de ejecutar. Yo hace tiempo que decidí usar señales a día vencido.
Esta idea, tipo reversión a la media necesita un segundo indicador, porque sino tiene demasiado riesgo:
Segundo indicador: el MACD
El MACD estándar debe estar en mínimos de 120 días.
De este modo combinamos un oscilador de sobreventa con una indicador de tendencias; esto permitirá comprar acciones que están muy sobrevendidas, y que además llevan mucho tiempo en una tendencia bajista.
Al combinar ambos indicadores, tendremos pocas oportunidades de compra, pero serán más seguras. Es decir, tendremos una mayor tasa de acierto.
Este es un ejemplo del MACD en mínimos:
¿Y que pasa si el valor está en pleno desplome y su RSI no se recupera?: pues vendemos al cabo de 5 días. Es decir, el stop es por días transcurridos: simplemente si el RSI no se ha recuperado el 5º día, pues vendemos al día siguiente.
Asi pues, resumo la idea de inversión:
Comprar si ocurren AMBAS condiciones:
- El RSI de 2 días del valor está en 2 o menos
- La señal del MACD estándar es la más baja de los últimos 200 días
La compra al día siguiente, en apertura
Vender si ocurre ALGUNA de las siguientes condiciones
- El RSI de 2 días cierra por encima de 50 ó
- Han pasado 5 días
La venta, también al día siguiente, en apertura.
Para probarlo, me he creado una muestra de 527 acciones norteamericanas que existen desde el año 2000.
Esos 527 valores que no han desaparecido del mercado en 16 años, y que además son muy líquidos, nos permiten evitar el sesgo de supervivencia que falsearía bastante los resultados.
En el test he supuesto que creamos una cartera de 5 acciones, cada una de las cuales invertirá un 20% del capital.
Es importante diversificar en una cartera porque este sistema no tiene un stop loss, (aparte de vender al 5º día). Al invertir sólo un 20% por acción, es difícil que una sola acción bajista nos provoca grandes pérdidas.
Estos son sus resultados:
Se puede ver que, en general, los años de mayor volatilidad se obtiene mejor resultado. Esto es coherente con un sistema de reversión a la media.
Sin embargo, no he incluido el año 2000 porque obtenía una rentabilidad superior al 100%: los años tan excepcionales me resultan sospechosos, asi que lo he retirado.
En los restantes 15 años:
Aunque es un tanto volátil, son cifras muy buenas, más aún pensando que son desde el 2001.
Pero hay otras estadísticas interesantes:
La exposición es el tiempo y capital que tiene posiciones abiertas. Es una exposición muy baja;
En promedio, el 75% del tiempo (ponderando el capital) estamos en liquidez.
Esto quiere decir que la rentabilidad cuando estamos totalmente invertidos es del 81% anual, nada menos.
Es una rentabilidad teórica, claro, porque no estamos siempre invertidos, pero indica la fiabilidad de la idea.
Esta fiabilidad la indica también el % de aciertos: dos de cada tres veces se gana dinero.
Evolución del algoritmo
Se puede evolucionar la idea con un filtro evidente: sólo invertir cuando la volatilidad es alta.
Hay varias maneras de suponer una volatilidad alta, pero yo he elegido una muy sencilla:
Filtro de volatilidad:
1- Sólo invertir cuando el indicador ATR(15) del SP500 supera su media de 30 días.
El ATR de 15 días es un indicador clásico de volatilidad. Al añadirlo al sistema, se obtienen estos resultados:
La rentabilidad y riesgo anual queda:
Asi, aunque se gana menos, el riesgo es mucho más contenido.
Eso se debe a que los años de poca volatilidad se está muy poco tiempo invertido, como se ve en el detalle anual. Y asi se contienen las rachas de pérdidas.
Respecto a la exposición al mercado:
La exposición es ahora muy baja, un 16%.
Esto significa que el promedio anualizado mientras se está al cien por cien invertido es un impresionante 93,8%. Y el porcentaje de aciertos se mantiene.
Usalo con prudencia
Creo que esta es una buena idea, que yo he probado con éxito bastantes veces.
Pero un buen algoritmo o un buen método no es suficiente.
Si quieres usar este u otros algoritmos de trading, deberás incluirlos dentro de un sistema de gestión de capital que incluya al menos el manejo de las rachas de pérdida, y el seguimiento de las estadísticas de acierto.
Y recuerda hacer un seguimiento de tus operaciones, para saber siempre tus estadísticas.
Te dejo un screener para encontrar las acciones
Ahora dirás: vale pero, ¿como detecto yo las acciones con las condiciones de RSI y MACD?
Te ayudo yo: he creado un pequeño screener que te va a ayudar a encontrar las oportunidades de compra.
Es este:
REM inicio———————————————————————————————————-
REM Busca las condiciones de RSI y el MACD
REM Cálculo de la línea de Señal MACD
LineaMACD = ExponentialAverage[12](Close) – ExponentialAverage[26](Close)
LineaSignal = ExponentialAverage[9](LineaMACD)
condicion1=LineaSignal<=Lowest[200](lineaSignal)
condicion2=RSI[2]<=2
REM Criterio de ordenacion: MACD
SCREENER [ condicion1 and condicion2 ] (-MACD[12,26,9](Close) AS «MACD»)
REM fin————————————————————————————————————-
Sólo tienes que usarlo en el programa gratuito ProrealTime. (cuidado con las comillas-> ver comentarios)
Una vez instalado desde la página web de ProrealTime, lo inicias y pinchas en Menú Mostrar – Proscreener.
Después, pinchar en la llave inglesa para crear un proScreener, y en el botón de nuevo para una nueva lista Proscreener:
En la nueva lista, deberás copiar y pegar el código mostrado más arriba, y ejecutarlo con el botón ejecutar ProScreener:
Previamente, deberás seleccionar el mercado contra el cual se van a buscar las acciones.
Y ¡voilá!: aparecen las acciones que a fecha de hoy cumplen los requisitos.
Eso si, no esperes que haya muchas: dependiendo del mercado, habrá muchos días que no aparece ninguna.
Pero cuando aparecen.. hay negocio.
Asi que, si te gusta ganar dinero rapido o en el corto plazo, intentalo. Ten prudencia porque hay épocas (sobre todo con poca volatilidad) que funciona peor.
Pero al menos tienes otro arma para cazar toros.. y osos.
Hola Buenas tardes,
Primero darte las gracias el post y el screener,
He seguido los pasos para utilizar el proscreener y me sale este mensaje:
«Error de sintaxis: linea 13, Carácter 65
uno de los siguientes caracteres seria más adecuado que «»».
-una cotización».
A ver si sabes donde puede haber el problema.
gracias de antemano,
Jordi
Hola Jordi
Creo que van a ser las comillas de la linea SCREENER: las comillas de «MACD» tienen que ser las normales del teclado.
Parece que al pegar el codigo se me han puesto comillas raras.
Lo cambio en el artículo.. prueba también tu a cambiarlo en tu codigo, todas las comillas deben ser las de la tecla «2» del teclado.
Un saludo!
He hecho un par de pruebas: parece que las comillas se pegan cambiadas..
Si alguien tiene algun problema, que intente escribir las comillas (en la palabra «MACD») de modo manual..
saludos!
Hola,
Si, ahora poniendo las comillas del 2, funciona perfectamente.
Muchas Gracias!!
Gracias por la idea y screener
Estoy fuera pero en cuanto llegue de vacaciones lo voy a programar en prt
Repito, gracias
Luis
Muchas gracias por compartir el algoritmo gimenez, y más aún por facilitar la búsqueda mediante el screener de PRT, es una asignatura pendiente ponerme a desarrollar screeners en PRT, sobretodo para ETF
Un saludo
Muchas gracias por compartir tu algoritmo y screener para PRT.
1.-Este algortimos, sólo funciona para largos ¿verdad?
2.- ¿Lo tienes diseñado en su versión » para entrar cortos».?
3.- ¿Es válido para cualquier mercado europeo.?
4.- ¿Es válido también para ETFs y futuros ?
Saludos cordiales.
Ramon,
Esta idea es para largos. Para cortos habriá que cambiarla mucho, y seguro que es más arriesgada. He hecho alguna prueba pero no acabo de estar cómodo con los sistemas de cortos.
Puesto que es una idea basada en sobrecompras, pues funciona con cualquier mercado; también para ETFs, pero al ser el mercado de ETFs más pequeño, vas a encontrar menos oportunidades de compra..
Para futuros: no lo se. No uso activos apalancados, me resulta complejo analizar sus estadísticas. Y también es un mercado con pocos activos, hay pocos futuros comparados con el mercado de acciones.
Aunque en principio, debería funcionar. Pero claro, hay que tener claro el grado de apalancamiento que uses..
Un saludo!
Muchas gracias por tus respuestas.
Que habrñia que añadir al screener de PRT, para que lleve eincorporado el filtro de volatilidad ATR que mencionas.
Muchas gracias.
Saludos
Hola he probado el screener que nos indicas en PRT y funciona muy bien.
Sin embargo me surgen las siguientes dudas:
1.- En PRT existen 3 indicadores RSI: RSI detección divergencias, RSI zona dinámica y RSI fuerza relativa indice.¿ Imagino que el indicador que hay que usar es, este último, es decir RSI fuerza relativa (indice) y ajustarlo al periodo de dos días.?
2.- En PRT existen 5 indicadores MACD, ¿imagino que el que hay que usar es el primero, es decir el que está por encima del MACD arco iris.?
3.- ¿Para verificar que está en mínimos de 200 días, no hay que trazarle media móvil alguna verdad, sólo ver que está en mínimos de los ultimos 7 meses (usando un gráfico diario).?
4.- Qué habría que añadirle al screener, para que tuviera en cuenta el filtro de volatilidad que mencionas. ¿Este filtro sería bueno que estuviera contemplado en el screener verdad?
5.- Lo he pasado al nasdad y de los 8 valores (que hoy domingo 2 agosto) me salen, muchos continuan su bajada, después de haber dado señal de compra. ¿Es normal esto?
6.- En tu articulo indicas que se entra a «dia vencido», pero ¿a qué precio y con que tipo de orden, respecto al precio de cierre anterior es mejor entrar al día siguiente?. Es algo que en el artículo no me queda claro.
Muchísimas gracias por tu atención prestada.
Saludos.
Hola Ramon.
El screener que he dejado ya tiene en cuenta el RSI y el MACD adecuados, que son el RSI fuerza relativa y el MACD que está por encima del arco iris.
Después, tu puedes añadir esos indicadores al gráfico o no, no afecta al screener que se muestren o no los indicadores.
Logicamente si los añades al gráfico mejor, porque compruebas que el screener está funcionando bien, pero vamos, no es necesario.
Del mismo modo, que el MACD este en minimos de 200 dias no tienes que hacer nada, ni añadir medias, el screener ya lo calcula; si añades el gráfico MACD, verás facilmente que están en valores mínimos anuales.
El filtro de volatilidad no lo he añadido porque complica el programilla. Pero puedes añadir muy fácilmente el indicador ATR al grafico del índice Sp500: solo usariamos el screener si el ATR está por encima de su media de 30 días.
El día 2 de Agosto, en el Nasdaq: pues no lo se. Es posible que ese día tenga compras fallidas. Las estadísticas históricas nos dicen que acierta 2 de cada 3 veces, pero un día concreto puede pasar cualquier cosa..
Por ultimo: Compramos a día vencido (que es lo más fácil), en precio de apertura. Es decir dejas la orden a la noche, compar a precio open al día siguiente..
Espero haberte ayudado, un saludo!
Muy interesante el articulo, pero me deja una duda… Porque no tiene el filtro de entrar solo en señales que van a favor de la tendencia principal…?
me imagino que tendra su explicacion pero no la encuentros
gracias
¿Te refieres a entrar sólo en acciones alcistas?:
Ten en cuenta que es una operacion de 1 a 5 días: realmente la tendencia de medio o largo plazo no influye en tan pocos días.. y la de corto plazo es muy oscilante..
Un saludo!
Eres un crack lo has puesto hasta el prorealtime mas facil para los que lo utilicen imposible. 😉
Igual lo pongo a prueba un año a ver que tal va la rentabilidad, tambien habria que mira cuantas comisiones nos cascan dependiendo el broker ya que no todos trabajamos con Interactive Broker que son las comisiones mas bajas.
Por ejemplo con ING en internacional deberia comprobar las comisiones y tal pero para meterlo en el banco de pruebas parece buena idea.
Gracias..!
si lo pruebas, intenta incluir el método dentro de una sistematica de control del riesgo.. siempre hay epocas que funciona peor..
Un saludo!
Hola te traigo un sistema ganador puedes probarlo pero claro tiene un gran problema.
// Definición de los parámetros del código
DEFPARAM CumulateOrders = False // Acumulación de posiciones desactivada
rem SE DEBERIA AJUNSTAR COMISIONES CON PUNTOS GANADOS 11 23
BUY 1 SHARE AT high stop
SET STOP LOSS 8
SET TARGET PROFIT 16
Hola has probado el sistema que te pase, pone este mensaje Your comment is awaiting moderation.
Estoy de viaje, a la vuelta lo compruebo..
Un saludo
Hola Jose: ya he probado el backtest de ProRealTime que nos has dejado. Muchas gracias.
Parece que no hace operaciones.
Sin embargo, yo no conozco en profundidad el ProBaktest, porque no lo utilizo.
ProralTime es un gran programa para graficar valores, y es bastante útil como screener. Y además es sencillo.
Pero como software de backtest se queda muy corto, sobre todo si estamos orientados a carteras de acciones o ETFs, que es lo que yo hago.
Amibroker es en ese sentido infinitamente más potente, y es el programa de backtest que yo utilizo..
Asi que respecto a backtests de ProRealTime poco te puedo decir.. ya lo siento
Un saludo!
Amibroker es gratuito como prorealtime?
No. Es de pago. Unos 300 € la version profesional.
Es barato para todo lo que hace, mucho más barato que otros programas similares o inferiores..
Pero no es especialmente sencillo..
Un saludo!
Gracias por la contestación , hombre para ser profesional es barato. a mi por eso me viene grande con prorealtime voy tirandillo. 😉
Hola Gonzaga,
Hay una cosa que no acabo de entender de este sistema. Si opera sin stop loss, y le añadimos una gestión de capital, en otro artículo recomiendas no sobrepasar el 6% de pérdidas mensual. Eso quiere decir que de inicio, si partimos de una cartera de 100.000€ por ejemplo, a principio de mes sólo podría invertir 6.000€ mientras que 94.000€ quedarían a la espera de que se cerraran las anteriores operaciones. ¿No estamos perdiendo así mucho potencial inversor?
Es una pregunta con respuesta larga. ¿que tipo de gestion de capital añadimos a un sistema como este?
Hay muchas maneras.
La idea de limitar al 6% el riesgo mensual es una de ellas. El limite del 2% por operacion es otra. En realidad ambas se pueden juntar.
Pero para eso no implica invertir 6.000 € de 100.000. Basta con usar el promedio de pérdidas de operaciones fallidas ( o el máximo, si quieres ser más prudente) y calcular asi la inversión.
Sabiendo lo máximo que puedes perder en una operacion, calculas el % de todo tu capital para que esa perdida máxima sea solo un 2% del total.
Echa un vistazo a https://slowinver.com/usa-la-gestion-de-capital-para-tener-exito-en-bolsa/
Un saludo!
Gracias por tu respuesta!
Me podrías recomendar algún libro que trate el tema de la gestión de capital?
Saludos!
El clasico es el «new concepts in money management», que es bastante árido, ademas de estar escrito en bárbaro.
Otro más sencillo es «trading con gestión de capital», de Oscar Cagigas..
Un saludo!
Un post muy interesante, gracias por compartir el algoritmo.
Muy interesante este Post, y gracias por el screener. Sin embargo he tratado de poder entrar al Proreal Time como sugieres, (Ya me inscribi), y no he tenido éxito, dime si hay otra opción en otro sitio de poder usar el screener??? o tan solo se puede usar en ese sitio……Gracias y un abrazo.
Muy interesante este post, apenas acabo de conocer la página por un comentario de Cárpatos y la verdad es que me tienes enganchado.
Muchas gracias!
Estimado,
el screener nos indica la compra del activo. La venta en vez, ¿se ejecuta a través de un control visual del Rsi, observando si al cierre supera 50 o sin han pasado los 5 días? Un saludo.
Hola gino.
Si, cada día al cierre, observas si se han superado el valor 5 o si han pasado 5 días. Y al dia siguiente vendes
Un saludo!
+
Hola Gonzaga!!
Me he puesto manos a la obra para programarlo y me ha surgido una duda:
Hay ocasiones, en las que un día podemos encontrar multitud de valores con señal de entrada (sobre todo si hubo caídas generalizadas). En estas ocasiones, que criterio de selección de los 5 valores has tomado? Si hiciste un random, se te ocurre alguna idea para seleccionar los 5 mejores valores? (digo 5 porque tengo en cuenta una diversificación del 20% de la cartera por valor)
Hola Alberto,
Si, el metodo que mejor resultado da es seleccionar los 5 valores en función del valor del MACD más bajo. Los 5 más bajos son los que se compran.
Un saludo!
Hola,
Estoy intentando realizar la correción de [MAD] y me sigue dando error, a qué puede ser debido?