Installation of the Libraries
Libraries
If making the financial analysis of the stock exchange data, the
following packages are needed:
- quantmod
- PerformanceAnalytics
- tidyquant
#install.packages("PerformanceAnalytics", repos = "http://cran.us.r-project.org")
#install.packages("dplyr", repos = "http://cran.us.r-project.org")
#install.packages("tidyquant", repos = "http://cran.us.r-project.org")
#install.packages("quantmod", repos = "http://cAs iran.us.r-project.org")
#install.packages("tseries", repos = "http://cran.us.r-project.org")
#install.packages("tidyverse", repos = "http://cran.us.r-project.org")
library(PerformanceAnalytics) #useful package !!!
library(quantmod) # useful package
library(tidyquant) # useful
library(randtests) # for runs test
# other libraries
library(ggplot2)
library(dplyr)
library(tseries)
library(tidyverse)
library(plotly)
library(hrbrthemes)
library(xts)
library(knitr)
library(kableExtra)
library(car)
library(mathjaxr)
library(zoo)
rm(list=ls())
Data download
If downloading the stock-exchange data, we use the quantmod package
command “getSymbols”. COmmand “Ad” enables extraction of just Adjusted
closing prices of the day.
# Load the required package
library(quantmod)
# Set dates for data retrieval
start_date <- "2010-01-01"
end_date <- "2022-12-31"
symbol <-"AAPL"
# Download the data for Ford (ticker symbol: AAPL)
getSymbols(symbol, src = "yahoo", from = start_date, to = end_date, auto.assign = TRUE)
[1] "AAPL"
# Extract the adjusted close prices
adot.close <- Ad(getSymbols(symbol, src = "yahoo", from = start_date, to = end_date, auto.assign = FALSE))
title <- paste(symbol)
plot(adot.close, col="red", main=title)

valtozas <- diff(adot.close)
median_valtozas <- median(valtozas, na.rm = TRUE) # Compute median excluding NA
valtozas[is.na(valtozas)] <- median_valtozas # replacing missing returns by their estimates by median
acf(valtozas,main="Autocorrelations of Price differences")

