library(markdown)
library(insuranceData)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(skimr)
library(tidyr)

AMXB <- read.csv('AMXB.csv', na.strings = c("null","**"), stringsAsFactors = FALSE)

AMXB %>% summarise_all(~sum(is.na(.)))
##   Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 1     0      0        0      0      0    0       0
#para conocer la estructura del data frame
str(AMXB)
## 'data.frame':    2766 obs. of  7 variables:
##  $ Fecha   : chr  "31.12.2024" "30.12.2024" "27.12.2024" "26.12.2024" ...
##  $ Cierre  : num  14.9 14.6 14.8 14.7 14.3 ...
##  $ Apertura: num  14.7 14.8 14.7 14.4 14.3 ...
##  $ Máximo  : num  15.1 14.8 14.9 14.7 14.4 ...
##  $ Mínimo  : num  14.7 14.6 14.5 14.2 14.1 ...
##  $ Vol.    : chr  "17.98M" "29.30M" "35.59M" "29.85M" ...
##  $ X..var. : chr  "2.19%" "-1.01%" "0.82%" "2.30%" ...
summary(AMXB) #vista preliminar de las medidas de tendencia basicas de la base de datos
##     Fecha               Cierre         Apertura         Máximo     
##  Length:2766        Min.   :10.75   Min.   :10.70   Min.   :10.80  
##  Class :character   1st Qu.:14.07   1st Qu.:14.10   1st Qu.:14.24  
##  Mode  :character   Median :15.43   Median :15.41   Median :15.59  
##                     Mean   :15.56   Mean   :15.56   Mean   :15.73  
##                     3rd Qu.:16.63   3rd Qu.:16.61   3rd Qu.:16.76  
##                     Max.   :22.25   Max.   :22.28   Max.   :22.49  
##      Mínimo          Vol.             X..var.         
##  Min.   :10.40   Length:2766        Length:2766       
##  1st Qu.:13.91   Class :character   Class :character  
##  Median :15.25   Mode  :character   Mode  :character  
##  Mean   :15.38                                        
##  3rd Qu.:16.44                                        
##  Max.   :22.11
skim(AMXB) #resumen mas detallado (histograma, missing values)
Data summary
Name AMXB
Number of rows 2766
Number of columns 7
_______________________
Column type frequency:
character 3
numeric 4
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
Fecha 0 1 10 10 0 2766 0
Vol. 0 1 5 7 0 2385 0
X..var. 0 1 5 7 0 658 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
Cierre 0 1 15.56 2.25 10.75 14.07 15.43 16.63 22.25 ▂▇▇▃▁
Apertura 0 1 15.56 2.25 10.70 14.10 15.41 16.61 22.28 ▂▇▇▃▁
Máximo 0 1 15.73 2.27 10.80 14.24 15.59 16.76 22.49 ▂▇▇▃▁
Mínimo 0 1 15.38 2.23 10.40 13.91 15.25 16.44 22.11 ▂▇▇▃▁
head(AMXB) #encabezado, primeras 6 filas
##        Fecha Cierre Apertura Máximo Mínimo   Vol. X..var.
## 1 31.12.2024  14.95    14.70  15.05  14.69 17.98M   2.19%
## 2 30.12.2024  14.63    14.77  14.82  14.61 29.30M  -1.01%
## 3 27.12.2024  14.78    14.65  14.93  14.54 35.59M   0.82%
## 4 26.12.2024  14.66    14.37  14.70  14.23 29.85M   2.30%
## 5 24.12.2024  14.33    14.28  14.37  14.09 11.10M   0.84%
## 6 23.12.2024  14.21    14.37  14.47  14.09 26.17M  -0.98%
tail(AMXB) #ultimos valores
##           Fecha Cierre Apertura Máximo Mínimo   Vol. X..var.
## 2761 09.01.2014  14.31    14.49  14.49  14.17 59.99M  -0.97%
## 2762 08.01.2014  14.45    14.74  14.74  14.37 62.84M  -1.57%
## 2763 07.01.2014  14.68    14.85  14.88  14.64 44.86M  -0.68%
## 2764 06.01.2014  14.78    14.92  15.00  14.71 55.37M  -0.81%
## 2765 03.01.2014  14.90    14.94  14.94  14.70 59.66M   0.07%
## 2766 02.01.2014  14.89    15.20  15.31  14.71 48.44M  -2.17%
dim(AMXB) #dimension del data frame
## [1] 2766    7
glimpse(AMXB) #como esta definida cada variable, valores que puede obtener. Conocer la definicion de las variables. (opcion a str) esta en dplyr
## Rows: 2,766
## Columns: 7
## $ Fecha    <chr> "31.12.2024", "30.12.2024", "27.12.2024", "26.12.2024", "24.1…
## $ Cierre   <dbl> 14.95, 14.63, 14.78, 14.66, 14.33, 14.21, 14.35, 14.54, 14.67…
## $ Apertura <dbl> 14.70, 14.77, 14.65, 14.37, 14.28, 14.37, 14.52, 14.75, 15.02…
## $ Máximo   <dbl> 15.05, 14.82, 14.93, 14.70, 14.37, 14.47, 14.53, 14.95, 15.07…
## $ Mínimo   <dbl> 14.69, 14.61, 14.54, 14.23, 14.09, 14.09, 14.20, 14.49, 14.63…
## $ Vol.     <chr> "17.98M", "29.30M", "35.59M", "29.85M", "11.10M", "26.17M", "…
## $ X..var.  <chr> "2.19%", "-1.01%", "0.82%", "2.30%", "0.84%", "-0.98%", "-1.3…
AMXB <- read.csv('AMXB.csv', na.strings = c("null","**"), stringsAsFactors = FALSE)

