R Group Assignment

Objectives

Finance Theory

Strategy

# Load necessary libraries
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## âś” dplyr     1.1.4     âś” readr     2.1.5
## âś” forcats   1.0.0     âś” stringr   1.5.1
## âś” ggplot2   3.5.0     âś” tibble    3.2.1
## âś” lubridate 1.9.3     âś” tidyr     1.3.1
## âś” purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## âś– dplyr::filter() masks stats::filter()
## âś– dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(readxl)
library(lubridate)
library(writexl)
library(corrplot)
## corrplot 0.92 loaded
# Clear environment
rm(list = ls())

# Set seed for reproducibility
set.seed(1601190)

# Set directory
directory <- "C:/Users/Trinity/Downloads/R project/"

# Read data
My_stocks <- read_xlsx(paste0(directory, "Assignment data.xlsx"), sheet = "Flat Returns") %>% 
  distinct(Ticker) %>% 
  slice_sample(n = 20, replace = FALSE) %>% 
  unlist() %>% 
  unname()

Ratios_df <- read_xlsx(paste0(directory, "Assignment data.xlsx"), sheet = "Flat Ratios") %>% 
  select(c(1:5, all_of(toupper(My_stocks)))) %>% 
  mutate(across(c(1, 3), .fns = function(x){as.Date(x, origin = "1899-12-30")}))

Returns_df <- read_xlsx(paste0(directory, "Assignment data.xlsx"), sheet = "Flat Returns") %>% 
  filter(Ticker %in% My_stocks)

Returns_df$Ticker <- toupper(Returns_df$Ticker)

Importing and Modifying data

# Read the excel file 
excel_file <- "C:/Users/Trinity/Downloads/R project/Assignment data.xlsx"       
excel_sheets <- excel_sheets(excel_file)
sheet_name <- "Flat Returns" # Sheet name
data <- read_excel(excel_file, sheet = sheet_name)

##==============================================================================================
## Creating a  pivot table
##==============================================================================================

pivoted_df <- pivot_wider(data = data, names_from = "Ticker", values_from = "Daily Return")

# Store data in output Excel file
write_xlsx(pivoted_df, path = "output_data.xlsx")

pivoted_df_1 <- pivoted_df[, ! names(pivoted_df) %in% c('Date')]

# Create covariance matrices
pivoted_df_1 <- pivoted_df[, ! names(pivoted_df) %in% c('Date')]

##============================================================================================
##slicing the data into square matrices
##============================================================================================


matrix_1 <- pivoted_df_1[1:80,]
matrix_2 <- pivoted_df_1[81:160,]
matrix_3 <- pivoted_df_1[161:240,]
matrix_4 <- pivoted_df_1[241:320,]

rownames(matrix_1) <-toupper(rownames(matrix_1))
rownames(matrix_2) <-toupper(rownames(matrix_2))
rownames(matrix_3) <-toupper(rownames(matrix_3))
rownames(matrix_4) <-toupper(rownames(matrix_4))

rownames(matrix_1) <- colnames(matrix_1)
rownames(matrix_2) <- colnames(matrix_2)
rownames(matrix_3) <- colnames(matrix_3)
rownames(matrix_4) <- colnames(matrix_4)

##==============================================================================================
## Creating a covariance matrix for every matrix above
##==============================================================================================

Correlation_matrix_1 <- cor(matrix_1)
Correlation_matrix_2 <- cor(matrix_2)
Correlation_matrix_3 <- cor(matrix_3)
Correlation_matrix_4 <- cor(matrix_4)

rownames(Correlation_matrix_1) <-toupper(rownames(Correlation_matrix_1))
rownames(Correlation_matrix_2) <-toupper(rownames(Correlation_matrix_2))
rownames(Correlation_matrix_3) <-toupper(rownames(Correlation_matrix_3))
rownames(Correlation_matrix_4) <-toupper(rownames(Correlation_matrix_4))

colnames(Correlation_matrix_1) <- rownames(Correlation_matrix_1)
colnames(Correlation_matrix_2) <- rownames(Correlation_matrix_2)
colnames(Correlation_matrix_3) <- rownames(Correlation_matrix_3)
colnames(Correlation_matrix_4) <- rownames(Correlation_matrix_4)

View(Correlation_matrix_4)

Raw Matrix output

