Spero che questo non venga chiuso perché è correlato ad algoritmi che non sono stato in grado di capire (è anche piuttosto lungo perché sono così confuso su come viene fatto). Fondamentalmente molti anni fa lavoravo in un fondo comune e usavamo diversi strumenti per selezionare i portafogli ottimizzati e per coprire quelli esistenti. Prenderemmo questi risultati e apporteremo le nostre modifiche per poi venderle ai clienti. Dopo che la mia azienda è stata ridimensionata, ho deciso che volevo fare un tentativo (creare il software e includere le mie personalizzazioni), ma non ho idea di come siano effettivamente generate le combinazioni per il software.In che modo il software di portfolio genera i loro suggerimenti di portfolio così rapidamente quando le possibilità sono enormi?
Dopo 6 mesi di tentativi, accetto che il mio approccio sia impossibile. Stavo cercando di usare algoritmi combinati come quelli del libro di Knuth, oltre a fare combinazioni bit
per cercare di trovare ogni possibile portafoglio (l'ho limitato a 30 titoli) sul NYSE (oltre 5.000 titoli). Ma per tutti quelli con cui ho parlato ci vorranno miliardi di miliardi di anni per ottenere solo un giorno di risultati (per me su una GPU l'ho interrotto dopo 2 giorni di elaborazione diretta).
Quindi cosa mi manca? Entreremmo nella nostra tolleranza al rischio e nella visione del mercato (aspettative di crescita del mercato azionario, aspettative di inflazione, aspettative dei fondi nutrite, ecc.) E ci darebbe il portafoglio ideale (in teoria ...) in pochi secondi/minuti. Con migliaia di possibilità e quadrilioni di possibili combinazioni di pesi delle scorte, come sono in grado di calcolare i risultati così rapidamente (o addirittura del tutto)? Come amministratore del sistema, so che abbiamo scaricato un file ogni giorno (meno di 100 mb e caricato in un database mssql probabilmente solo dati di mercato ... quindi non è che avessimo tutte le possibilità. Usando il mio approccio sopra avrei ottenuto 5 gig file in un minimo di fare la mia versione della combinazione di Knuth algo) e le applicazioni hanno funzionato offline (quindi deve averlo fatto localmente sulla CPU desktop/laptop non su un enorme supercomputer da qualche parte e ha impiegato un minimo di due per l'esecuzione.15. i minuti sono stati i più lunghi per un fondo globale che include tutti gli stock del mondo). È così confuso perché il loro lavoro richiedeva la correlazione dell'intero fondo (non penso che stessero solo inviando i migliori stock che avevano pre-calcolato perché ognuno ha ottenuto risultati diversi). Quindi, se volessi un fondo azionario di 30 che mi fornisse rendimenti del 2% e avesse una correlazione negativa con il mercato, e fosse coperto al 60% come avrebbe potuto il software generare quel portafoglio di miliardi di possibilità così rapidamente? nota, non sto chiedendo la matematica o la parte finanziaria, sto chiedendo come è stato in grado di generare 30 titoli da tutto il mercato che hanno dato un rendimento del 2% quando per fare ciò avrebbe dovuto conoscere i rendimenti di tutti i 30 titoli azionari (che da soli lo farebbero funzionare per miliardi di anni, giusto? le altre restrizioni lo rendono più complesso).
Quindi, come viene eseguito a livello di programmazione? Sto iniziando a credere che non stiano usando l'algoritmo di combinazione di Knuth per generare ogni possibilità, ma i loro risultati non sembrano selezionati casualmente e la selezione individuale degli stock sembra mancare la parte di correlazione. Come possono così tanti software di investimento fare cose come questa?
"È un segreto." – bmargulies