Me falta marketing, pero intentamos:
GANE PLATA MIENTRAS DUERME. BOT DE TRADING TOTALMENTE APB.
(si yo lo hice andar, es apb)
Hablando en serio. Quería compartir un pequeño hilo de como armé un primer bot de trading para operar en @cocoscap
(al final de todo hay colab)
(Antes que nada: esto es un ejercicio didáctico para ver como armar un bot que maneje un portfolio y no una recomendación de inversión!)
Primero lo primero: habia que definir una estrategia para el bot. Primero pensé en Kelly Criterion o algun agente usando Thompson Sampling. Pero pensandolo mejor: Nunca en mi vida habia hecho un bot de esto ¿por que me voy a complicar la vida de entrada?
Entonces vamos con 1/N
1/N es una estrategia en la cual elegis N acciones y dividis el dinero en partes iguales. En la práctica suele usarse como baseline para comparar contra otros algoritmos. Es la estrategia mas sencilla: si tu estrategia da peor que esto, mejor cambiala.
(Ojo: lei por ahí que Markowitz invertía su propia guita haciendo 1/N)
Yo elegí agarrar 10 acciones con mejor mediana(retornos)/mad(retornos)
Es un buen criterio? probablemente no. Seguro existen mejores. Pero de vuelta: esto es solamente una primer aproximación.
Despues fue implementar la compra. Esto con pyhomebroker del genio de @diegodegese fue recontra sencillo. Armas el portfolio y marche orden de compra.
¿Y el rebalanceo? Ponele que quiero rebalancear una vez por semana. Calculamos como deberia ser el portfolio en la nueva semana. Y despues encontramos un conjunto de ordenes que conviertan el portfolio que ya tenemos en el nuevo
Pero aca se presentó una dificultad. Con pyhomebroker no podia traerme mi portfolio actual (o yo no encontré, lo cual no sería raro). Asi que me puse a revisar el codigo de cocoscap hasta que encontré como traermelo con un request.
Con esto resuelto, me quedó generar las diferencias entre el portfolio que ya tengo y el portfolio que quiero. Y asi podemos armar las ordenes para rebalancear todas las veces que queramos.
Aunque no sé si lo recomiendo: Tiene bocha de cosas para mejorar!
Por ejemplo, el criterio con el cual elije las acciones sobre las que hace 1/N es bastante cuestionable. Además, si no te alcanza la plata para comprar uno de los papeles, no lo reemplaza. Solo lo deja en 0.
De nuevo, esto fue más un ejercicio para aprender a armar bots.
Además, posiblemente se me haya pasado alguna regla. Por ejemplo, COME en cocos solo se puede comprar por multiplos de 10. No le agregué nada para ese caso.
En definitiva. Me divertí bastante armándolo y lo quería compartir. Mañana lo vamos a testear a ver como funca. Los mantengo al tanto.
• • •
Missing some Tweet in this thread? You can try to
force a refresh
En algún lado leí que Markowitz, mas allá de haber pasado a la historia por su trabajo sobre portfolios, no ponía la plata donde ponía la boca: no usaba su propio método.
No tengo idea si es cierto o no, pero me generó la duda ¿Como funcionaría acá contra, digamos, 1/N?
Supuestamente, con su plata, Markowitz usaba alguna variante de 1/N. Así que me puse a comparar y de paso probamos de desarrollar un backtesting.
Esto es código de juguete, puede haberseme escapado algo, pero lo comparto igual =)
Agarré el código del hilo anterior, lo pulí un poco, y lo hice correr del '2020-01-01' al '2021-09-01' rebalanceando cada 5 ruedas.
Y para comparar armé una implementación del portfolio de Markowitz (super básica) maximizando sharpe ratio