print(head(Correlation_matrix_4, n = 20))
##               MTN SJ EQUITY NPN SJ EQUITY PRX SJ EQUITY FSR SJ EQUITY
## MTN SJ EQUITY    1.00000000  2.531333e-02  -0.011055621    0.64234879
## NPN SJ EQUITY    0.02531333  1.000000e+00   0.975807627    0.06455968
## PRX SJ EQUITY   -0.01105562  9.758076e-01   1.000000000   -0.01556507
## FSR SJ EQUITY    0.64234879  6.455968e-02  -0.015565071    1.00000000
## AGL SJ EQUITY    0.31163289  5.091136e-02  -0.001858297    0.45064298
## SBK SJ EQUITY    0.72427134  7.073854e-02  -0.006939386    0.83612835
## SOL SJ EQUITY    0.13236534  8.532126e-02   0.024701633    0.28164757
## IMP SJ EQUITY    0.39482851  1.600402e-01   0.178997177    0.40333626
## CPI SJ EQUITY    0.38234141 -1.926394e-01  -0.223960072    0.61255342
## BTI SJ EQUITY   -0.10956044  1.402218e-02  -0.001696955   -0.08616487
## CFR SJ EQUITY    0.20836835  2.186184e-01   0.181988340    0.34386829
## SSW SJ EQUITY    0.16296622  7.543204e-02   0.077327864    0.30127596
## BHG SJ EQUITY    0.31051087 -6.801653e-02  -0.050221238    0.35358162
## ABG SJ EQUITY    0.38915050  1.334996e-01   0.052536538    0.61798585
## BID SJ EQUITY    0.21752867 -8.002026e-02  -0.064277041    0.26136718
## SLM SJ EQUITY    0.51501250 -4.320307e-05  -0.053592890    0.78046137
## SHP SJ EQUITY    0.33597258 -8.061043e-03  -0.033903300    0.50971782
## AMS SJ EQUITY    0.40911674  1.080264e-01   0.103788843    0.30572133
## VOD SJ EQUITY    0.63936652 -1.611370e-01  -0.164523262    0.46245199
## GFI SJ EQUITY    0.29216135  2.259940e-02  -0.029259359    0.44280810
##               AGL SJ EQUITY SBK SJ EQUITY SOL SJ EQUITY IMP SJ EQUITY
## MTN SJ EQUITY   0.311632891   0.724271343    0.13236534    0.39482851
## NPN SJ EQUITY   0.050911361   0.070738536    0.08532126    0.16004017
## PRX SJ EQUITY  -0.001858297  -0.006939386    0.02470163    0.17899718
## FSR SJ EQUITY   0.450642984   0.836128352    0.28164757    0.40333626
## AGL SJ EQUITY   1.000000000   0.475787860    0.25792585    0.41182710
## SBK SJ EQUITY   0.475787860   1.000000000    0.39400663    0.40482295
## SOL SJ EQUITY   0.257925850   0.394006633    1.00000000    0.38909204
## IMP SJ EQUITY   0.411827097   0.404822946    0.38909204    1.00000000
## CPI SJ EQUITY   0.429513639   0.507725147    0.17340374    0.30683310
## BTI SJ EQUITY  -0.160805522  -0.007359638    0.11685793   -0.07851724
## CFR SJ EQUITY   0.152470577   0.346094451   -0.14285288    0.25767876
## SSW SJ EQUITY   0.290195561   0.298688330    0.29428453    0.63801519
## BHG SJ EQUITY   0.261814523   0.280354939   -0.04611041    0.21585932
## ABG SJ EQUITY   0.698990223   0.678316504    0.44314308    0.32306159
## BID SJ EQUITY  -0.140510272   0.293824663    0.09351088    0.26680515
## SLM SJ EQUITY   0.442213717   0.756746316    0.37286375    0.50867839
## SHP SJ EQUITY   0.247505691   0.537900614    0.31454449    0.51942100
## AMS SJ EQUITY   0.341862039   0.402203462    0.26609483    0.78243766
## VOD SJ EQUITY   0.206296165   0.418317040    0.04132165    0.37215083
## GFI SJ EQUITY   0.364329202   0.416557863    0.19483526    0.23681455
##               CPI SJ EQUITY BTI SJ EQUITY CFR SJ EQUITY SSW SJ EQUITY
## MTN SJ EQUITY     0.3823414  -0.109560438    0.20836835    0.16296622
## NPN SJ EQUITY    -0.1926394   0.014022183    0.21861837    0.07543204
## PRX SJ EQUITY    -0.2239601  -0.001696955    0.18198834    0.07732786
## FSR SJ EQUITY     0.6125534  -0.086164867    0.34386829    0.30127596
## AGL SJ EQUITY     0.4295136  -0.160805522    0.15247058    0.29019556
## SBK SJ EQUITY     0.5077251  -0.007359638    0.34609445    0.29868833
## SOL SJ EQUITY     0.1734037   0.116857931   -0.14285288    0.29428453
## IMP SJ EQUITY     0.3068331  -0.078517238    0.25767876    0.63801519
## CPI SJ EQUITY     1.0000000  -0.192711328    0.19973144    0.21175276
## BTI SJ EQUITY    -0.1927113   1.000000000   -0.07363493   -0.04086361
## CFR SJ EQUITY     0.1997314  -0.073634926    1.00000000    0.17830936
## SSW SJ EQUITY     0.2117528  -0.040863609    0.17830936    1.00000000
## BHG SJ EQUITY     0.3011797  -0.256061927    0.14768332    0.17342686
## ABG SJ EQUITY     0.5095363  -0.125202327    0.19900709    0.31118834
## BID SJ EQUITY     0.1077457   0.324297894   -0.08123177    0.24355859
## SLM SJ EQUITY     0.5927452  -0.042344212    0.23255533    0.47673547
## SHP SJ EQUITY     0.3489504   0.025116849    0.21533299    0.26073103
## AMS SJ EQUITY     0.2576554  -0.060037313    0.19503044    0.73856698
## VOD SJ EQUITY     0.3698349   0.016221996    0.14118663    0.24499590
## GFI SJ EQUITY     0.3066519  -0.015577485    0.10867196    0.38246640
##               BHG SJ EQUITY ABG SJ EQUITY BID SJ EQUITY SLM SJ EQUITY
## MTN SJ EQUITY   0.310510875   0.389150503    0.21752867  5.150125e-01
## NPN SJ EQUITY  -0.068016533   0.133499611   -0.08002026 -4.320307e-05
## PRX SJ EQUITY  -0.050221238   0.052536538   -0.06427704 -5.359289e-02
## FSR SJ EQUITY   0.353581619   0.617985854    0.26136718  7.804614e-01
## AGL SJ EQUITY   0.261814523   0.698990223   -0.14051027  4.422137e-01
## SBK SJ EQUITY   0.280354939   0.678316504    0.29382466  7.567463e-01
## SOL SJ EQUITY  -0.046110413   0.443143083    0.09351088  3.728637e-01
## IMP SJ EQUITY   0.215859320   0.323061591    0.26680515  5.086784e-01
## CPI SJ EQUITY   0.301179652   0.509536319    0.10774573  5.927452e-01
## BTI SJ EQUITY  -0.256061927  -0.125202327    0.32429789 -4.234421e-02
## CFR SJ EQUITY   0.147683318   0.199007091   -0.08123177  2.325553e-01
## SSW SJ EQUITY   0.173426860   0.311188343    0.24355859  4.767355e-01
## BHG SJ EQUITY   1.000000000  -0.002488907   -0.07677093  4.333913e-01
## ABG SJ EQUITY  -0.002488907   1.000000000    0.04321045  5.675782e-01
## BID SJ EQUITY  -0.076770926   0.043210454    1.00000000  2.560304e-01
## SLM SJ EQUITY   0.433391260   0.567578200    0.25603041  1.000000e+00
## SHP SJ EQUITY   0.184417364   0.298317106    0.21392788  5.225889e-01
## AMS SJ EQUITY   0.194363612   0.299866903    0.26237305  4.587773e-01
## VOD SJ EQUITY   0.167528409   0.220638662    0.44546220  5.347304e-01
## GFI SJ EQUITY   0.376484896   0.281800336    0.22165675  4.506196e-01
##               SHP SJ EQUITY AMS SJ EQUITY VOD SJ EQUITY GFI SJ EQUITY
## MTN SJ EQUITY   0.335972575    0.40911674    0.63936652    0.29216135
## NPN SJ EQUITY  -0.008061043    0.10802642   -0.16113703    0.02259940
## PRX SJ EQUITY  -0.033903300    0.10378884   -0.16452326   -0.02925936
## FSR SJ EQUITY   0.509717817    0.30572133    0.46245199    0.44280810
## AGL SJ EQUITY   0.247505691    0.34186204    0.20629617    0.36432920
## SBK SJ EQUITY   0.537900614    0.40220346    0.41831704    0.41655786
## SOL SJ EQUITY   0.314544493    0.26609483    0.04132165    0.19483526
## IMP SJ EQUITY   0.519421003    0.78243766    0.37215083    0.23681455
## CPI SJ EQUITY   0.348950428    0.25765541    0.36983486    0.30665194
## BTI SJ EQUITY   0.025116849   -0.06003731    0.01622200   -0.01557749
## CFR SJ EQUITY   0.215332989    0.19503044    0.14118663    0.10867196
## SSW SJ EQUITY   0.260731027    0.73856698    0.24499590    0.38246640
## BHG SJ EQUITY   0.184417364    0.19436361    0.16752841    0.37648490
## ABG SJ EQUITY   0.298317106    0.29986690    0.22063866    0.28180034
## BID SJ EQUITY   0.213927880    0.26237305    0.44546220    0.22165675
## SLM SJ EQUITY   0.522588935    0.45877734    0.53473041    0.45061959
## SHP SJ EQUITY   1.000000000    0.50795013    0.31152352    0.41900763
## AMS SJ EQUITY   0.507950132    1.00000000    0.37363803    0.48510287
## VOD SJ EQUITY   0.311523516    0.37363803    1.00000000    0.32284424
## GFI SJ EQUITY   0.419007633    0.48510287    0.32284424    1.00000000
##               NED SJ EQUITY GLN SJ EQUITY APN SJ EQUITY ANG SJ EQUITY
## MTN SJ EQUITY    0.59714800  0.4713684679    0.36008046    0.31420408
## NPN SJ EQUITY    0.11733193  0.1156154449   -0.09029356    0.14580391
## PRX SJ EQUITY    0.04203672  0.0862240448   -0.09131992    0.06394209
## FSR SJ EQUITY    0.81778693  0.5931217171    0.40606477    0.40444407
## AGL SJ EQUITY    0.48718293  0.3755809187    0.17290299    0.48662199
## SBK SJ EQUITY    0.82092729  0.5789629129    0.45136534    0.48884986
## SOL SJ EQUITY    0.36942346  0.1714438856    0.05342126    0.33341886
## IMP SJ EQUITY    0.46481714  0.4565882310    0.05354898    0.25845724
## CPI SJ EQUITY    0.62036332  0.3646288310    0.30163094    0.35072082
## BTI SJ EQUITY   -0.13815809 -0.0881525724   -0.02138702   -0.04191008
## CFR SJ EQUITY    0.39119672  0.3564824345    0.24457208    0.09281016
## SSW SJ EQUITY    0.35355950  0.4958799115    0.14762254    0.38401910
## BHG SJ EQUITY    0.15323978  0.4206348150    0.07485632    0.30153529
## ABG SJ EQUITY    0.79032003  0.3411417996    0.33449360    0.42825494
## BID SJ EQUITY    0.19660816 -0.0006983849    0.12046167    0.03756580
## SLM SJ EQUITY    0.75648601  0.6017777545    0.27811048    0.46174555
## SHP SJ EQUITY    0.51938355  0.3741026395    0.20447377    0.38699855
## AMS SJ EQUITY    0.38479139  0.4490016829    0.15055693    0.55060109
## VOD SJ EQUITY    0.44502452  0.2547092618    0.05735830    0.18989766
## GFI SJ EQUITY    0.34755745  0.3562252935    0.12719547    0.83825943
##               CLS SJ EQUITY REM SJ EQUITY DSY SJ EQUITY BVT SJ EQUITY
## MTN SJ EQUITY    0.37384063    0.55109664   0.351443266    0.28130803
## NPN SJ EQUITY   -0.01220676    0.16942048   0.070224805   -0.04259904
## PRX SJ EQUITY   -0.06281637    0.11143358   0.002599578    0.01585573
## FSR SJ EQUITY    0.43565740    0.78302018   0.573063669    0.32416798
## AGL SJ EQUITY    0.14172423    0.17649029   0.289754018    0.24128433
## SBK SJ EQUITY    0.34176713    0.71758758   0.517149978    0.32923118
## SOL SJ EQUITY    0.03931697    0.20054627   0.312018222    0.24078719
## IMP SJ EQUITY    0.40095658    0.27514389   0.337204738    0.66548336
## CPI SJ EQUITY    0.21891444    0.47732975   0.440038959    0.29966446
## BTI SJ EQUITY   -0.09857760   -0.05317781  -0.122721257   -0.03160797
## CFR SJ EQUITY    0.42291615    0.39881304   0.320154943    0.29946175
## SSW SJ EQUITY    0.15878385    0.19656091   0.177592465    0.43250893
## BHG SJ EQUITY    0.21532451    0.31523541   0.161640063    0.24444698
## ABG SJ EQUITY    0.20159712    0.38698599   0.525874468    0.27424868
## BID SJ EQUITY    0.13942682    0.19218271   0.079230810    0.27198219
## SLM SJ EQUITY    0.34187542    0.65109223   0.579153862    0.49868830
## SHP SJ EQUITY    0.56809085    0.46998789   0.632036353    0.41324122
## AMS SJ EQUITY    0.39524033    0.21889969   0.256259435    0.37467145
## VOD SJ EQUITY    0.47106876    0.41079833   0.393155097    0.45755105
## GFI SJ EQUITY    0.41256738    0.29422766   0.377446085    0.16232396
##               NPH SJ EQUITY OMU SJ EQUITY MNP SJ EQUITY MRP SJ EQUITY
## MTN SJ EQUITY    0.48039284     0.3617372   0.279446793    0.30126734
## NPN SJ EQUITY    0.23401674    -0.1256332   0.149805456    0.12422598
## PRX SJ EQUITY    0.18819824    -0.1793149   0.134678343    0.10979000
## FSR SJ EQUITY    0.43083644     0.7552848   0.317451213    0.42399502
## AGL SJ EQUITY    0.28374522     0.4708850   0.243907897    0.14068079
## SBK SJ EQUITY    0.48007879     0.5486190   0.333994913    0.50027660
## SOL SJ EQUITY    0.35123708     0.2136522  -0.002400106    0.17946467
## IMP SJ EQUITY    0.79417530     0.4825510   0.050667985    0.29771218
## CPI SJ EQUITY    0.32591563     0.6675364   0.204251893    0.30403614
## BTI SJ EQUITY    0.01385965    -0.1699474  -0.138090064   -0.02150238
## CFR SJ EQUITY    0.35769564     0.2298678   0.093164369    0.12509771
## SSW SJ EQUITY    0.54000341     0.4536875   0.212795529    0.06056072
## BHG SJ EQUITY    0.10951438     0.3458449   0.246880343    0.10003685
## ABG SJ EQUITY    0.34124426     0.4939527   0.187848989    0.30755892
## BID SJ EQUITY    0.26350696     0.3205279  -0.055615626    0.19517547
## SLM SJ EQUITY    0.44844391     0.7741956   0.131422150    0.35582398
## SHP SJ EQUITY    0.47554155     0.4589305  -0.076781958    0.61232810
## AMS SJ EQUITY    0.80897281     0.3538083   0.126021219    0.35990749
## VOD SJ EQUITY    0.37365656     0.5090948  -0.125079103    0.06908264
## GFI SJ EQUITY    0.34177015     0.3464850   0.170382618    0.23431671
##               WHL SJ EQUITY GRT SJ EQUITY NRP SJ EQUITY MCG SJ EQUITY
## MTN SJ EQUITY    0.30495219    0.47446314    0.40954149    0.40890884
## NPN SJ EQUITY   -0.06871017    0.01750008    0.05923870   -0.12373980
## PRX SJ EQUITY   -0.06468254   -0.05101394   -0.00517001   -0.11918944
## FSR SJ EQUITY    0.31657629    0.70665880    0.69373454    0.09275305
## AGL SJ EQUITY    0.16587565    0.40549984    0.42438759   -0.02952807
## SBK SJ EQUITY    0.39921221    0.57997236    0.54002436    0.21384171
## SOL SJ EQUITY    0.12298645    0.22710627    0.17539275    0.13979622
## IMP SJ EQUITY    0.39129636    0.32612381    0.27234098   -0.02762418
## CPI SJ EQUITY    0.09575401    0.30589144    0.48194576    0.24441787
## BTI SJ EQUITY    0.03934885   -0.24157868   -0.01236047    0.12510539
## CFR SJ EQUITY    0.15018257    0.14892563    0.23776930   -0.16340202
## SSW SJ EQUITY    0.30635044    0.34572183    0.23585618   -0.05165304
## BHG SJ EQUITY    0.17404361    0.26578988    0.51635355   -0.02650952
## ABG SJ EQUITY    0.12090151    0.52050834    0.38788122    0.05635152
## BID SJ EQUITY    0.26982513    0.11494526    0.06720549    0.07983855
## SLM SJ EQUITY    0.37679037    0.59193366    0.59222135    0.17994653
## SHP SJ EQUITY    0.57575941    0.41627872    0.50999626    0.16389080
## AMS SJ EQUITY    0.50325571    0.26903842    0.28856397    0.03402492
## VOD SJ EQUITY    0.25157599    0.37436044    0.30787326    0.44561873
## GFI SJ EQUITY    0.38275797    0.47030665    0.48986817    0.08324117
##               ANH SJ EQUITY EXX SJ EQUITY RNI SJ EQUITY TFG SJ EQUITY
## MTN SJ EQUITY  -0.150607965    0.43017947    0.12352922    0.13202275
## NPN SJ EQUITY  -0.179875394   -0.03343013   -0.05253243    0.19901071
## PRX SJ EQUITY  -0.162413000   -0.07237722   -0.12735685    0.17946735
## FSR SJ EQUITY  -0.183937757    0.37231983    0.28303919    0.37206599
## AGL SJ EQUITY  -0.139187180    0.49699462    0.30231760    0.27219542
## SBK SJ EQUITY  -0.135107962    0.36241107    0.30232036    0.44475540
## SOL SJ EQUITY  -0.259406301    0.07344288    0.23877961    0.25929876
## IMP SJ EQUITY  -0.192344901    0.40625024    0.22238832    0.27910012
## CPI SJ EQUITY  -0.196660223    0.21970770    0.17522484    0.13914352
## BTI SJ EQUITY   0.330914338   -0.18138778    0.27411244   -0.05082148
## CFR SJ EQUITY  -0.023583645    0.22069909    0.23229831    0.28028526
## SSW SJ EQUITY  -0.043871019    0.31925417    0.20427379    0.15788210
## BHG SJ EQUITY   0.133167599    0.42440494    0.31568212    0.12443763
## ABG SJ EQUITY  -0.133610801    0.26393484    0.17634875    0.35363831
## BID SJ EQUITY   0.002162777    0.01665395    0.34198839   -0.02385085
## SLM SJ EQUITY  -0.114719177    0.39439169    0.38266741    0.31002840
## SHP SJ EQUITY  -0.024776052    0.27304646    0.15862040    0.51399239
## AMS SJ EQUITY  -0.087878253    0.36806267    0.29589270    0.33788824
## VOD SJ EQUITY   0.002703643    0.37663437    0.32100063   -0.09432680
## GFI SJ EQUITY  -0.166335957    0.16824981    0.41110463    0.29203501
##               RMI SJ EQUITY PPH SJ EQUITY LHC SJ EQUITY SPP SJ EQUITY
## MTN SJ EQUITY            NA   0.313804718    0.20434453    0.05408207
## NPN SJ EQUITY            NA   0.021001791    0.15753854   -0.12498017
## PRX SJ EQUITY            NA   0.045444218    0.10912248   -0.13553470
## FSR SJ EQUITY            NA   0.213230944    0.43433005    0.13586960
## AGL SJ EQUITY            NA   0.178811031    0.12085137   -0.07710009
## SBK SJ EQUITY            NA   0.372305779    0.43379635    0.15265223
## SOL SJ EQUITY            NA   0.157085807    0.13307227   -0.07364494
## IMP SJ EQUITY            NA   0.303097199   -0.03633588   -0.04584386
## CPI SJ EQUITY            NA   0.141247082    0.35000631    0.06378979
## BTI SJ EQUITY            NA  -0.127967024    0.05840188   -0.09749534
## CFR SJ EQUITY            NA   0.069822028    0.26105812    0.09098703
## SSW SJ EQUITY            NA   0.161019659    0.10638361    0.05145450
## BHG SJ EQUITY            NA   0.258909634   -0.06224324   -0.09521154
## ABG SJ EQUITY            NA   0.169217326    0.43591955    0.18039329
## BID SJ EQUITY            NA  -0.045804143    0.05586069    0.06657466
## SLM SJ EQUITY            NA   0.308013214    0.38855593    0.05193007
## SHP SJ EQUITY            NA   0.431814838    0.32936542    0.24930516
## AMS SJ EQUITY            NA   0.433338088   -0.05468905    0.04547020
## VOD SJ EQUITY            NA  -0.006317858    0.15052891    0.05337870
## GFI SJ EQUITY            NA   0.320015147    0.14415104    0.26055186
##               INP SJ EQUITY KIO SJ EQUITY TBS SJ EQUITY RBP SJ EQUITY
## MTN SJ EQUITY   0.608336040    0.31849799    0.04589330            NA
## NPN SJ EQUITY   0.042240906    0.19444219    0.13823746            NA
## PRX SJ EQUITY  -0.011137592    0.10232388    0.13560698            NA
## FSR SJ EQUITY   0.751059243    0.27703299    0.23845175            NA
## AGL SJ EQUITY   0.318851152    0.47431387    0.08968010            NA
## SBK SJ EQUITY   0.691688737    0.36094399    0.22842003            NA
## SOL SJ EQUITY   0.289756326    0.23734482   -0.13627871            NA
## IMP SJ EQUITY   0.286912638    0.32264446    0.13860802            NA
## CPI SJ EQUITY   0.481408772    0.10768189    0.16800657            NA
## BTI SJ EQUITY  -0.006681174    0.06006276   -0.10099236            NA
## CFR SJ EQUITY   0.307188684    0.38523252    0.40846207            NA
## SSW SJ EQUITY   0.226695999    0.31770185    0.05897967            NA
## BHG SJ EQUITY   0.275286823    0.35255023    0.27042082            NA
## ABG SJ EQUITY   0.402413666    0.32808308    0.05789719            NA
## BID SJ EQUITY   0.130592592   -0.21479988   -0.20084599            NA
## SLM SJ EQUITY   0.639149591    0.35248795    0.08557056            NA
## SHP SJ EQUITY   0.381322675    0.38402718    0.46526267            NA
## AMS SJ EQUITY   0.207691977    0.42761906    0.17201792            NA
## VOD SJ EQUITY   0.517069562    0.15625106   -0.17020319            NA
## GFI SJ EQUITY   0.296444869    0.36038707    0.21295987            NA
##               MEI SJ EQUITY BAW SJ EQUITY QLT SJ EQUITY TCP SJ EQUITY
## MTN SJ EQUITY            NA    0.30238978   0.263440417  0.0487148660
## NPN SJ EQUITY            NA    0.27680227   0.109011128 -0.0193325480
## PRX SJ EQUITY            NA    0.24146788   0.118301066 -0.0321820622
## FSR SJ EQUITY            NA    0.57233888   0.368057544  0.0806364886
## AGL SJ EQUITY            NA    0.42121456   0.230075898  0.2151475557
## SBK SJ EQUITY            NA    0.56100832   0.282184448  0.1507633506
## SOL SJ EQUITY            NA    0.30518809   0.003226147  0.2571826542
## IMP SJ EQUITY            NA    0.45543421   0.499257026  0.2255779835
## CPI SJ EQUITY            NA    0.34995033   0.203511681  0.1672186048
## BTI SJ EQUITY            NA   -0.04960264   0.024141668 -0.0882769972
## CFR SJ EQUITY            NA    0.29115187   0.270198574 -0.0473064241
## SSW SJ EQUITY            NA    0.71232780   0.432568871  0.1757545766
## BHG SJ EQUITY            NA    0.18098164   0.134987111 -0.0215884416
## ABG SJ EQUITY            NA    0.57910636   0.208353372  0.1981885452
## BID SJ EQUITY            NA    0.11427312  -0.006909332 -0.0055310261
## SLM SJ EQUITY            NA    0.61229588   0.270104206  0.0003050121
## SHP SJ EQUITY            NA    0.21850300   0.284554542  0.0168067726
## AMS SJ EQUITY            NA    0.46807121   0.444249143  0.1573891476
## VOD SJ EQUITY            NA    0.17519195  -0.001999126 -0.1437979931
## GFI SJ EQUITY            NA    0.30120963   0.099520513 -0.0345669936
##               INL SJ EQUITY SAP SJ EQUITY ARI SJ EQUITY AVI SJ EQUITY
## MTN SJ EQUITY    0.61216740    0.11100469    0.45507077    0.25008789
## NPN SJ EQUITY    0.01018124   -0.04057713    0.12806864    0.23022843
## PRX SJ EQUITY   -0.05216955   -0.04847873    0.04807542    0.20074250
## FSR SJ EQUITY    0.77708606    0.26616373    0.55180390    0.53961184
## AGL SJ EQUITY    0.33327177    0.23128627    0.54011814    0.35730024
## SBK SJ EQUITY    0.70806496    0.34226949    0.63477386    0.42265446
## SOL SJ EQUITY    0.31583473    0.29990176    0.28966446    0.16506506
## IMP SJ EQUITY    0.33210960   -0.03978609    0.49414935    0.39311427
## CPI SJ EQUITY    0.52557512    0.19919754    0.33610275    0.36031556
## BTI SJ EQUITY   -0.05655995   -0.01138948   -0.01586604   -0.03594135
## CFR SJ EQUITY    0.37338407   -0.16083639    0.34249734    0.27923758
## SSW SJ EQUITY    0.23844034    0.18202592    0.44402397    0.25483635
## BHG SJ EQUITY    0.27048610    0.31655126    0.39985032    0.35180732
## ABG SJ EQUITY    0.39701482    0.26799918    0.45216214    0.32024767
## BID SJ EQUITY    0.11152134    0.02893808   -0.04007588   -0.02128715
## SLM SJ EQUITY    0.63803366    0.23562628    0.53573700    0.42061792
## SHP SJ EQUITY    0.43935979    0.03533653    0.46415809    0.51976253
## AMS SJ EQUITY    0.22005984   -0.03329563    0.54868538    0.39882310
## VOD SJ EQUITY    0.47761002   -0.11530522    0.20602093    0.11854090
## GFI SJ EQUITY    0.29975463    0.20712265    0.37239262    0.45313888
##               TRU SJ EQUITY RDF SJ EQUITY NTC SJ EQUITY MTM SJ EQUITY
## MTN SJ EQUITY    0.14108271    0.28159667   0.299489823  0.3681468127
## NPN SJ EQUITY    0.06047565    0.03591885  -0.021883637 -0.2509535912
## PRX SJ EQUITY    0.04643884    0.01228620  -0.037598014 -0.2854205961
## FSR SJ EQUITY    0.29515576    0.42401712   0.481319643  0.2932229040
## AGL SJ EQUITY    0.11819672    0.13128594   0.273308955  0.2420761871
## SBK SJ EQUITY    0.40418877    0.40433446   0.402874110  0.2808551912
## SOL SJ EQUITY    0.25340368    0.15995504   0.100536961  0.1221050314
## IMP SJ EQUITY    0.30883343    0.11858635   0.219377409  0.2022738485
## CPI SJ EQUITY    0.10620605    0.20855557   0.481121332  0.2455299861
## BTI SJ EQUITY   -0.12957039   -0.24322544   0.009986221 -0.2283110895
## CFR SJ EQUITY    0.11112935   -0.02819209   0.405871923  0.0001958674
## SSW SJ EQUITY    0.12841316    0.35258017   0.198952626  0.3671916095
## BHG SJ EQUITY    0.06166029    0.10895144  -0.059908389  0.0780077378
## ABG SJ EQUITY    0.31981643    0.40173788   0.435504447  0.3512956206
## BID SJ EQUITY    0.14878689    0.02959269  -0.002505067  0.2067858195
## SLM SJ EQUITY    0.30452869    0.44782175   0.270777885  0.4018540282
## SHP SJ EQUITY    0.43003204    0.24210876   0.362726930  0.0235714168
## AMS SJ EQUITY    0.26067832    0.18242032   0.135069943  0.1673102622
## VOD SJ EQUITY    0.02466800    0.14134403   0.180039067  0.5509383687
## GFI SJ EQUITY    0.07586465    0.22765881  -0.010634798  0.0575708544
##               HAR SJ EQUITY RES SJ EQUITY MTH SJ EQUITY PIK SJ EQUITY
## MTN SJ EQUITY   0.284815155    0.05597158   0.346856029  0.0564849198
## NPN SJ EQUITY   0.135913964    0.01787942   0.031984197 -0.0005316424
## PRX SJ EQUITY   0.087618091   -0.03132352   0.053271775 -0.0026634536
## FSR SJ EQUITY   0.397685504    0.40784381   0.415276630  0.1981977516
## AGL SJ EQUITY   0.492802765    0.13038256   0.365836459  0.2418676500
## SBK SJ EQUITY   0.526661344    0.25037377   0.417955591  0.2424272839
## SOL SJ EQUITY   0.404519233    0.26972921   0.008144832  0.3114721262
## IMP SJ EQUITY   0.460041495    0.02798621   0.447518394  0.2614907988
## CPI SJ EQUITY   0.372094487    0.14752511   0.394481555  0.3498748087
## BTI SJ EQUITY   0.006989974   -0.30380143  -0.248611550  0.0155030454
## CFR SJ EQUITY   0.189607329   -0.02317098   0.345657155 -0.1770503981
## SSW SJ EQUITY   0.450144787    0.25528613   0.291454803 -0.0203602015
## BHG SJ EQUITY   0.315358498    0.13815097   0.002675956  0.0197861857
## ABG SJ EQUITY   0.398748775    0.33044299   0.435557682  0.3143448632
## BID SJ EQUITY   0.108991391   -0.10053727   0.002421024  0.0619045843
## SLM SJ EQUITY   0.502375602    0.34578810   0.403366904  0.2154016424
## SHP SJ EQUITY   0.468825098    0.18911232   0.313388788  0.4271377166
## AMS SJ EQUITY   0.640175749    0.05959304   0.339665454  0.1934859605
## VOD SJ EQUITY   0.163206141    0.06454663   0.337898089 -0.0458763194
## GFI SJ EQUITY   0.663206069    0.17938969   0.096702157  0.0484017904
##               FFA SJ EQUITY TKG SJ EQUITY EQU SJ EQUITY DCP SJ EQUITY
## MTN SJ EQUITY    0.11764582    0.53421644  0.1533476769    0.29211085
## NPN SJ EQUITY   -0.06213573   -0.05777668  0.0009597911    0.32405256
## PRX SJ EQUITY   -0.08417531   -0.06740484 -0.0270031853    0.32514121
## FSR SJ EQUITY    0.33166662    0.41397138  0.3817162309    0.31494041
## AGL SJ EQUITY    0.17830153    0.09754348 -0.0503725455    0.19215087
## SBK SJ EQUITY    0.33754183    0.44855622  0.1809507832    0.30440707
## SOL SJ EQUITY    0.09806956    0.13941926 -0.0578971556   -0.25622345
## IMP SJ EQUITY    0.16514193    0.15103573  0.1499481573    0.29428803
## CPI SJ EQUITY    0.32393319    0.19613687  0.2006246516    0.26226081
## BTI SJ EQUITY   -0.06846865   -0.08743400 -0.1819589737   -0.09189303
## CFR SJ EQUITY    0.33746500    0.10691552  0.0587324643    0.42041273
## SSW SJ EQUITY    0.31580053   -0.23117541  0.2916001357    0.16180525
## BHG SJ EQUITY    0.17109235    0.19852552  0.1276482102    0.16792309
## ABG SJ EQUITY    0.29776469    0.19109752  0.1789145290    0.23231195
## BID SJ EQUITY    0.05112363    0.22185585  0.1055950372   -0.05707235
## SLM SJ EQUITY    0.25945335    0.40483205  0.3289403606    0.14721534
## SHP SJ EQUITY    0.38127866    0.31575124  0.1852329652    0.37936875
## AMS SJ EQUITY    0.17632693    0.12962860  0.1514909980    0.34342925
## VOD SJ EQUITY    0.13282842    0.52141012  0.1683810259    0.10427108
## GFI SJ EQUITY    0.33491069    0.10896419  0.0600873198    0.07963276
##               PSG SJ EQUITY DGH SJ EQUITY CML SJ EQUITY HYP SJ EQUITY
## MTN SJ EQUITY            NA            NA    0.36147863    0.34332530
## NPN SJ EQUITY            NA            NA    0.24544515    0.05283376
## PRX SJ EQUITY            NA            NA    0.18873782    0.01208530
## FSR SJ EQUITY            NA            NA    0.54150172    0.57187021
## AGL SJ EQUITY            NA            NA    0.51631233    0.32763114
## SBK SJ EQUITY            NA            NA    0.53013833    0.43534138
## SOL SJ EQUITY            NA            NA    0.38418590    0.11236818
## IMP SJ EQUITY            NA            NA    0.55936250    0.33543514
## CPI SJ EQUITY            NA            NA    0.39061917    0.32976056
## BTI SJ EQUITY            NA            NA   -0.06564184   -0.24440739
## CFR SJ EQUITY            NA            NA    0.22357101    0.05345369
## SSW SJ EQUITY            NA            NA    0.39912553    0.56058189
## BHG SJ EQUITY            NA            NA    0.19367126    0.27586141
## ABG SJ EQUITY            NA            NA    0.47427730    0.40199351
## BID SJ EQUITY            NA            NA    0.08275252    0.16804348
## SLM SJ EQUITY            NA            NA    0.58102964    0.57144255
## SHP SJ EQUITY            NA            NA    0.58648398    0.37518141
## AMS SJ EQUITY            NA            NA    0.52373384    0.45697474
## VOD SJ EQUITY            NA            NA    0.28225056    0.38785488
## GFI SJ EQUITY            NA            NA    0.46968768    0.53790658
##               SPG SJ EQUITY AFE SJ EQUITY KAP SJ EQUITY SNT SJ EQUITY
## MTN SJ EQUITY   0.290868620    0.22858898    0.12877541    0.09386774
## NPN SJ EQUITY   0.114637101   -0.09910497    0.12397327   -0.42901380
## PRX SJ EQUITY   0.093571674   -0.14516042    0.11228545   -0.42949734
## FSR SJ EQUITY   0.436923249    0.29237697    0.11266336    0.11488467
## AGL SJ EQUITY   0.362468401    0.44844501    0.31557304    0.17057686
## SBK SJ EQUITY   0.478272271    0.40971550    0.23447974    0.22657195
## SOL SJ EQUITY   0.445120048    0.17188706    0.31472994    0.12440825
## IMP SJ EQUITY   0.484490541    0.03564086    0.23999894    0.03795726
## CPI SJ EQUITY   0.384193848    0.19238438    0.09488789    0.19460486
## BTI SJ EQUITY  -0.026372778   -0.18892195    0.11135372    0.15613441
## CFR SJ EQUITY   0.074825361    0.27043515   -0.11417880   -0.03120715
## SSW SJ EQUITY   0.428297400    0.02307827    0.09498903    0.09280572
## BHG SJ EQUITY   0.004709704    0.08497909   -0.01610790    0.26396334
## ABG SJ EQUITY   0.562470223    0.34425536    0.16278319    0.13126530
## BID SJ EQUITY   0.280986586   -0.20209827    0.18250028    0.08846374
## SLM SJ EQUITY   0.587176104    0.31863726    0.17112869    0.16959998
## SHP SJ EQUITY   0.410876695    0.13499261   -0.07695615    0.35947671
## AMS SJ EQUITY   0.417206381   -0.01939429   -0.02940163    0.18702735
## VOD SJ EQUITY   0.444353227    0.21601752    0.14818326   -0.01659207
## GFI SJ EQUITY   0.284802159   -0.08359918   -0.07290959    0.28019232
##               N91 SJ EQUITY IPL SJ EQUITY VKE SJ EQUITY OMN SJ EQUITY
## MTN SJ EQUITY    0.12754952            NA   0.063884995    0.23296026
## NPN SJ EQUITY   -0.21453392            NA   0.061771093    0.09626302
## PRX SJ EQUITY   -0.17841057            NA  -0.015535874    0.07606170
## FSR SJ EQUITY    0.11969582            NA   0.521728081    0.22536678
## AGL SJ EQUITY    0.14928820            NA   0.279067754    0.29296845
## SBK SJ EQUITY    0.08533781            NA   0.323423779    0.30839052
## SOL SJ EQUITY    0.04058528            NA   0.263045265    0.24346972
## IMP SJ EQUITY    0.21572537            NA   0.150476869    0.28924308
## CPI SJ EQUITY    0.05406427            NA   0.294372400    0.19534062
## BTI SJ EQUITY    0.05116673            NA  -0.346281153   -0.16276137
## CFR SJ EQUITY    0.32296549            NA   0.214034008    0.13927666
## SSW SJ EQUITY    0.42331713            NA   0.409428727    0.44983875
## BHG SJ EQUITY    0.17020801            NA   0.107954192    0.19289653
## ABG SJ EQUITY   -0.06303448            NA   0.487338606    0.36479021
## BID SJ EQUITY    0.03636692            NA   0.009974364    0.11278511
## SLM SJ EQUITY    0.13562424            NA   0.411094843    0.38243504
## SHP SJ EQUITY    0.16982279            NA   0.274947920    0.27952213
## AMS SJ EQUITY    0.28255193            NA   0.206315577    0.29666031
## VOD SJ EQUITY    0.18093518            NA   0.131108795    0.27973537
## GFI SJ EQUITY    0.19273732            NA   0.330365416    0.05070118