AMXB %>% summarise_all(~sum(is.na(.)))
##   Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 1     0      0        0      0      0    0       0
################################################################################

WALMEX <- read.csv('WALMEX.csv', na.strings = c("null","**"), stringsAsFactors = FALSE)

WALMEX %>% summarise_all(~sum(is.na(.)))
##   Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 1     0      0        0      0      0    0       0
str(WALMEX)
## 'data.frame':    2766 obs. of  7 variables:
##  $ Fecha   : chr  "31.12.2024" "30.12.2024" "27.12.2024" "26.12.2024" ...
##  $ Cierre  : num  54.9 54 55 55.9 56.2 ...
##  $ Apertura: num  54 55.3 55.9 56.1 56.5 ...
##  $ Máximo  : num  56.4 55.3 56.7 56.6 57 ...
##  $ Mínimo  : num  54 53.8 54.9 55.5 56 ...
##  $ Vol.    : chr  "7.10M" "7.85M" "7.30M" "4.38M" ...
##  $ X..var. : chr  "1.59%" "-1.80%" "-1.61%" "-0.46%" ...
summary(WALMEX)
##     Fecha               Cierre         Apertura         Máximo     
##  Length:2766        Min.   :28.06   Min.   :27.75   Min.   :28.19  
##  Class :character   1st Qu.:41.99   1st Qu.:41.99   1st Qu.:42.34  
##  Mode  :character   Median :54.12   Median :54.12   Median :54.80  
##                     Mean   :53.31   Mean   :53.32   Mean   :53.94  
##                     3rd Qu.:65.56   3rd Qu.:65.52   3rd Qu.:66.28  
##                     Max.   :81.92   Max.   :82.00   Max.   :82.93  
##      Mínimo          Vol.             X..var.         
##  Min.   :27.71   Length:2766        Length:2766       
##  1st Qu.:41.58   Class :character   Class :character  
##  Median :53.44   Mode  :character   Mode  :character  
##  Mean   :52.68                                        
##  3rd Qu.:64.67                                        
##  Max.   :79.68
skim(WALMEX)
Data summary
Name WALMEX
Number of rows 2766
Number of columns 7
_______________________
Column type frequency:
character 3
numeric 4
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
Fecha 0 1 10 10 0 2766 0
Vol. 0 1 0 7 1 1723 0
X..var. 0 1 5 6 0 680 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
Cierre 0 1 53.31 13.43 28.06 41.99 54.12 65.56 81.92 ▅▇▇▆▃
Apertura 0 1 53.32 13.43 27.75 41.99 54.12 65.52 82.00 ▅▇▇▆▃
Máximo 0 1 53.94 13.63 28.19 42.34 54.80 66.28 82.93 ▅▇▇▆▃
Mínimo 0 1 52.68 13.24 27.71 41.58 53.44 64.67 79.68 ▅▇▇▆▅
head(WALMEX)
##        Fecha Cierre Apertura Máximo Mínimo  Vol. X..var.
## 1 31.12.2024  54.89    54.03  56.35  54.02 7.10M   1.59%
## 2 30.12.2024  54.03    55.29  55.30  53.83 7.85M  -1.80%
## 3 27.12.2024  55.02    55.92  56.69  54.91 7.30M  -1.61%
## 4 26.12.2024  55.92    56.10  56.59  55.51 4.38M  -0.46%
## 5 24.12.2024  56.18    56.50  56.98  56.02 1.24M  -0.21%
## 6 23.12.2024  56.30    57.11  57.49  55.31 5.75M  -1.85%
tail(WALMEX)
##           Fecha Cierre Apertura Máximo Mínimo   Vol. X..var.
## 2761 09.01.2014  33.24    33.15  33.32  32.37 25.92M   1.06%
## 2762 08.01.2014  32.89    33.44  33.57  32.86 17.93M  -1.47%
## 2763 07.01.2014  33.38    32.93  33.55  32.81 19.10M   1.61%
## 2764 06.01.2014  32.85    33.58  33.59  32.60 10.16M  -1.20%
## 2765 03.01.2014  33.25    33.51  33.59  33.16  8.76M  -0.51%
## 2766 02.01.2014  33.42    34.29  34.39  33.19 12.90M  -2.45%
dim(WALMEX)
## [1] 2766    7
glimpse(WALMEX)
## Rows: 2,766
## Columns: 7
## $ Fecha    <chr> "31.12.2024", "30.12.2024", "27.12.2024", "26.12.2024", "24.1…
## $ Cierre   <dbl> 54.89, 54.03, 55.02, 55.92, 56.18, 56.30, 57.36, 58.03, 58.33…
## $ Apertura <dbl> 54.03, 55.29, 55.92, 56.10, 56.50, 57.11, 57.72, 58.10, 57.45…
## $ Máximo   <dbl> 56.35, 55.30, 56.69, 56.59, 56.98, 57.49, 58.28, 58.59, 59.24…
## $ Mínimo   <dbl> 54.02, 53.83, 54.91, 55.51, 56.02, 55.31, 57.08, 57.71, 57.07…
## $ Vol.     <chr> "7.10M", "7.85M", "7.30M", "4.38M", "1.24M", "5.75M", "51.46M…
## $ X..var.  <chr> "1.59%", "-1.80%", "-1.61%", "-0.46%", "-0.21%", "-1.85%", "-…
################################################################################

