TABLE OF CONTENT

1. Objective

2. The Data

3. Variables

4. Analysis Specification

5. The Excel File

6. The Regression Estimation

7. Bonus

8. Packages Used

9. Setting Working Directory And Importing Data

10. Descriptive Statistics

11. Plotting The Individual Variables

12. The Bell-Shaped Distribution Graph

13. The Regression Estimation (14-Day Sorting Window)

14. The Regression Estimation (30-Day Sorting Window)

15. Momentum Strategy Vs Buy & Hold Strategy

1. Objective.

To determine whether momentum trading strategy actualy yields better returns than the typical market porfolios.

2. The Data.

We used data from four countries to do our analysis. The USA, UK, Germany & Kenya (Note: The Kenyan Market was used as a control for market efficiency our main focus was on the USA, UK & German Market).

The Data was daily and ranged from 2015 to 2020. It was obtained from Investing.com

3. Variables.

We used Technology and Bank Stocks in our analysis and for our benchmark to compare returns to, we used the individual countries’ market portfolios. Since the market portfolios typically contain large cap stocks, for the Tech and Bank stocks we also picked large cap stocks for it to be a fair benchmark.

4. Analysis Specification.

Momentum strategies draw from the idea that stocks go through ‘hot’ and ‘cold’ periods. This means that investors buy stocks that seem to be rising as they believe it will continue to do so and sell those that are losing as they believe they will as well continue to do so.

To capture this we had a specified ranking period (14 Days) from which we observed the direction the stock was heading and after which we bought or sold it for the next 7 Days and continued to rebalance the portfolio after these intervals.

We then simulated another specification where we had ranking period of (30 Days) to see if it changes the result.

5. The Excel File.

The excel file attached to this has our prior calculations for asset selection.

We bought stocks that had the highest 14 day cumulative returns (Winner Stocks) and sold the ones that had the lowest trailing 14 day cumulative returns (Loser Stocks).

6. The Regression Estimation.

Yt = α + βXt + ε

Y - The Momentum portfolio.

X - The Market portfolio.

This specification allows us to capture alpha (α). Which is the risk adjusted excess return i.e. By how much did the momentum strategy outperform the market portfolio after factoring in the risk attributes of returns.

We looked at both the economic significance and statistical significance to determine if the strategy adequately outperformed the market portfolio.

7. Bonus.

Other than just comparing it it to the market portfolio, we made a simmulation of the cumulative return achived by the momentum strategy through out the period (2015-2020) and compared it to the cumulative return achieved by some one who just bought the same assets at the beginning and held it for the whole period without rebalancing.

8. Packages Used.

library(readxl)
## Warning: package 'readxl' was built under R version 3.6.3
library(rtf)
## Warning: package 'rtf' was built under R version 3.6.3
library(tseries)
## Warning: package 'tseries' was built under R version 3.6.3
library(fBasics)
## Warning: package 'fBasics' was built under R version 3.6.3
## Warning: package 'timeDate' was built under R version 3.6.3
## Warning: package 'timeSeries' was built under R version 3.6.3
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 3.6.3
library(dplyr)
## Warning: package 'dplyr' was built under R version 3.6.3
library(tibble)
## Warning: package 'tibble' was built under R version 3.6.3
library(PerformanceAnalytics)
## Warning: package 'PerformanceAnalytics' was built under R version 3.6.3
## Warning: package 'xts' was built under R version 3.6.3
## Warning: package 'zoo' was built under R version 3.6.3

9. Setting A Working Directory And Importing The Data.

setwd("C:/Users/HP/OneDrive/Documents/BBS 4.2/FMM")
WML<-read_excel("~/WML.xlsx")
WML<-as.data.frame(WML)

10. Descriptive Statistics.

