Installation of the Libraries

Libraries

If making the financial analysis of the stock exchange data, the following packages are needed:

  1. quantmod
  2. PerformanceAnalytics
  3. 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.

Semi-strong form of the efficiency

All public (but not inside) information is calculated into a stock’s current price. Neither fundamental nor technical analysis can be used to achieve superior gains.

Test Event Studies: These studies examine the stock price reaction to new public information, such as earnings announcements, to determine how quickly and accurately prices adjust.

Strong form of the efficiency

Both the public and inside information is calculated into a stock current price.

LS0tCnRpdGxlOiAiVGVzdGluZyBvZiB0aGUgV2VhayBGb3JtIG9mIEVmZmljaWVuY3kiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KIyMjIEluc3RhbGxhdGlvbiBvZiB0aGUgTGlicmFyaWVzCgpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0KaW5zdGFsbC5wYWNrYWdlcyh0aW55dGV4KQpsaWJyYXJ5KHRpbnl0ZXgpCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkKYGBgCgoKYGBge3IsIGVjaG89RkFMU0V9Cm9wdGlvbnModGlueXRleC5tYXRoamF4ID0gVFJVRSkKYGBgCgojIyBMaWJyYXJpZXMKCklmIG1ha2luZyB0aGUgZmluYW5jaWFsIGFuYWx5c2lzIG9mIHRoZSBzdG9jayBleGNoYW5nZSBkYXRhLCB0aGUgZm9sbG93aW5nIHBhY2thZ2VzIGFyZSBuZWVkZWQ6CgoxLiBxdWFudG1vZAoyLiBQZXJmb3JtYW5jZUFuYWx5dGljcwozLiB0aWR5cXVhbnQgIAoKYGBge3IgbGlicmFyaWVzfQojaW5zdGFsbC5wYWNrYWdlcygiUGVyZm9ybWFuY2VBbmFseXRpY3MiLCByZXBvcyA9ICJodHRwOi8vY3Jhbi51cy5yLXByb2plY3Qub3JnIikKI2luc3RhbGwucGFja2FnZXMoImRwbHlyIiwgcmVwb3MgPSAiaHR0cDovL2NyYW4udXMuci1wcm9qZWN0Lm9yZyIpCiNpbnN0YWxsLnBhY2thZ2VzKCJ0aWR5cXVhbnQiLCByZXBvcyA9ICJodHRwOi8vY3Jhbi51cy5yLXByb2plY3Qub3JnIikKI2luc3RhbGwucGFja2FnZXMoInF1YW50bW9kIiwgcmVwb3MgPSAiaHR0cDovL2NBcyBpcmFuLnVzLnItcHJvamVjdC5vcmciKQojaW5zdGFsbC5wYWNrYWdlcygidHNlcmllcyIsIHJlcG9zID0gImh0dHA6Ly9jcmFuLnVzLnItcHJvamVjdC5vcmciKQojaW5zdGFsbC5wYWNrYWdlcygidGlkeXZlcnNlIiwgcmVwb3MgPSAiaHR0cDovL2NyYW4udXMuci1wcm9qZWN0Lm9yZyIpCgpsaWJyYXJ5KFBlcmZvcm1hbmNlQW5hbHl0aWNzKSAgI3VzZWZ1bCBwYWNrYWdlICEhIQpsaWJyYXJ5KHF1YW50bW9kKSAgICAgICAgICAgICAgIyB1c2VmdWwgcGFja2FnZQpsaWJyYXJ5KHRpZHlxdWFudCkgICAgICAgICAgICAgIyB1c2VmdWwKbGlicmFyeShyYW5kdGVzdHMpICAjIGZvciBydW5zIHRlc3QKCiMgb3RoZXIgbGlicmFyaWVzCgpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkoZHBseXIpCmxpYnJhcnkodHNlcmllcykKbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkocGxvdGx5KQpsaWJyYXJ5KGhyYnJ0aGVtZXMpCmxpYnJhcnkoeHRzKQpsaWJyYXJ5KGtuaXRyKQpsaWJyYXJ5KGthYmxlRXh0cmEpCmxpYnJhcnkoY2FyKQpsaWJyYXJ5KG1hdGhqYXhyKQpsaWJyYXJ5KHpvbykKcm0obGlzdD1scygpKQpgYGAKCiMjIERhdGEgZG93bmxvYWQKCklmIGRvd25sb2FkaW5nIHRoZSBzdG9jay1leGNoYW5nZSBkYXRhLCB3ZSB1c2UgdGhlIHF1YW50bW9kIHBhY2thZ2UgY29tbWFuZCAiZ2V0U3ltYm9scyIuIENPbW1hbmQgIkFkIiBlbmFibGVzIGV4dHJhY3Rpb24gb2YganVzdCBBZGp1c3RlZCBjbG9zaW5nIHByaWNlcyBvZiB0aGUgZGF5LgoKCgpgYGB7cn0KIyBMb2FkIHRoZSByZXF1aXJlZCBwYWNrYWdlCmxpYnJhcnkocXVhbnRtb2QpCgojIFNldCBkYXRlcyBmb3IgZGF0YSByZXRyaWV2YWwKc3RhcnRfZGF0ZSA8LSAiMjAxMC0wMS0wMSIKZW5kX2RhdGUgPC0gIjIwMjItMTItMzEiCnN5bWJvbCA8LSJBQVBMIgoKIyBEb3dubG9hZCB0aGUgZGF0YSBmb3IgRm9yZCAodGlja2VyIHN5bWJvbDogQUFQTCkKZ2V0U3ltYm9scyhzeW1ib2wsIHNyYyA9ICJ5YWhvbyIsIGZyb20gPSBzdGFydF9kYXRlLCB0byA9IGVuZF9kYXRlLCBhdXRvLmFzc2lnbiA9IFRSVUUpCgojIEV4dHJhY3QgdGhlIGFkanVzdGVkIGNsb3NlIHByaWNlcwphZG90LmNsb3NlIDwtIEFkKGdldFN5bWJvbHMoc3ltYm9sLCBzcmMgPSAieWFob28iLCBmcm9tID0gc3RhcnRfZGF0ZSwgdG8gPSBlbmRfZGF0ZSwgYXV0by5hc3NpZ24gPSBGQUxTRSkpCgpgYGAKCgoKCgoKYGBge3J9CnRpdGxlIDwtIHBhc3RlKHN5bWJvbCkgCnBsb3QoYWRvdC5jbG9zZSwgY29sPSJyZWQiLCBtYWluPXRpdGxlKQpgYGAKCmBgYHtyfQoKdmFsdG96YXMgPC0gZGlmZihhZG90LmNsb3NlKQptZWRpYW5fdmFsdG96YXMgPC0gbWVkaWFuKHZhbHRvemFzLCBuYS5ybSA9IFRSVUUpICAjIENvbXB1dGUgbWVkaWFuIGV4Y2x1ZGluZyBOQQp2YWx0b3phc1tpcy5uYSh2YWx0b3phcyldIDwtIG1lZGlhbl92YWx0b3phcyAjIHJlcGxhY2luZyBtaXNzaW5nIHJldHVybnMgYnkgdGhlaXIgZXN0aW1hdGVzIGJ5IG1lZGlhbgoKCgoKYWNmKHZhbHRvemFzLG1haW49IkF1dG9jb3JyZWxhdGlvbnMgb2YgUHJpY2UgZGlmZmVyZW5jZXMiKQpgYGAKSW4gdGhpcyBwcm9qZWN0LCBJIHJlcGxhY2VkIHRoZSB0aWNrZXIgc3ltYm9sIHdpdGggQXBwbGUsIGlkZW50aWZpZWQgYnkgQUFQTC4gSW4gdGhlIGZpZ3VyZSBhYm92ZSwgdGhlIHJlc3VsdHMgYXJlIGRpc3BsYXllZC4gSXQncyBhcHBhcmVudCB0aGF0LCBpbiBtb3N0IGNhc2VzLCB0aGUgcHJpY2UgY29ycmVsYXRpb25zIGZhbGwgYmV0d2VlbiB0aGUgdHdvIGJsdWUgZGFzaGVkIGxpbmVzLiBUaGVyZWZvcmUsIGl0IGNhbiBiZSBjb25jbHVkZWQgdGhhdCwgaW4gZ2VuZXJhbCwgd2UgY2FuIGFjY2VwdCB0aGUgaHlwb3RoZXNpcyB0aGF0IHRoZSBwcmljZSBtb3ZlbWVudHMgb2YgQXBwbGUgYXJlIG5vdCB3ZWFrbHkgaW5mb3JtYXRpb24gZWZmaWNpZW50LgoKYGBge3J9CgoKIyBMb2FkIHRoZSByZXF1aXJlZCBwYWNrYWdlCmxpYnJhcnkocmFuZHRlc3RzKQoKIyBQZXJmb3JtIHRoZSBSdW5zIFRlc3QKcnVuc190ZXN0X3Jlc3VsdCA8LSBydW5zLnRlc3QoYXMudmVjdG9yKHZhbHRvemFzKSkKCiMgUHJpbnQgdGhlIHJlc3VsdApwcmludChydW5zX3Rlc3RfcmVzdWx0KQoKYGBgCgokSF8wOiBccXVhZCBcdGV4dHtQcmljZSBtb3ZlbWVudHMgcmVmbGVjdCBhIHdlYWsgZm9ybSBvZiB0aGUgZWZmaWNpZW5jeX0kCiRIXzE6IFxxdWFkIFx0ZXh0e1ByaWNlIG1vdmVtZW50cyBkZW55IHRoZSB3ZWFrIGZvcm0gb2YgdGhlIGVmZmljaWVuY3l9JAoKCkluIG91ciBjYXNlIHAtdmFsdWUgaXMgaGlnaCwgd2UgcmVqZWN0IHRoZSBhbHRlcm5hdGl2ZSwgd2UgZGVueSB0aGUgYWx0ZXJuYXRpdmUgaHlwb3RoZXNpcyBvZiBhYnNlbnRpbmcgdGhlIHdlYWsgZm9ybSBvZiB0aGUgZWZmaWNpZW5jeS4KCiMjIFNlbWktc3Ryb25nIGZvcm0gb2YgdGhlIGVmZmljaWVuY3kKCgoKQWxsIHB1YmxpYyAoYnV0IG5vdCBpbnNpZGUpIGluZm9ybWF0aW9uIGlzIGNhbGN1bGF0ZWQgaW50byBhIHN0b2NrJ3MgY3VycmVudCAgcHJpY2UuIE5laXRoZXIgZnVuZGFtZW50YWwgbm9yIHRlY2huaWNhbCBhbmFseXNpcyBjYW4gYmUgdXNlZCB0byBhY2hpZXZlIHN1cGVyaW9yIGdhaW5zLgoKVGVzdCBFdmVudCBTdHVkaWVzOiBUaGVzZSBzdHVkaWVzIGV4YW1pbmUgdGhlIHN0b2NrIHByaWNlIHJlYWN0aW9uIHRvIG5ldyBwdWJsaWMgaW5mb3JtYXRpb24sIHN1Y2ggYXMgZWFybmluZ3MgYW5ub3VuY2VtZW50cywgdG8gZGV0ZXJtaW5lIGhvdyBxdWlja2x5IGFuZCBhY2N1cmF0ZWx5IHByaWNlcyBhZGp1c3QuCgojIyBTdHJvbmcgZm9ybSBvZiB0aGUgZWZmaWNpZW5jeQoKQm90aCB0aGUgcHVibGljIGFuZCBpbnNpZGUgaW5mb3JtYXRpb24gaXMgY2FsY3VsYXRlZCBpbnRvIGEgc3RvY2sgY3VycmVudCBwcmljZS4KCg==