Modified Matrix output

##=======================================================================================================
## Covariance matrix for selected 10 stocks from Correlation_matrix_4
##=======================================================================================================

matrix_10 <- Correlation_matrix_4[1:10, 1:10]
corr_matrix_10 <- cor(matrix_10)
rownames(corr_matrix_10) <- toupper(rownames(corr_matrix_10))
rownames(corr_matrix_10) <- colnames(corr_matrix_10)
rounded_corr_matrix <- round(corr_matrix_10, digits = 1)

# Generate a lighter palette
col <- colorRampPalette(c("#BB4444", "#EE9988", "#FFFFFF", "#77AADD", "#4477AA"))

# Plot the correlation matrix
corrplot(rounded_corr_matrix, method = "shade", shade.col = NA, tl.col = "blue", tl.srt = 40,
         col = col(2000), addCoef.col = "black", cl.pos = "n", order = "AOE", tl.cex = 0.6)

Retrieve negatively correlated stocks

##======================================================================================================
## Creating an empty data frame with three columns
##======================================================================================================
correlations_dataframe <- data.frame(
  row_name = character(),
  column_name = character(),
  correlation_value = numeric(),
  stringsAsFactors = FALSE  # To ensure character vectors are not converted to factors
)


threshold <- 0.2

##=====================================================================================================
## Looping through each element in the correlation matrix
##=====================================================================================================