BIMBOA <- read.csv('BIMBOA.csv', na.strings = c("null","**"), stringsAsFactors = FALSE)

BIMBOA %>% summarise_all(~sum(is.na(.)))
##   Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 1     0      0        0      0      0    0       0
str(BIMBOA)
## 'data.frame':    2766 obs. of  7 variables:
##  $ Fecha   : chr  "31.12.2024" "30.12.2024" "27.12.2024" "26.12.2024" ...
##  $ Cierre  : num  55.2 54.2 54.8 55.1 55.5 ...
##  $ Apertura: num  54.1 55 55.3 55 55.8 ...
##  $ Máximo  : num  55.5 55.4 56.4 55.8 56 ...
##  $ Mínimo  : num  54.1 54.1 54.6 54.6 55.2 ...
##  $ Vol.    : chr  "1.12M" "1.11M" "1.33M" "533.49K" ...
##  $ X..var. : chr  "1.88%" "-0.97%" "-0.58%" "-0.72%" ...
summary(BIMBOA)
##     Fecha               Cierre         Apertura         Máximo      
##  Length:2766        Min.   :26.95   Min.   :27.40   Min.   : 28.60  
##  Class :character   1st Qu.:39.78   1st Qu.:39.80   1st Qu.: 40.33  
##  Mode  :character   Median :44.42   Median :44.41   Median : 44.97  
##                     Mean   :51.61   Mean   :51.62   Mean   : 52.38  
##                     3rd Qu.:61.13   3rd Qu.:61.03   3rd Qu.: 62.59  
##                     Max.   :98.96   Max.   :99.13   Max.   :103.41  
##      Mínimo          Vol.             X..var.         
##  Min.   :26.00   Length:2766        Length:2766       
##  1st Qu.:39.28   Class :character   Class :character  
##  Median :43.84   Mode  :character   Mode  :character  
##  Mean   :50.89                                        
##  3rd Qu.:60.00                                        
##  Max.   :97.91
skim(BIMBOA)
Data summary
Name BIMBOA
Number of rows 2766
Number of columns 7
_______________________
Column type frequency:
character 3
numeric 4
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
Fecha 0 1 10 10 0 2766 0
Vol. 0 1 0 7 1 791 0
X..var. 0 1 5 7 0 768 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
Cierre 0 1 51.61 16.55 26.95 39.78 44.42 61.13 98.96 ▇▇▃▂▂
Apertura 0 1 51.62 16.57 27.40 39.80 44.41 61.03 99.13 ▇▇▃▂▂
Máximo 0 1 52.38 16.83 28.60 40.33 44.97 62.59 103.41 ▇▆▂▂▁
Mínimo 0 1 50.89 16.32 26.00 39.28 43.84 60.00 97.91 ▆▇▃▂▂
head(BIMBOA)
##        Fecha Cierre Apertura Máximo Mínimo    Vol. X..var.
## 1 31.12.2024  55.24    54.06  55.49  54.06   1.12M   1.88%
## 2 30.12.2024  54.22    54.97  55.39  54.06   1.11M  -0.97%
## 3 27.12.2024  54.75    55.29  56.35  54.62   1.33M  -0.58%
## 4 26.12.2024  55.07    55.00  55.83  54.59 533.49K  -0.72%
## 5 24.12.2024  55.47    55.81  55.98  55.20 292.85K  -0.70%
## 6 23.12.2024  55.86    55.74  56.57  55.50 969.34K   0.70%
tail(BIMBOA)
##           Fecha Cierre Apertura Máximo Mínimo  Vol. X..var.
## 2761 09.01.2014  36.26    37.24  37.47  36.18 4.54M  -2.13%
## 2762 08.01.2014  37.05    38.01  38.33  37.00 5.17M  -2.99%
## 2763 07.01.2014  38.19    38.50  38.73  38.02 2.40M  -1.14%
## 2764 06.01.2014  38.63    38.60  39.18  38.50 1.92M   0.10%
## 2765 03.01.2014  38.59    39.00  39.03  38.11 2.11M  -0.95%
## 2766 02.01.2014  38.96    40.00  40.35  38.69 1.47M  -3.08%
dim(BIMBOA)
## [1] 2766    7
glimpse(BIMBOA)
## Rows: 2,766
## Columns: 7
## $ Fecha    <chr> "31.12.2024", "30.12.2024", "27.12.2024", "26.12.2024", "24.1…
## $ Cierre   <dbl> 55.24, 54.22, 54.75, 55.07, 55.47, 55.86, 55.47, 55.64, 55.89…
## $ Apertura <dbl> 54.06, 54.97, 55.29, 55.00, 55.81, 55.74, 55.75, 56.16, 56.34…
## $ Máximo   <dbl> 55.49, 55.39, 56.35, 55.83, 55.98, 56.57, 56.40, 56.50, 56.94…
## $ Mínimo   <dbl> 54.06, 54.06, 54.62, 54.59, 55.20, 55.50, 54.80, 55.57, 55.60…
## $ Vol.     <chr> "1.12M", "1.11M", "1.33M", "533.49K", "292.85K", "969.34K", "…
## $ X..var.  <chr> "1.88%", "-0.97%", "-0.58%", "-0.72%", "-0.70%", "0.70%", "-0…
################################################################################

