library(quantmod)
## Loading required package: xts
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
## Registered S3 method overwritten by 'xts':
## method from
## as.zoo.xts zoo
## Loading required package: TTR
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
## Version 0.4-0 included new data defaults. See ?getSymbols.
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:xts':
##
## first, last
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(tibbletime)
## Warning: package 'tibbletime' was built under R version 3.6.3
##
## Attaching package: 'tibbletime'
## The following object is masked from 'package:stats':
##
## filter
library(timetk)
library(pacman)
## Warning: package 'pacman' was built under R version 3.6.3
p_load(quantmod, quadprog, lpSolve)
#1. Download 10 industry portfolio returns (average value-weighted monthly returns) from Fama French data library
data <- read.csv('/Users/Anand/Desktop/10_Industry_Portfolios.CSV')
head(data)
## Average.Value.Weighted.Returns....Monthly X X.1 X.2 X.3 X.4
## 1 NoDur Durbl Manuf Enrgy HiTec
## 2 192607 1.45 15.55 4.69 -1.18 2.9
## 3 192608 3.97 3.68 2.81 3.47 2.66
## 4 192609 1.14 4.8 1.15 -3.39 -0.38
## 5 192610 -1.24 -8.23 -3.63 -0.78 -4.58
## 6 192611 5.2 -0.19 4.1 0.01 4.71
## X.5 X.6 X.7 X.8 X.9
## 1 Telcm Shops Hlth Utils Other
## 2 0.83 0.11 1.77 7.04 2.16
## 3 2.17 -0.71 4.25 -1.69 4.38
## 4 2.41 0.21 0.69 2.04 0.29
## 5 -0.11 -2.29 -0.57 -2.63 -2.85
## 6 1.63 6.43 5.42 3.71 2.11
str(data)
## 'data.frame': 4905 obs. of 11 variables:
## $ Average.Value.Weighted.Returns....Monthly: Factor w/ 1228 levels ""," Average Equal Weighted Returns -- Annual",..: 1 10 11 12 13 14 15 17 18 19 ...
## $ X : Factor w/ 2860 levels "","-0.01","-0.02",..: 2860 720 1739 689 110 2393 657 58 1685 1389 ...
## $ X.1 : Factor w/ 2892 levels "","-0.02","-0.03",..: 2892 1201 1658 1954 660 17 2836 74 2731 844 ...
## $ X.2 : Factor w/ 3048 levels "","-0.02","-0.04",..: 3048 1952 1230 724 370 1902 1645 5 2232 749 ...
## $ X.3 : Factor w/ 2950 levels "","-0.01","-0.03",..: 2950 93 1621 376 61 668 1412 789 803 536 ...
## $ X.4 : Factor w/ 3247 levels "","-0.01","-0.02",..: 3247 1485 1466 31 464 2212 3 84 2195 809 ...
## $ X.5 : Factor w/ 2740 levels "","-0.01","-0.03",..: 2740 692 1402 1424 11 769 796 785 1715 2018 ...
## $ X.6 : Factor w/ 3010 levels "","-0.01","-0.03",..: 3010 627 49 635 244 2443 676 264 1646 28 ...
## $ X.7 : Factor w/ 2951 levels "","-0.01","-0.02",..: 2951 779 1815 691 50 2205 635 2181 775 716 ...
## $ X.8 : Factor w/ 2629 levels "","-0.01","-0.02",..: 2629 2297 147 1252 292 1590 15 154 1882 610 ...
## $ X.9 : Factor w/ 3144 levels "","-0.01","-0.02",..: 3144 1618 2346 649 311 1614 2027 765 2513 742 ...
date <- as.Date(as.character(data$date), "%m-%Y")
str(data)
## 'data.frame': 4905 obs. of 11 variables:
## $ Average.Value.Weighted.Returns....Monthly: Factor w/ 1228 levels ""," Average Equal Weighted Returns -- Annual",..: 1 10 11 12 13 14 15 17 18 19 ...
## $ X : Factor w/ 2860 levels "","-0.01","-0.02",..: 2860 720 1739 689 110 2393 657 58 1685 1389 ...
## $ X.1 : Factor w/ 2892 levels "","-0.02","-0.03",..: 2892 1201 1658 1954 660 17 2836 74 2731 844 ...
## $ X.2 : Factor w/ 3048 levels "","-0.02","-0.04",..: 3048 1952 1230 724 370 1902 1645 5 2232 749 ...
## $ X.3 : Factor w/ 2950 levels "","-0.01","-0.03",..: 2950 93 1621 376 61 668 1412 789 803 536 ...
## $ X.4 : Factor w/ 3247 levels "","-0.01","-0.02",..: 3247 1485 1466 31 464 2212 3 84 2195 809 ...
## $ X.5 : Factor w/ 2740 levels "","-0.01","-0.03",..: 2740 692 1402 1424 11 769 796 785 1715 2018 ...
## $ X.6 : Factor w/ 3010 levels "","-0.01","-0.03",..: 3010 627 49 635 244 2443 676 264 1646 28 ...
## $ X.7 : Factor w/ 2951 levels "","-0.01","-0.02",..: 2951 779 1815 691 50 2205 635 2181 775 716 ...
## $ X.8 : Factor w/ 2629 levels "","-0.01","-0.02",..: 2629 2297 147 1252 292 1590 15 154 1882 610 ...
## $ X.9 : Factor w/ 3144 levels "","-0.01","-0.02",..: 3144 1618 2346 649 311 1614 2027 765 2513 742 ...