for (i in 1:nrow(Correlation_matrix_4)) {
  for (j in 1:ncol(Correlation_matrix_4)) {
    # Check if the correlation is negative
    if (!is.na(Correlation_matrix_4[i, j]) && (Correlation_matrix_4[i, j]<=threshold)) {
      # Add the variable names to the list
      
      new_row <- data.frame(row_name =rownames(Correlation_matrix_4)[i],
                            column_name = colnames(Correlation_matrix_4)[j],
                            correlation_value = Correlation_matrix_4[i, j])
      
      # Add the new row to the existing data frame
      correlations_dataframe <- rbind(correlations_dataframe, new_row)
    
     
    }
  }
}

Price Multiple Relative Valuation

##======================================================================================================
## Stock selection criteria
##======================================================================================================

# Above Average number of analyst coverage
# forward P/E must be less than average 7-year P/E
# Return stocks below threshold correlation


average_analyst_coverage <- round(mean(as.numeric(Ratios_df[17,6:25]))) #Average number of analysts coverage
print(average_analyst_coverage)
## [1] 9
#=============================================*Command code 1*====================================================
columns_to_select <- colnames(Ratios_df[,6:25])[which(as.numeric(Ratios_df[17, 6:25]) >= average_analyst_coverage)]
#=================================================================================================================