CEMEXCPO <- read.csv('CEMEXCPO.csv', na.strings = c("null","**"), stringsAsFactors = FALSE)

CEMEXCPO %>% summarise_all(~sum(is.na(.)))
##   Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 1     0      0        0      0      0    0       0
str(CEMEXCPO)
## 'data.frame':    2766 obs. of  7 variables:
##  $ Fecha   : chr  "31.12.2024" "30.12.2024" "27.12.2024" "26.12.2024" ...
##  $ Cierre  : num  11.7 11.4 11.5 11.5 11.3 ...
##  $ Apertura: num  11.4 11.5 11.4 11.3 11.2 ...
##  $ Máximo  : num  11.8 11.5 11.6 11.6 11.4 ...
##  $ Mínimo  : num  11.4 11.2 11.4 11.2 11.2 ...
##  $ Vol.    : chr  "21.82M" "35.20M" "16.26M" "12.94M" ...
##  $ X..var. : chr  "2.73%" "-0.96%" "0.17%" "1.15%" ...
summary(CEMEXCPO)
##     Fecha               Cierre          Apertura          Máximo     
##  Length:2766        Min.   : 4.210   Min.   : 4.240   Min.   : 4.45  
##  Class :character   1st Qu.: 9.283   1st Qu.: 9.285   1st Qu.: 9.46  
##  Mode  :character   Median :12.245   Median :12.270   Median :12.45  
##                     Mean   :11.990   Mean   :11.999   Mean   :12.17  
##                     3rd Qu.:14.710   3rd Qu.:14.707   3rd Qu.:14.92  
##                     Max.   :19.115   Max.   :19.038   Max.   :19.27  
##      Mínimo          Vol.             X..var.         
##  Min.   : 3.98   Length:2766        Length:2766       
##  1st Qu.: 9.16   Class :character   Class :character  
##  Median :12.06   Mode  :character   Mode  :character  
##  Mean   :11.82                                        
##  3rd Qu.:14.52                                        
##  Max.   :18.58
skim(CEMEXCPO)
Data summary
Name CEMEXCPO
Number of rows 2766
Number of columns 7
_______________________
Column type frequency:
character 3
numeric 4
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
Fecha 0 1 10 10 0 2766 0
Vol. 0 1 5 7 0 2254 0
X..var. 0 1 5 6 0 854 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
Cierre 0 1 11.99 3.22 4.21 9.28 12.25 14.71 19.11 ▂▆▇▇▂
Apertura 0 1 12.00 3.22 4.24 9.28 12.27 14.71 19.04 ▂▆▇▇▃
Máximo 0 1 12.17 3.24 4.45 9.46 12.45 14.92 19.27 ▂▆▇▇▂
Mínimo 0 1 11.82 3.20 3.98 9.16 12.06 14.52 18.58 ▂▆▇▇▃
head(CEMEXCPO)
##        Fecha Cierre Apertura Máximo Mínimo   Vol. X..var.
## 1 31.12.2024  11.68    11.43  11.76  11.43 21.82M   2.73%
## 2 30.12.2024  11.37    11.48  11.48  11.25 35.20M  -0.96%
## 3 27.12.2024  11.48    11.40  11.59  11.37 16.26M   0.17%
## 4 26.12.2024  11.46    11.35  11.56  11.22 12.94M   1.15%
## 5 24.12.2024  11.33    11.20  11.37  11.19  2.74M   1.16%
## 6 23.12.2024  11.20    11.34  11.45  11.14 16.92M  -0.88%
tail(CEMEXCPO)
##           Fecha Cierre Apertura Máximo Mínimo   Vol. X..var.
## 2761 09.01.2014 14.691   14.146 14.728 14.146 65.59M   3.31%
## 2762 08.01.2014 14.220   14.016 14.358 13.979 46.39M   1.39%
## 2763 07.01.2014 14.025   13.961 14.294 13.961 39.11M   0.00%
## 2764 06.01.2014 14.025   13.989 14.127 13.924 32.89M   0.46%
## 2765 03.01.2014 13.961   13.961 14.072 13.831 19.52M  -0.06%
## 2766 02.01.2014 13.970   14.155 14.183 13.878 25.49M  -1.50%
dim(CEMEXCPO)
## [1] 2766    7
glimpse(CEMEXCPO)
## Rows: 2,766
## Columns: 7
## $ Fecha    <chr> "31.12.2024", "30.12.2024", "27.12.2024", "26.12.2024", "24.1…
## $ Cierre   <dbl> 11.68, 11.37, 11.48, 11.46, 11.33, 11.20, 11.30, 11.34, 11.33…
## $ Apertura <dbl> 11.43, 11.48, 11.40, 11.35, 11.20, 11.34, 11.29, 11.26, 11.21…
## $ Máximo   <dbl> 11.76, 11.48, 11.59, 11.56, 11.37, 11.45, 11.58, 11.44, 11.40…
## $ Mínimo   <dbl> 11.43, 11.25, 11.37, 11.22, 11.19, 11.14, 11.17, 11.17, 11.16…
## $ Vol.     <chr> "21.82M", "35.20M", "16.26M", "12.94M", "2.74M", "16.92M", "2…
## $ X..var.  <chr> "2.73%", "-0.96%", "0.17%", "1.15%", "1.16%", "-0.88%", "-0.3…
################################################################################

