R : i primi 30 minuti (dall’installazione al primo Trading-System)

ho allegato la frontiera
 

Allegati

  • FRONTIERA.jpg
    FRONTIERA.jpg
    64,8 KB · Visite: 254
Guarda in basso quando scrivi un nuovo messaggio, c'è «Allega files» col pulsante :rolleyes:
ho allegato la frontiera
Mi sembra corretta, la linea arancione che ti dà tanto fastidio è lo Sharpe del portafoglio, che giustamente è massimo in prossimità (verticale) del portafoglio tangente, che é appunto quello col massimo Sharpe.

La frontiera efficiente è quella coi pallini bianchi, la forma è canonica.

In effetti hai scritto una bestiata nel tuo .pdf, quando ho tempo provo a lanciare il tuo codice e vediamo cosa non torna.
 
Ultima modifica:
Ma sei un pollo! :D

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.
 

Allegati

  • Rplot.png
    Rplot.png
    20,4 KB · Visite: 245
In effetti hai scritto una bestiata nel tuo .pdf,
Che significa?
Oggi devo inviare la tesina alla prof., abbiamo poco tempoooooo!!!!!!
 
In effetti hai scritto una bestiata nel tuo .pdf,
Che significa?
Oggi devo inviare la tesina alla prof., abbiamo poco tempoooooo!!!!!!
Cose che devi modificare:
1. la linea arancione non è la frontiera efficiente, è l'indice di Sharpe, non a caso massimo in corrispondenza del portafoglio tangente;
2. correggi il codice dove te l'ho scritto, l'oggetto returns nel mio codice non esiste!
Questo il codice definitivo senza commenti (ormai i commenti li conosci a memoria, risparmio spazio):
op <- par(no.readonly = TRUE)
Sys.setenv(TZ = 'UTC')
library(lattice)
library(quantmod)
env <- new.env()
Symbols <- c('FTSEMIB.MI', 'ED', 'PLT.MI', 'ISP.MI', 'AAPL', 'FB', 'TWTR',
'KO', 'TOD.MI', 'F.MI', 'UBI.MI', 'MED.MI', 'G.MI', 'PC.MI',
'TI', 'F', 'AGL.MI', 'UCG.MI', 'ATL.MI', 'MS.MI', 'LUX.MI')​
getSymbols(Symbols = Symbols, env = env, src = 'yahoo', from = '2013-01-01')
args <- eapply(env = env, FUN = function(x){Cl(x)})[Symbols]
X <- na.omit(do.call(what = merge, args = args))
xyplot(X)
Data <- apply(X = X, MARGIN = 2, FUN = function(x){Delt(x)})
Data <- xts(Data, index(X))
Data[1,] <- 0
library(fPortfolio)
Frontier <- portfolioFrontier(as.timeSeries(Data))
frontierPlot(Frontier, frontier = 'upper')
grid()
abline(h = 0, col = 'grey')
abline(v = 0, col = 'grey')
minvariancePoints(Frontier, pch = 19, col = 'red')
tangencyPoints(Frontier, pch = 19, col = 'blue')
tangencyLines(Frontier, col = 'blue')
equalWeightsPoints(Frontier, pch = 15, col = 'grey')
singleAssetPoints(Frontier, pch = 19, cex = 1.5, col = topo.colors(6))
twoAssetsLines(Frontier, lty = 3, col = 'grey')
sharpeRatioLines(Frontier, col = 'orange', lwd = 2)
Vai e prenditi 'sto tristissimo 30...
 
Ultima modifica:
MA IL ftse MIB mi serve per il portafoglio a varianza minima?
E' un'osservazione che volevo farti: in quella frontiera il FTSE MIB è considerato alla stregua di un titolo qualsiasi e quindi è incluso nei titoli combinabili per ottenere la frontiera efficiente.

Sarebbe più ortodosso escluderlo, visto che non lo puoi comprare direttamente, e per farlo ti è sufficiente sostituire
Frontier <- portfolioFrontier(as.timeSeries(Data))
con
Frontier <- portfolioFrontier(as.timeSeries(Data[,-1]))
 

Users who are viewing this thread

Back
Alto