Ma sei un pollo!
Nel tuo codice è chiaro che ti dava errore, devi sostituire
Data <- xts(returns, index(X))
che è la dicitura che usavi tu con
Data <- xts(Data, index(X))
e con i tuoi 20 titoli ti viene quello che ti allego (le "frontierine" grige rappresentano tutte le combinazioni a due a due dei titoli ed è molto utile a fini didattici osservare i
presunti benefici della diversificazione).
Dopodiché ti ho però avvertito: il codice così fa tutto quello che vuoi, ma non dimostri di conoscere la materia, solo di saper giocare con le librerie di R.
Se questo è sufficiente per tirare su qualche punto con il laboratorio, ben venga; altrimenti ti conviene dare un occhio anche al messaggio che ti ho scritto con l'impostazione e la risoluzione del problema di programmazione quadratica.