AMXB <- AMXB %>% rename(CierreA = Cierre)
BIMBOA <- BIMBOA %>% rename(CierreB = Cierre)
WALMEX <- WALMEX %>% rename(CierreW = Cierre)
CEMEXCPO <- CEMEXCPO %>% rename(CierreC = Cierre)

################################################################################

Cierre_Acc <- bind_cols(select(AMXB, Fecha, CierreA), select(BIMBOA, CierreB), 
                        select(CEMEXCPO, CierreC), select(WALMEX, CierreW))
str(Cierre_Acc)
## 'data.frame':    2766 obs. of  5 variables:
##  $ Fecha  : chr  "31.12.2024" "30.12.2024" "27.12.2024" "26.12.2024" ...
##  $ CierreA: num  14.9 14.6 14.8 14.7 14.3 ...
##  $ CierreB: num  55.2 54.2 54.8 55.1 55.5 ...
##  $ CierreC: num  11.7 11.4 11.5 11.5 11.3 ...
##  $ CierreW: num  54.9 54 55 55.9 56.2 ...
Cierre_Acc$Fecha <- as.Date(Cierre_Acc$Fecha, format = "%d.%m.%Y")
################################################################################

library(ggplot2)
library(readr)

# Ordenar por fecha
Cierre_Acc <- Cierre_Acc %>% arrange(Fecha)

Grafica_Cierre_Acc <- Cierre_Acc %>%
  pivot_longer(-Fecha, names_to = "Accion", values_to = "Precio")

# Graficar (solo línea, sin puntos)
ggplot(Grafica_Cierre_Acc, aes(x = Fecha, y = Precio)) +
  geom_line(color = "blue") +  # Línea azul
  labs(title = "Evolución del Cierre Acciones", x = "Fecha", y = "Precio") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

################################################################################
################################################################################
################################################################################

EEM <- read.csv('EEM.csv', na.strings = c("null","**"), stringsAsFactors = FALSE)