DATA=subset(WML,select = -c(DATE))
Descriptive_Stats<- basicStats(DATA)
Descriptive_Stats<- t(Descriptive_Stats)
Summary_Stats=subset(Descriptive_Stats,select = c(Minimum,Maximum,Mean,Median,Stdev,Skewness,Kurtosis))
subset(Descriptive_Stats,select = c(Minimum,Maximum,Mean,Median,Stdev,Skewness,Kurtosis))
##                 Minimum  Maximum      Mean    Median    Stdev  Skewness
## LONWINNER     -0.333661 0.131433 -0.000163  0.000176 0.018684 -3.595141
## LONLOSER      -0.118617 0.114958 -0.000408 -0.000059 0.017188 -0.292026
## USWINNER      -1.493078 1.500931  0.001402  0.000962 0.059305  0.111096
## USLOSER       -0.151735 0.090399  0.000164  0.000565 0.017612 -0.546098
## GERWINNER     -0.130168 0.098594  0.000290  0.000513 0.016667 -0.362665
## GERLOSER      -0.091179 0.090470 -0.000505 -0.000288 0.016752 -0.064039
## KENWINNER     -0.093351 0.084145  0.000167  0.000000 0.017411 -0.251999
## KENLOSER      -0.075674 0.091161  0.000113  0.000000 0.017495  0.082651
## LONDON_WML    -0.287697 0.097924  0.000246  0.000421 0.019871 -1.831178
## USA_WML       -1.510559 1.501911  0.001238  0.000513 0.060585 -0.203777
## GERMANY_WML   -0.126538 0.164290  0.000795  0.000809 0.020729  0.079901
## KENYA_WML     -0.100852 0.130441 -0.000666 -0.000517 0.024092  0.113683
## LONDON_HOLD   -0.075925 0.033327 -0.000118  0.000035 0.005984 -1.760522
## US_HOLD       -0.298811 0.301934  0.000310  0.000540 0.012724  0.166432
## GERM_HOLD     -0.026891 0.030176 -0.000043 -0.000130 0.005243 -0.105874
## FTSE.RETURN   -0.115124 0.086668 -0.000049  0.000470 0.011020 -0.971568
## SNP500.RETURN -0.071410 0.060343  0.000387  0.000921 0.009725 -0.737732
## HDAX.RET      -0.093760 0.080174  0.000174  0.000610 0.012655 -0.555055
## NSE20.RETURN  -0.051382 0.033612 -0.000728 -0.000633 0.007101 -0.801602
## LON_EX_RETURN -5.049427 3.351245 -0.004924  0.001825 0.246522 -6.157929
## US_EX_RETURN  -3.496803 4.330336 -0.002370  0.000537 0.367312  1.675506
## GER_EX_RETURN -1.485797 0.577677 -0.002730  0.000423 0.083395 -6.160912
## KEN_EX_RETURN -1.508712 1.502027  0.001047  0.000000 0.062168 -0.126440
## LON_MKT_EX    -5.052553 3.329261 -0.005218  0.000901 0.245515 -6.304645
## US_MKT_EX     -3.510042 4.344437 -0.003221  0.000909 0.364970  1.744410
## GER_MKY_EX    -1.495855 0.564464 -0.003350  0.000222 0.082171 -6.596775
## KEN_MKY_EX    -0.761006 0.744363 -0.005015 -0.005789 0.031138 -0.195407
## LOND_30       -3.490337 4.327849  0.002752  0.000774 0.365600  1.998911
## USA_30        -3.389329 5.070674  0.006303 -0.001478 0.255116  5.719307
## GERM_30       -3.482609 4.332158  0.002580  0.001282 0.363217  2.085256
## LONMKT_30     -0.115124 0.086668 -0.000060  0.000482 0.011068 -0.967615
## USAMKT_30     -0.071410 0.060343  0.000375  0.000924 0.009733 -0.742025
## GERMMKT_30    -0.093760 0.080174  0.000155  0.000582 0.012698 -0.553436
##                 Kurtosis
## LONWINNER      75.213574
## LONLOSER        6.963096
## USWINNER      551.488006
## USLOSER         7.353672
## GERWINNER       6.559853
## GERLOSER        3.994712
## KENWINNER       3.361015
## KENLOSER        2.681949
## LONDON_WML     31.962242
## USA_WML       518.835152
## GERMANY_WML     5.549413
## KENYA_WML       1.749067
## LONDON_HOLD    24.937266
## US_HOLD       421.655517
## GERM_HOLD       2.983892
## FTSE.RETURN    14.051914
## SNP500.RETURN   7.012699
## HDAX.RET        7.953894
## NSE20.RETURN    5.766428
## LON_EX_RETURN 180.724615
## US_EX_RETURN   53.871236
## GER_EX_RETURN 105.992033
## KEN_EX_RETURN 466.700875
## LON_MKT_EX    182.769203
## US_MKT_EX      55.729255
## GER_MKY_EX    114.380661
## KEN_MKY_EX    463.458075
## LOND_30        53.059390
## USA_30        162.838620
## GERM_30        54.604646
## LONMKT_30      13.935561
## USAMKT_30       7.070617
## GERMMKT_30      7.916660
rtffile <- RTF("descriptive_Stats.doc")
addText(rtffile, "\t\tTable 1: Descriptive statistics \n\n", bold=TRUE, italic=FALSE)
Variable<-rownames(Summary_Stats)
addHeader(rtffile, title="\\i Descriptive stats ")
addTable(rtffile, cbind(Variable, Summary_Stats), font.size=8)
done(rtffile) 

