Espero que esto no se cierre porque está relacionado con algoritmos que no he podido descifrar (también es bastante largo porque estoy tan confundido acerca de cómo se hace). Básicamente, hace muchos años, solía trabajar en un fondo mutuo y utilizamos diferentes herramientas para seleccionar carteras de optimización, así como para cubrir las existentes. Tomaríamos estos resultados y haríamos nuestras propias modificaciones para luego venderlas a los clientes. Después de que mi empresa se redujo, decidí que quería intentarlo (para crear el software e incluir mis personalizaciones) pero no tengo idea de cómo se generan realmente las combinaciones para el software.¿Cómo generan los portafolios las sugerencias de sus portafolios tan rápidamente cuando las posibilidades son enormes?
Después de 6 meses de intentarlo, estoy aceptando que mi enfoque es imposible. Intenté usar algoritmos de combinación como los del libro de Knuth, así como también hacer combinaciones de bit
para tratar de encontrar todas las carteras posibles (lo limité a 30 acciones) en la Bolsa de Nueva York (más de 5.000 acciones). Pero según todos los que he hablado esto me llevará miles de millones de millones de años obtener solo resultados de un día (para mí en una GPU lo detuve después de 2 días de procesamiento directo).
Entonces, ¿qué es lo que me falta? Entraríamos en nuestra tolerancia al riesgo y en la visión del mercado (expectativas de crecimiento del mercado de valores, expectativas de inflación, expectativas de fondos federales, etc.) y nos daría el portafolio ideal (en teoría ...) en unos pocos segundos/minutos. Con miles de posibilidades y cuatrillones de posibles combinaciones de pesos de acciones, ¿cómo pueden calcular los resultados tan rápido (o incluso nada)? Como administrador del sistema, sé que hemos descargado un archivo todos los días (menos de 100 mb y cargado en una base de datos mssql, probablemente solo datos de mercado ... así que no es como si tuviéramos todas las posibilidades. Utilizando mi enfoque anterior obtendría un 5 gig archivo en un min de hacer mi versión del algoritmo de combinación de Knuth) y las aplicaciones funcionaron fuera de línea (por lo que debe haber estado haciéndolo localmente en la computadora de escritorio/laptop no en una supercomputadora masiva en algún lado y tardó uno o dos minutos en ejecutarse.15 minutos fue el más largo para un fondo global que incluye todas las acciones en el mundo). Es muy confuso porque su trabajo requería la correlación de todo el fondo (no creo que solo estuvieran enviando las mejores acciones que precalcularon porque todos obtuvieron resultados diferentes). Entonces, si quería un fondo de 30 acciones que me diera un 2% de rendimiento y tuviera una correlación negativa con el mercado, y tenía una cobertura del 60%, ¿cómo podría el software generar esa cartera de miles de millones de posibilidades tan rápidamente? nota, no estoy preguntando sobre la parte de matemática o finanzas, estoy preguntando cómo fue capaz de generar 30 acciones de todo el mercado que dieron rendimientos del 2% cuando para hacer eso necesitaría conocer los rendimientos de todos los 30 portafolios de acciones (Eso solo lo haría funcionar durante miles de millones de años, ¿no? las otras restricciones lo hacen más complejo).
Entonces, ¿cómo se hace esto programáticamente? Estoy empezando a creer que no están usando el algoritmo de combinación de Knuth para generar todas las posibilidades, sin embargo, sus resultados no parecen seleccionados al azar y la selección individual de las existencias parece pasar por alto la parte de correlación. ¿Cómo pueden tantos softwares de inversión hacer cosas como esta?
"Es un secreto". – bmargulies