EEM %>% summarise_all(~sum(is.na(.)))
##   Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 1     0      0        0      0      0    0       0
str(EEM)
## 'data.frame':    2799 obs. of  7 variables:
##  $ Fecha   : chr  "31.12.2024" "30.12.2024" "27.12.2024" "26.12.2024" ...
##  $ Cierre  : num  41.8 42 42.3 42.5 42.6 ...
##  $ Apertura: num  41.9 42 42.2 42.4 42.5 ...
##  $ Máximo  : num  42 42.1 42.3 42.6 42.7 ...
##  $ Mínimo  : num  41.8 41.8 42.1 42.3 42.5 ...
##  $ Vol.    : chr  "40.52M" "25.06M" "22.67M" "16.15M" ...
##  $ X..var. : chr  "-0.33%" "-0.80%" "-0.45%" "-0.35%" ...
summary(EEM)
##     Fecha               Cierre         Apertura         Máximo     
##  Length:2799        Min.   :28.08   Min.   :28.00   Min.   :28.29  
##  Class :character   1st Qu.:38.77   1st Qu.:38.81   1st Qu.:38.98  
##  Mode  :character   Median :41.25   Median :41.21   Median :41.42  
##                     Mean   :41.81   Mean   :41.81   Mean   :42.01  
##                     3rd Qu.:44.30   3rd Qu.:44.35   3rd Qu.:44.51  
##                     Max.   :57.96   Max.   :58.13   Max.   :58.29  
##      Mínimo          Vol.             X..var.         
##  Min.   :27.44   Length:2799        Length:2799       
##  1st Qu.:38.54   Class :character   Class :character  
##  Median :41.01   Mode  :character   Mode  :character  
##  Mean   :41.58                                        
##  3rd Qu.:44.16                                        
##  Max.   :57.78
skim(EEM)
Data summary
Name EEM
Number of rows 2799
Number of columns 7
_______________________
Column type frequency:
character 3
numeric 4
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
Fecha 0 1 10 10 0 2799 0
Vol. 0 1 0 7 31 2313 0
X..var. 0 1 5 7 0 570 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
Cierre 0 1 41.81 5.35 28.08 38.76 41.25 44.30 57.96 ▁▆▇▂▁
Apertura 0 1 41.81 5.35 28.00 38.81 41.21 44.36 58.13 ▁▆▇▂▁
Máximo 0 1 42.01 5.35 28.29 38.98 41.42 44.51 58.29 ▁▆▇▂▁
Mínimo 0 1 41.58 5.34 27.44 38.54 41.01 44.16 57.78 ▁▆▇▂▁
head(EEM)
##        Fecha Cierre Apertura Máximo Mínimo   Vol. X..var.
## 1 31.12.2024  41.82    41.94  42.04  41.78 40.52M  -0.33%
## 2 30.12.2024  41.96    42.04  42.09  41.84 25.06M  -0.80%
## 3 27.12.2024  42.30    42.23  42.33  42.11 22.67M  -0.45%
## 4 26.12.2024  42.49    42.36  42.58  42.34 16.15M  -0.35%
## 5 24.12.2024  42.64    42.51  42.67  42.46  7.07M   0.31%
## 6 23.12.2024  42.51    42.28  42.55  42.21 17.96M   0.57%
tail(EEM)
##           Fecha Cierre Apertura Máximo Mínimo    Vol. X..var.
## 2794 09.01.2014  39.33    39.41  39.48  39.02  74.41M  -0.53%
## 2795 08.01.2014  39.54    39.73  39.77  39.42  63.18M  -0.33%
## 2796 07.01.2014  39.67    39.71  39.85  39.55  57.34M   0.43%
## 2797 06.01.2014  39.50    39.72  39.72  39.49  55.74M  -0.95%
## 2798 03.01.2014  39.88    40.15  40.16  39.70  83.58M  -0.18%
## 2799 02.01.2014  39.95    40.75  40.76  39.91 138.49M  -3.83%
dim(EEM)
## [1] 2799    7
glimpse(EEM)
## Rows: 2,799
## Columns: 7
## $ Fecha    <chr> "31.12.2024", "30.12.2024", "27.12.2024", "26.12.2024", "24.1…
## $ Cierre   <dbl> 41.82, 41.96, 42.30, 42.49, 42.64, 42.51, 42.27, 42.10, 41.96…
## $ Apertura <dbl> 41.94, 42.04, 42.23, 42.36, 42.51, 42.28, 41.96, 42.37, 42.90…
## $ Máximo   <dbl> 42.04, 42.09, 42.33, 42.58, 42.67, 42.55, 42.49, 42.41, 43.01…
## $ Mínimo   <dbl> 41.78, 41.84, 42.11, 42.34, 42.46, 42.21, 41.92, 42.10, 41.88…
## $ Vol.     <chr> "40.52M", "25.06M", "22.67M", "16.15M", "7.07M", "17.96M", "2…
## $ X..var.  <chr> "-0.33%", "-0.80%", "-0.45%", "-0.35%", "0.31%", "0.57%", "0.…
################################################################################

EWW <- read.csv('EWW.csv', na.strings = c("null","**"), stringsAsFactors = FALSE)