11. Plotting The Individual Variables.

LOND_WML<-ts((WML$LONDON_WML))
USA_WML<-ts((WML$USA_WML))
GERM_WML<-ts((WML$GERMANY_WML))
KEN_WML<-ts((WML$KENYA_WML))
FTSE<-ts(WML$`FTSE-RETURN`)
SNP500<-ts((WML$`SNP500-RETURN`))
HDAX<-ts((WML$`HDAX-RET`))
NSE20<-ts((WML$`NSE20-RETURN`))
LOND_HOLD<-ts((WML$LONDON_HOLD))
USA_HOLD<-ts((WML$US_HOLD))
GERM_HOLD<-ts((WML$GERM_HOLD))
TSDATA=cbind.data.frame(LOND_WML,USA_WML,GERM_WML,KEN_WML,FTSE,SNP500,HDAX,NSE20)
LONDONTS=cbind.data.frame(LOND_WML,LOND_HOLD)
USATS=cbind.data.frame(USA_WML,USA_HOLD)
GERMTS=cbind.data.frame(GERM_WML,GERM_HOLD)

plot(LOND_WML,type="l",col="cadetblue",lwd=2,ylab="Return",xlab="Time",main="London_Winner_Minus_Loser")

plot(USA_WML,type="l",col="darksalmon",lwd=2,ylab="Return",xlab="Time",main="USA_Winner_Minus_Loser")

plot(GERM_WML,type="l",col="darkkhaki",lwd=2,ylab="Return",xlab="Time",main="Germany_Winner_Minus_Loser")

plot(KEN_WML,type="l",col="cadetblue",lwd=2,ylab="Return",xlab="Time",main="Kenya_Winner_Minus_Loser")

plot(FTSE,type="l",col="darkmagenta",lwd=2,ylab="Return",xlab="Time",main="FTSE")

plot(SNP500,type="l",col="coral",lwd=2,ylab="Return",xlab="Time",main="SNP500")

plot(HDAX,type="l",col="brown",lwd=2,ylab="Return",xlab="Time",main="HDAX")

plot(NSE20,type="l",col="darkmagenta",lwd=2,ylab="Return",xlab="Time",main="NSE20")

12. The Bell-Shaped Distribution Graph.

p <- ggplot(TSDATA, aes(x =LOND_WML))
p + geom_histogram(fill="cyan", colour="black")+ geom_density(aes(y=0.02*..count..), colour="red",lwd=1,adjust=4) 
## Don't know how to automatically pick scale for object of type ts. Defaulting to continuous.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

p <- ggplot(TSDATA, aes(x =USA_WML))
p + geom_histogram(fill="plum", colour="black")+ geom_density(aes(y=0.08*..count..), colour="red",lwd=1,adjust=4)
## Don't know how to automatically pick scale for object of type ts. Defaulting to continuous.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