In this project, I replaced the ticker symbol with Apple, identified
by AAPL. In the figure above, the results are displayed. It’s apparent
that, in most cases, the price correlations fall between the two blue
dashed lines. Therefore, it can be concluded that, in general, we can
accept the hypothesis that the price movements of Apple are not weakly
information efficient.
# Load the required package
library(randtests)
# Perform the Runs Test
runs_test_result <- runs.test(as.vector(valtozas))
Error in runs.test(as.vector(valtozas)) : x is not a factor
\(H_0: \quad \text{Price movements reflect
a weak form of the efficiency}\) \(H_1:
\quad \text{Price movements deny the weak form of the
efficiency}\)
In our case p-value is high, we reject the alternative, we deny the
alternative hypothesis of absenting the weak form of the efficiency.
LS0tCnRpdGxlOiAiVGVzdGluZyBvZiB0aGUgV2VhayBGb3JtIG9mIEVmZmljaWVuY3kiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KIyMjIEluc3RhbGxhdGlvbiBvZiB0aGUgTGlicmFyaWVzCgpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0KaW5zdGFsbC5wYWNrYWdlcyh0aW55dGV4KQpsaWJyYXJ5KHRpbnl0ZXgpCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkKYGBgCgoKYGBge3IsIGVjaG89RkFMU0V9Cm9wdGlvbnModGlueXRleC5tYXRoamF4ID0gVFJVRSkKYGBgCgojIyBMaWJyYXJpZXMKCklmIG1ha2luZyB0aGUgZmluYW5jaWFsIGFuYWx5c2lzIG9mIHRoZSBzdG9jayBleGNoYW5nZSBkYXRhLCB0aGUgZm9sbG93aW5nIHBhY2thZ2VzIGFyZSBuZWVkZWQ6CgoxLiBxdWFudG1vZAoyLiBQZXJmb3JtYW5jZUFuYWx5dGljcwozLiB0aWR5cXVhbnQgIAoKYGBge3IgbGlicmFyaWVzfQojaW5zdGFsbC5wYWNrYWdlcygiUGVyZm9ybWFuY2VBbmFseXRpY3MiLCByZXBvcyA9ICJodHRwOi8vY3Jhbi51cy5yLXByb2plY3Qub3JnIikKI2luc3RhbGwucGFja2FnZXMoImRwbHlyIiwgcmVwb3MgPSAiaHR0cDovL2NyYW4udXMuci1wcm9qZWN0Lm9yZyIpCiNpbnN0YWxsLnBhY2thZ2VzKCJ0aWR5cXVhbnQiLCByZXBvcyA9ICJodHRwOi8vY3Jhbi51cy5yLXByb2plY3Qub3JnIikKI2luc3RhbGwucGFja2FnZXMoInF1YW50bW9kIiwgcmVwb3MgPSAiaHR0cDovL2NBcyBpcmFuLnVzLnItcHJvamVjdC5vcmciKQojaW5zdGFsbC5wYWNrYWdlcygidHNlcmllcyIsIHJlcG9zID0gImh0dHA6Ly9jcmFuLnVzLnItcHJvamVjdC5vcmciKQojaW5zdGFsbC5wYWNrYWdlcygidGlkeXZlcnNlIiwgcmVwb3MgPSAiaHR0cDovL2NyYW4udXMuci1wcm9qZWN0Lm9yZyIpCgpsaWJyYXJ5KFBlcmZvcm1hbmNlQW5hbHl0aWNzKSAgI3VzZWZ1bCBwYWNrYWdlICEhIQpsaWJyYXJ5KHF1YW50bW9kKSAgICAgICAgICAgICAgIyB1c2VmdWwgcGFja2FnZQpsaWJyYXJ5KHRpZHlxdWFudCkgICAgICAgICAgICAgIyB1c2VmdWwKbGlicmFyeShyYW5kdGVzdHMpICAjIGZvciBydW5zIHRlc3QKCiMgb3RoZXIgbGlicmFyaWVzCgpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkoZHBseXIpCmxpYnJhcnkodHNlcmllcykKbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkocGxvdGx5KQpsaWJyYXJ5KGhyYnJ0aGVtZXMpCmxpYnJhcnkoeHRzKQpsaWJyYXJ5KGtuaXRyKQpsaWJyYXJ5KGthYmxlRXh0cmEpCmxpYnJhcnkoY2FyKQpsaWJyYXJ5KG1hdGhqYXhyKQpsaWJyYXJ5KHpvbykKcm0obGlzdD1scygpKQpgYGAKCiMjIERhdGEgZG93bmxvYWQKCklmIGRvd25sb2FkaW5nIHRoZSBzdG9jay1leGNoYW5nZSBkYXRhLCB3ZSB1c2UgdGhlIHF1YW50bW9kIHBhY2thZ2UgY29tbWFuZCAiZ2V0U3ltYm9scyIuIENPbW1hbmQgIkFkIiBlbmFibGVzIGV4dHJhY3Rpb24gb2YganVzdCBBZGp1c3RlZCBjbG9zaW5nIHByaWNlcyBvZiB0aGUgZGF5LgoKCgpgYGB7cn0KIyBMb2FkIHRoZSByZXF1aXJlZCBwYWNrYWdlCmxpYnJhcnkocXVhbnRtb2QpCgojIFNldCBkYXRlcyBmb3IgZGF0YSByZXRyaWV2YWwKc3RhcnRfZGF0ZSA8LSAiMjAxMC0wMS0wMSIKZW5kX2RhdGUgPC0gIjIwMjItMTItMzEiCnN5bWJvbCA8LSJBQVBMIgoKIyBEb3dubG9hZCB0aGUgZGF0YSBmb3IgRm9yZCAodGlja2VyIHN5bWJvbDogQUFQTCkKZ2V0U3ltYm9scyhzeW1ib2wsIHNyYyA9ICJ5YWhvbyIsIGZyb20gPSBzdGFydF9kYXRlLCB0byA9IGVuZF9kYXRlLCBhdXRvLmFzc2lnbiA9IFRSVUUpCgojIEV4dHJhY3QgdGhlIGFkanVzdGVkIGNsb3NlIHByaWNlcwphZG90LmNsb3NlIDwtIEFkKGdldFN5bWJvbHMoc3ltYm9sLCBzcmMgPSAieWFob28iLCBmcm9tID0gc3RhcnRfZGF0ZSwgdG8gPSBlbmRfZGF0ZSwgYXV0by5hc3NpZ24gPSBGQUxTRSkpCgpgYGAKCgoKCgoKYGBge3J9CnRpdGxlIDwtIHBhc3RlKHN5bWJvbCkgCnBsb3QoYWRvdC5jbG9zZSwgY29sPSJyZWQiLCBtYWluPXRpdGxlKQpgYGAKCmBgYHtyfQoKdmFsdG96YXMgPC0gZGlmZihhZG90LmNsb3NlKQptZWRpYW5fdmFsdG96YXMgPC0gbWVkaWFuKHZhbHRvemFzLCBuYS5ybSA9IFRSVUUpICAjIENvbXB1dGUgbWVkaWFuIGV4Y2x1ZGluZyBOQQp2YWx0b3phc1tpcy5uYSh2YWx0b3phcyldIDwtIG1lZGlhbl92YWx0b3phcyAjIHJlcGxhY2luZyBtaXNzaW5nIHJldHVybnMgYnkgdGhlaXIgZXN0aW1hdGVzIGJ5IG1lZGlhbgoKCgoKYWNmKHZhbHRvemFzLG1haW49IkF1dG9jb3JyZWxhdGlvbnMgb2YgUHJpY2UgZGlmZmVyZW5jZXMiKQpgYGAKSW4gdGhpcyBwcm9qZWN0LCBJIHJlcGxhY2VkIHRoZSB0aWNrZXIgc3ltYm9sIHdpdGggQXBwbGUsIGlkZW50aWZpZWQgYnkgQUFQTC4gSW4gdGhlIGZpZ3VyZSBhYm92ZSwgdGhlIHJlc3VsdHMgYXJlIGRpc3BsYXllZC4gSXQncyBhcHBhcmVudCB0aGF0LCBpbiBtb3N0IGNhc2VzLCB0aGUgcHJpY2UgY29ycmVsYXRpb25zIGZhbGwgYmV0d2VlbiB0aGUgdHdvIGJsdWUgZGFzaGVkIGxpbmVzLiBUaGVyZWZvcmUsIGl0IGNhbiBiZSBjb25jbHVkZWQgdGhhdCwgaW4gZ2VuZXJhbCwgd2UgY2FuIGFjY2VwdCB0aGUgaHlwb3RoZXNpcyB0aGF0IHRoZSBwcmljZSBtb3ZlbWVudHMgb2YgQXBwbGUgYXJlIG5vdCB3ZWFrbHkgaW5mb3JtYXRpb24gZWZmaWNpZW50LgoKYGBge3J9CgoKIyBMb2FkIHRoZSByZXF1aXJlZCBwYWNrYWdlCmxpYnJhcnkocmFuZHRlc3RzKQoKIyBQZXJmb3JtIHRoZSBSdW5zIFRlc3QKcnVuc190ZXN0X3Jlc3VsdCA8LSBydW5zLnRlc3QoYXMudmVjdG9yKHZhbHRvemFzKSkKCiMgUHJpbnQgdGhlIHJlc3VsdApwcmludChydW5zX3Rlc3RfcmVzdWx0KQoKYGBgCgokSF8wOiBccXVhZCBcdGV4dHtQcmljZSBtb3ZlbWVudHMgcmVmbGVjdCBhIHdlYWsgZm9ybSBvZiB0aGUgZWZmaWNpZW5jeX0kCiRIXzE6IFxxdWFkIFx0ZXh0e1ByaWNlIG1vdmVtZW50cyBkZW55IHRoZSB3ZWFrIGZvcm0gb2YgdGhlIGVmZmljaWVuY3l9JAoKCkluIG91ciBjYXNlIHAtdmFsdWUgaXMgaGlnaCwgd2UgcmVqZWN0IHRoZSBhbHRlcm5hdGl2ZSwgd2UgZGVueSB0aGUgYWx0ZXJuYXRpdmUgaHlwb3RoZXNpcyBvZiBhYnNlbnRpbmcgdGhlIHdlYWsgZm9ybSBvZiB0aGUgZWZmaWNpZW5jeS4KCiMjIFNlbWktc3Ryb25nIGZvcm0gb2YgdGhlIGVmZmljaWVuY3kKCgoKQWxsIHB1YmxpYyAoYnV0IG5vdCBpbnNpZGUpIGluZm9ybWF0aW9uIGlzIGNhbGN1bGF0ZWQgaW50byBhIHN0b2NrJ3MgY3VycmVudCAgcHJpY2UuIE5laXRoZXIgZnVuZGFtZW50YWwgbm9yIHRlY2huaWNhbCBhbmFseXNpcyBjYW4gYmUgdXNlZCB0byBhY2hpZXZlIHN1cGVyaW9yIGdhaW5zLgoKVGVzdCBFdmVudCBTdHVkaWVzOiBUaGVzZSBzdHVkaWVzIGV4YW1pbmUgdGhlIHN0b2NrIHByaWNlIHJlYWN0aW9uIHRvIG5ldyBwdWJsaWMgaW5mb3JtYXRpb24sIHN1Y2ggYXMgZWFybmluZ3MgYW5ub3VuY2VtZW50cywgdG8gZGV0ZXJtaW5lIGhvdyBxdWlja2x5IGFuZCBhY2N1cmF0ZWx5IHByaWNlcyBhZGp1c3QuCgojIyBTdHJvbmcgZm9ybSBvZiB0aGUgZWZmaWNpZW5jeQoKQm90aCB0aGUgcHVibGljIGFuZCBpbnNpZGUgaW5mb3JtYXRpb24gaXMgY2FsY3VsYXRlZCBpbnRvIGEgc3RvY2sgY3VycmVudCBwcmljZS4KCg==