knitr::kable(columns_to_select, caption = "Stocks  => Average Analyst Coverage")
Stocks => Average Analyst Coverage
x
SBK SJ EQUITY
BHG SJ EQUITY
LHC SJ EQUITY
TFG SJ EQUITY
NED SJ EQUITY
SHP SJ EQUITY
CLS SJ EQUITY
CFR SJ EQUITY
TKG SJ EQUITY
KIO SJ EQUITY
updated_dataframe <- Ratios_df[,columns_to_select]


##======================================================================================================
## Selecting columns with z score below zero and match with lower P/E ratios
##======================================================================================================

#============================================*Command Code 2*==========================================
columns_below_zero_z_score <- colnames(updated_dataframe)[which(as.numeric(updated_dataframe[19,]) < 0)]          
#======================================================================================================

knitr::kable(columns_below_zero_z_score, caption = "Stocks  => Avg Analyst Coverage and < 7Y avg P/E")
Stocks => Avg Analyst Coverage and < 7Y avg P/E
x
SBK SJ EQUITY
TFG SJ EQUITY
CLS SJ EQUITY
CFR SJ EQUITY
TKG SJ EQUITY
KIO SJ EQUITY
dataframe_below_average <- updated_dataframe[19,columns_below_zero_z_score]
View(dataframe_below_average)