p <- ggplot(TSDATA, aes(x =GERM_WML))
p + geom_histogram(fill="burlywood1", colour="black")+ geom_density(aes(y=0.009*..count..), colour="red",lwd=1,adjust=4)
## Don't know how to automatically pick scale for object of type ts. Defaulting to continuous.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

p <- ggplot(TSDATA, aes(x =KEN_WML))
p + geom_histogram(fill="cyan", colour="black")+ geom_density(aes(y=0.009*..count..), colour="red",lwd=1,adjust=4) 
## Don't know how to automatically pick scale for object of type ts. Defaulting to continuous.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Removed 2 rows containing non-finite values (stat_bin).
## Warning: Removed 2 rows containing non-finite values (stat_density).

p <- ggplot(TSDATA, aes(x =FTSE))
p + geom_histogram(fill="coral1", colour="black")+ geom_density(aes(y=0.01*..count..), colour="red",lwd=1,adjust=4)
## Don't know how to automatically pick scale for object of type ts. Defaulting to continuous.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

p <- ggplot(TSDATA, aes(x =SNP500))
p + geom_histogram(fill="burlywood1", colour="black")+ geom_density(aes(y=0.006*..count..), colour="red",lwd=1,adjust=4)
## Don't know how to automatically pick scale for object of type ts. Defaulting to continuous.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

p <- ggplot(TSDATA, aes(x =HDAX))
p + geom_histogram(fill="cornsilk", colour="black")+ geom_density(aes(y=0.007*..count..), colour="red",lwd=1,adjust=4)
## Don't know how to automatically pick scale for object of type ts. Defaulting to continuous.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

p <- ggplot(TSDATA, aes(x =NSE20))
p + geom_histogram(fill="coral1", colour="black")+ geom_density(aes(y=0.004*..count..), colour="red",lwd=1,adjust=4)
## Don't know how to automatically pick scale for object of type ts. Defaulting to continuous.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

13. Regression Estimation (14 Day Sorting Window).

13.1 Excess Return

LondonMKT_EX=lm(WML$LON_EX_RETURN~WML$LON_MKT_EX)
USAMKT_EX=lm(WML$US_EX_RETURN~WML$US_MKT_EX)
GermanMKT_EX=lm(WML$GER_EX_RETURN~WML$GER_MKY_EX)
KenyaMKT_EX=lm(WML$KEN_EX_RETURN~WML$KEN_MKY_EX)
summary(LondonMKT_EX)
## 
## Call:
## lm(formula = WML$LON_EX_RETURN ~ WML$LON_MKT_EX)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.256029 -0.011721 -0.000455  0.011583  0.123469 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    0.0002931  0.0006004   0.488    0.626    
## WML$LON_MKT_EX 0.9997325  0.0024459 408.735   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.02298 on 1463 degrees of freedom
## Multiple R-squared:  0.9913, Adjusted R-squared:  0.9913 
## F-statistic: 1.671e+05 on 1 and 1463 DF,  p-value: < 2.2e-16
summary(USAMKT_EX)
## 
## Call:
## lm(formula = WML$US_EX_RETURN ~ WML$US_MKT_EX)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.50458 -0.01420 -0.00081  0.01315  1.50237 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   0.0008264  0.0015993   0.517    0.605    
## WML$US_MKT_EX 0.9923536  0.0043833 226.396   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.06121 on 1463 degrees of freedom
## Multiple R-squared:  0.9722, Adjusted R-squared:  0.9722 
## F-statistic: 5.126e+04 on 1 and 1463 DF,  p-value: < 2.2e-16
summary(GermanMKT_EX)
## 
## Call:
## lm(formula = WML$GER_EX_RETURN ~ WML$GER_MKY_EX)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.151940 -0.011277  0.000323  0.011227  0.149295 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    0.0005423  0.0005924   0.915     0.36    
## WML$GER_MKY_EX 0.9767528  0.0072059 135.549   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.02266 on 1463 degrees of freedom
## Multiple R-squared:  0.9262, Adjusted R-squared:  0.9262 
## F-statistic: 1.837e+04 on 1 and 1463 DF,  p-value: < 2.2e-16
summary(KenyaMKT_EX)
## 
## Call:
## lm(formula = WML$KEN_EX_RETURN ~ WML$KEN_MKY_EX)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.005015 -0.004491  0.002178  0.002262  0.007444 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    1.104e-02  9.693e-05   113.9   <2e-16 ***
## WML$KEN_MKY_EX 1.993e+00  3.074e-03   648.3   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.003663 on 1463 degrees of freedom
## Multiple R-squared:  0.9965, Adjusted R-squared:  0.9965 
## F-statistic: 4.203e+05 on 1 and 1463 DF,  p-value: < 2.2e-16