EWW %>% summarise_all(~sum(is.na(.)))
##   Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 1     0      0        0      0      0    0       0
str(EWW)
## 'data.frame':    903 obs. of  7 variables:
##  $ Fecha   : chr  "31.12.2024" "30.12.2024" "27.12.2024" "26.12.2024" ...
##  $ Cierre  : chr  "957.63" "972.68" "976.42" "976.96" ...
##  $ Apertura: chr  "957.63" "972.68" "976.42" "976.96" ...
##  $ Máximo  : chr  "957.63" "972.68" "976.42" "976.96" ...
##  $ Mínimo  : chr  "957.63" "972.68" "976.42" "976.96" ...
##  $ Vol.    : chr  "" "" "" "" ...
##  $ X..var. : chr  "-1.55%" "-0.38%" "-0.06%" "0.24%" ...
summary(EWW)
##     Fecha              Cierre            Apertura            Máximo         
##  Length:903         Length:903         Length:903         Length:903        
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##     Mínimo              Vol.             X..var.         
##  Length:903         Length:903         Length:903        
##  Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character
skim(EWW)
Data summary
Name EWW
Number of rows 903
Number of columns 7
_______________________
Column type frequency:
character 7
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
Fecha 0 1 10 10 0 903 0
Cierre 0 1 6 8 0 833 0
Apertura 0 1 6 8 0 828 0
Máximo 0 1 6 8 0 829 0
Mínimo 0 1 6 8 0 830 0
Vol. 0 1 0 7 281 266 0
X..var. 0 1 5 6 0 406 0
head(EWW)
##        Fecha Cierre Apertura Máximo Mínimo  Vol. X..var.
## 1 31.12.2024 957.63   957.63 957.63 957.63        -1.55%
## 2 30.12.2024 972.68   972.68 972.68 972.68        -0.38%
## 3 27.12.2024 976.42   976.42 976.42 976.42        -0.06%
## 4 26.12.2024 976.96   976.96 976.96 976.96         0.24%
## 5 24.12.2024 974.60   974.60 974.60 974.60        -0.04%
## 6 23.12.2024 975.00   975.00 975.00 975.00 0.05K  -0.54%
tail(EWW)
##          Fecha Cierre Apertura Máximo Mínimo   Vol. X..var.
## 898 08.05.2019 852.84   851.36 851.36 848.37 37.78K  -1.25%
## 899 07.05.2019 863.61   849.37 849.37 848.37 16.65K  -0.66%
## 900 15.04.2019 869.37   871.28 871.28 871.28  0.01K  -0.61%
## 901 08.04.2019 874.73   886.56 886.56 886.56  1.06K   3.46%
## 902 03.04.2019 845.49   849.27 849.27 849.27  0.90K  -0.16%
## 903 22.03.2019 846.82   846.20 846.20 846.20  0.03K   2.79%
dim(EWW)
## [1] 903   7
glimpse(EWW)
## Rows: 903
## Columns: 7
## $ Fecha    <chr> "31.12.2024", "30.12.2024", "27.12.2024", "26.12.2024", "24.1…
## $ Cierre   <chr> "957.63", "972.68", "976.42", "976.96", "974.60", "975.00", "…
## $ Apertura <chr> "957.63", "972.68", "976.42", "976.96", "974.60", "975.00", "…
## $ Máximo   <chr> "957.63", "972.68", "976.42", "976.96", "974.60", "975.00", "…
## $ Mínimo   <chr> "957.63", "972.68", "976.42", "976.96", "974.60", "975.00", "…
## $ Vol.     <chr> "", "", "", "", "", "0.05K", "0.00K", "5.15K", "", "1.19K", "…
## $ X..var.  <chr> "-1.55%", "-0.38%", "-0.06%", "0.24%", "-0.04%", "-0.54%", "-…
################################################################################

SPY <- read.csv('SPY.csv', na.strings = c("null","**"), stringsAsFactors = FALSE)