##=======================================================================================================
## match the previous stage with the list containing  negatively correlated stock pairs
##=======================================================================================================


# Generate all possible pairs of words
ticker_pairs <- combn(columns_below_zero_z_score, 2)

# Transpose the result to get pairs in separate rows
ticker_pairs <- t(ticker_pairs)

# Convert the result to a data frame if needed
ticker_pairs_df <- as.data.frame(ticker_pairs)


colnames(ticker_pairs_df) <- c("row_name", "column_name")

merged_df <- merge(ticker_pairs_df, correlations_dataframe, by = c("row_name", "column_name"), all.x = TRUE)

Stock Picks

View(merged_df)
knitr::kable(merged_df, caption = "Stock Picks")
Stock Picks
row_name column_name correlation_value
CFR SJ EQUITY KIO SJ EQUITY NA
CFR SJ EQUITY TKG SJ EQUITY 0.1069155
CLS SJ EQUITY CFR SJ EQUITY NA
CLS SJ EQUITY KIO SJ EQUITY NA
CLS SJ EQUITY TKG SJ EQUITY NA
SBK SJ EQUITY CFR SJ EQUITY NA
SBK SJ EQUITY CLS SJ EQUITY NA
SBK SJ EQUITY KIO SJ EQUITY NA
SBK SJ EQUITY TFG SJ EQUITY NA
SBK SJ EQUITY TKG SJ EQUITY NA
TFG SJ EQUITY CFR SJ EQUITY NA
TFG SJ EQUITY CLS SJ EQUITY NA
TFG SJ EQUITY KIO SJ EQUITY NA
TFG SJ EQUITY TKG SJ EQUITY 0.1901291
TKG SJ EQUITY KIO SJ EQUITY 0.1100579
##==============================================================================
## Filtering unique qualifying stocks 
##==============================================================================

filtered_df <- merged_df %>%
  filter(!is.na(correlation_value)) %>%
  select(row_name, column_name)

unique_1 <- (filtered_df$row_name)
unique_2 <- (filtered_df$column_name)

stock_picks <- unique(c(unique_1,unique_2))


knitr::kable(stock_picks, caption = "Final Stock Picks")
Final Stock Picks
x
CFR SJ EQUITY
TFG SJ EQUITY
TKG SJ EQUITY
KIO SJ EQUITY

1Y Price forecast

Expected Returns

  • Based on analysts’ 12 months forecast
  • Sourced from Tradingview
#expected returns
#assuming equal probability

tfg <-sum((10.6+32.3 +50.59))*(1/3)
cfr <- sum(-9.65+14.12+30.49)*(1/3)
kio <- sum(-16.34+-5+16.52)*(1/3)
tkg <- sum(-13.56+18.21+37.52)*(1/3)

#assuming equal weighting

tot_expected_return <- sum(tfg+cfr+kio+tkg)*(1/4)

print(tot_expected_return) 
## [1] 13.81667