13.2 Winner Portfolio

LondonMKT_WIN=lm(WML$LONWINNER~WML$`FTSE-RETURN`)
USAMKT_WIN=lm(WML$USWINNER~WML$`SNP500-RETURN`)
GermanMKT_WIN=lm(WML$GERWINNER~WML$`HDAX-RET`)
summary(LondonMKT_WIN)
## 
## Call:
## lm(formula = WML$LONWINNER ~ WML$`FTSE-RETURN`)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.31783 -0.00757 -0.00012  0.00729  0.12288 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       -0.0001385  0.0004674  -0.296    0.767    
## WML$`FTSE-RETURN`  0.4908665  0.0424305  11.569   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.01789 on 1463 degrees of freedom
## Multiple R-squared:  0.08381,    Adjusted R-squared:  0.08319 
## F-statistic: 133.8 on 1 and 1463 DF,  p-value: < 2.2e-16
summary(USAMKT_WIN)
## 
## Call:
## lm(formula = WML$USWINNER ~ WML$`SNP500-RETURN`)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.48890 -0.00817 -0.00058  0.00747  1.50394 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         0.001013   0.001530   0.662    0.508    
## WML$`SNP500-RETURN` 1.003285   0.157261   6.380 2.37e-10 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.05852 on 1463 degrees of freedom
## Multiple R-squared:  0.02707,    Adjusted R-squared:  0.0264 
## F-statistic:  40.7 on 1 and 1463 DF,  p-value: 2.374e-10
summary(GermanMKT_WIN)
## 
## Call:
## lm(formula = WML$GERWINNER ~ WML$`HDAX-RET`)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.142397 -0.007887  0.000428  0.007921  0.072729 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    0.0002066  0.0004062   0.509    0.611    
## WML$`HDAX-RET` 0.4758480  0.0321070  14.821   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.01555 on 1463 degrees of freedom
## Multiple R-squared:  0.1305, Adjusted R-squared:  0.1299 
## F-statistic: 219.7 on 1 and 1463 DF,  p-value: < 2.2e-16

13.3 Loser Portfolio

LondonMKT_LOS=lm(WML$LONLOSER~WML$`FTSE-RETURN`)
USAMKT_LOS=lm(WML$USLOSER~WML$`SNP500-RETURN`)
GermanMKT_LOS=lm(WML$GERLOSER~WML$`HDAX-RET`)
summary(LondonMKT_LOS)
## 
## Call:
## lm(formula = WML$LONLOSER ~ WML$`FTSE-RETURN`)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.097458 -0.007964  0.000098  0.008289  0.104173 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       -0.0003818  0.0004217  -0.905    0.365    
## WML$`FTSE-RETURN`  0.5373071  0.0382823  14.035   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.01614 on 1463 degrees of freedom
## Multiple R-squared:  0.1187, Adjusted R-squared:  0.1181 
## F-statistic:   197 on 1 and 1463 DF,  p-value: < 2.2e-16
summary(USAMKT_LOS)
## 
## Call:
## lm(formula = WML$USLOSER ~ WML$`SNP500-RETURN`)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.132214 -0.007048  0.000394  0.007097  0.064470 
## 
## Coefficients:
##                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         -0.0001979  0.0003947  -0.501    0.616    
## WML$`SNP500-RETURN`  0.9337946  0.0405664  23.019   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.01509 on 1463 degrees of freedom
## Multiple R-squared:  0.2659, Adjusted R-squared:  0.2654 
## F-statistic: 529.9 on 1 and 1463 DF,  p-value: < 2.2e-16
summary(GermanMKT_LOS)
## 
## Call:
## lm(formula = WML$GERLOSER ~ WML$`HDAX-RET`)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.090888 -0.008401  0.000339  0.008254  0.104159 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    -0.0005481  0.0004302  -1.274    0.203    
## WML$`HDAX-RET`  0.2470920  0.0340017   7.267 5.96e-13 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.01646 on 1463 degrees of freedom
## Multiple R-squared:  0.03484,    Adjusted R-squared:  0.03418 
## F-statistic: 52.81 on 1 and 1463 DF,  p-value: 5.956e-13