SPY %>% summarise_all(~sum(is.na(.)))
##   Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 1     0      0        0      0      0    0       0
str(SPY)
## 'data.frame':    2773 obs. of  7 variables:
##  $ Fecha   : chr  "31.12.2024" "30.12.2024" "27.12.2024" "26.12.2024" ...
##  $ Cierre  : num  586 588 595 601 601 ...
##  $ Apertura: num  590 588 598 600 596 ...
##  $ Máximo  : num  591 592 598 602 601 ...
##  $ Mínimo  : num  584 584 591 598 595 ...
##  $ Vol.    : chr  "57.05M" "56.58M" "64.97M" "41.34M" ...
##  $ X..var. : chr  "-0.36%" "-1.14%" "-1.05%" "0.01%" ...
summary(SPY)
##     Fecha               Cierre         Apertura         Máximo     
##  Length:2773        Min.   :174.2   Min.   :174.8   Min.   :175.6  
##  Class :character   1st Qu.:216.8   1st Qu.:217.0   1st Qu.:217.3  
##  Mode  :character   Median :289.0   Median :289.4   Median :290.4  
##                     Mean   :322.3   Mean   :322.3   Mean   :324.0  
##                     3rd Qu.:413.8   3rd Qu.:413.4   3rd Qu.:416.1  
##                     Max.   :607.8   Max.   :607.7   Max.   :609.1  
##      Mínimo          Vol.             X..var.         
##  Min.   :173.7   Length:2773        Length:2773       
##  1st Qu.:216.0   Class :character   Class :character  
##  Median :287.7   Mode  :character   Mode  :character  
##  Mean   :320.4                                        
##  3rd Qu.:411.1                                        
##  Max.   :607.0
skim(SPY)
Data summary
Name SPY
Number of rows 2773
Number of columns 7
_______________________
Column type frequency:
character 3
numeric 4
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
Fecha 0 1 10 10 0 2773 0
Vol. 0 1 0 7 5 2433 0
X..var. 0 1 5 7 0 499 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
Cierre 0 1 322.33 110.72 174.17 216.77 288.97 413.81 607.81 ▇▆▅▃▁
Apertura 0 1 322.29 110.72 174.78 216.97 289.40 413.42 607.69 ▇▅▅▃▁
Máximo 0 1 324.00 111.28 175.56 217.27 290.42 416.06 609.07 ▇▆▅▃▁
Mínimo 0 1 320.42 110.08 173.71 215.97 287.66 411.08 607.02 ▇▅▅▃▁
head(SPY)
##        Fecha Cierre Apertura Máximo Mínimo   Vol. X..var.
## 1 31.12.2024 586.08   589.91 590.64 584.42 57.05M  -0.36%
## 2 30.12.2024 588.22   587.89 591.74 584.41 56.58M  -1.14%
## 3 27.12.2024 595.01   597.54 597.78 590.76 64.97M  -1.05%
## 4 26.12.2024 601.34   599.50 602.48 598.08 41.34M   0.01%
## 5 24.12.2024 601.30   596.06 601.34 595.47 33.16M   1.11%
## 6 23.12.2024 594.69   590.89 595.30 587.66 57.64M   0.60%
tail(SPY)
##           Fecha Cierre Apertura Máximo Mínimo    Vol. X..var.
## 2768 09.01.2014 183.64   184.11 184.13 182.79  90.68M   0.07%
## 2769 08.01.2014 183.52   183.45 183.83 182.89  96.58M   0.02%
## 2770 07.01.2014 183.48   183.09 183.79 182.95  86.14M   0.61%
## 2771 06.01.2014 182.36   183.49 183.56 182.08 108.03M  -0.28%
## 2772 03.01.2014 182.88   183.23 183.60 182.63  81.39M  -0.02%
## 2773 02.01.2014 182.92   183.98 184.07 182.48 119.64M  -0.96%
dim(SPY)
## [1] 2773    7
glimpse(SPY)
## Rows: 2,773
## Columns: 7
## $ Fecha    <chr> "31.12.2024", "30.12.2024", "27.12.2024", "26.12.2024", "24.1…
## $ Cierre   <dbl> 586.08, 588.22, 595.01, 601.34, 601.30, 594.69, 591.15, 586.1…
## $ Apertura <dbl> 589.91, 587.89, 597.54, 599.50, 596.06, 590.89, 581.77, 591.3…
## $ Máximo   <dbl> 590.64, 591.74, 597.78, 602.48, 601.34, 595.30, 595.75, 593.0…
## $ Mínimo   <dbl> 584.42, 584.41, 590.76, 598.08, 595.47, 587.66, 580.91, 585.8…
## $ Vol.     <chr> "57.05M", "56.58M", "64.97M", "41.34M", "33.16M", "57.64M", "…
## $ X..var.  <chr> "-0.36%", "-1.14%", "-1.05%", "0.01%", "1.11%", "0.60%", "0.8…
################################################################################

EEM <- EEM %>% rename(CierreEEM = Cierre)
EWW <- EWW %>% rename(CierreEWW = Cierre)
SPY <- SPY %>% rename(CierreSPY = Cierre)

################################################################################

nrow(EEM)
## [1] 2799
nrow(EWW)
## [1] 903
nrow(SPY)
## [1] 2773
# Ajustar para que tenga la misma cantidad de filas
EEM <- EEM %>% slice(1:nrow(EWW))
SPY <- SPY %>% slice(1:nrow(EWW))

Cierre_ETF <- bind_cols(select(EWW, Fecha, CierreEWW), select(EEM, CierreEEM), 
                    select(SPY, CierreSPY))
Cierre_ETF$Fecha <- as.Date(Cierre_ETF$Fecha, format = "%d.%m.%Y")

################################################################################

# Ordenar por fecha
Cierre_ETF <- Cierre_ETF %>% arrange(Fecha)

Cierre_ETF <- Cierre_ETF %>%
  mutate(across(-Fecha, as.numeric))
## Warning: There was 1 warning in `mutate()`.
## ℹ In argument: `across(-Fecha, as.numeric)`.
## Caused by warning:
## ! NAs introduced by coercion
Grafica_Cierre_ETF <- Cierre_ETF %>%
  pivot_longer(-Fecha, names_to = "Accion", values_to = "Precio")

# Graficar (solo línea, sin puntos)
ggplot(Grafica_Cierre_ETF, aes(x = Fecha, y = Precio)) +
  geom_line(color = "red") +  # Línea roja
  labs(title = "Evolución del Cierre ETFs", x = "Fecha", y = "Precio") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))