14. Regression Estimation (30 Day Sorting Window).

14.1 General Returns

LondonMKT_30D=lm(WML$LOND_30~WML$LONMKT_30)
USAMKT_30D=lm(WML$USA_30~WML$USAMKT_30)
GermanMKT_30D=lm(WML$GERM_30~WML$GERMMKT_30)
summary(LondonMKT_30D)
## 
## Call:
## lm(formula = WML$LOND_30 ~ WML$LONMKT_30)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.4909 -0.0458 -0.0021  0.0408  4.3245 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)
## (Intercept)   0.002773   0.009607   0.289    0.773
## WML$LONMKT_30 0.351048   0.868310   0.404    0.686
## 
## Residual standard error: 0.3657 on 1447 degrees of freedom
##   (16 observations deleted due to missingness)
## Multiple R-squared:  0.0001129,  Adjusted R-squared:  -0.0005781 
## F-statistic: 0.1634 on 1 and 1447 DF,  p-value: 0.6861
summary(USAMKT_30D)
## 
## Call:
## lm(formula = WML$USA_30 ~ WML$USAMKT_30)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.3926 -0.0383 -0.0079  0.0288  5.0615 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)
## (Intercept)   0.006055   0.006707   0.903    0.367
## WML$USAMKT_30 0.663489   0.688804   0.963    0.336
## 
## Residual standard error: 0.2551 on 1447 degrees of freedom
##   (16 observations deleted due to missingness)
## Multiple R-squared:  0.0006408,  Adjusted R-squared:  -4.983e-05 
## F-statistic: 0.9278 on 1 and 1447 DF,  p-value: 0.3356
summary(GermanMKT_30D)
## 
## Call:
## lm(formula = WML$GERM_30 ~ WML$GERMMKT_30)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.4867 -0.0384 -0.0012  0.0330  4.3308 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)
## (Intercept)     0.002596   0.009546   0.272    0.786
## WML$GERMMKT_30 -0.101034   0.751964  -0.134    0.893
## 
## Residual standard error: 0.3633 on 1447 degrees of freedom
##   (16 observations deleted due to missingness)
## Multiple R-squared:  1.248e-05,  Adjusted R-squared:  -0.0006786 
## F-statistic: 0.01805 on 1 and 1447 DF,  p-value: 0.8931

15. Visualization of Cumulative Returns Associated with Momentum Strategy Vs Buy & Hold Strategy.

Note: In this section the graph that is green in colour indicates that in that coutry its is that strategy that outperformed the other.

charts.PerformanceSummary(LOND_WML,geometric=TRUE,main="London Winner Minus Loser", col="green")

charts.PerformanceSummary(LOND_HOLD,geometric=TRUE,main="London Hold", col="red")

charts.PerformanceSummary(USA_WML,geometric=TRUE,main="USA Winner Minus Loser", col="red")

charts.PerformanceSummary(USA_HOLD,geometric=TRUE,main="USA Hold", col="green")

charts.PerformanceSummary(GERM_WML,geometric=TRUE,main="Germany Winner Minus Loser", col="green")

charts.PerformanceSummary(GERM_HOLD,geometric=TRUE,main="Germany Hold", col="red")