Este programa tiene como finalidad facilitar la elaboración, de una orden de compra de acciones de la Bolsa de Valores de Caracas. Distribuye equitativamente la cantidad de bolívares indicada entre un conjunto predeterminado de acciones. Redondea al entero más cercano e indica el monto a invertir en cada una de las acciones.
Nota: el principal objetivo de esta publicación es familiarizar al autor con el uso del estilo Markdown. En este sentido, los requerimientos del proyecto y, especialmente, los criterios de evaluación del mismo contemplan este hecho.
En el monto de compra se indica el monto en bolívares a distribuir entre las acciones. Debe introducir un valor numérico.
El vector (tickets) contiene el símbolo de cada una de las acciones predeterminadas. En este ejemplo genérico son cinco.
El vector (precios) contiene el símbolo de cada una de las acciones. Debe introducir un valor numérico.
El vector (pick) indica con TRUE si desea adquirir una acción, o con FALSE si no lo desea. La función “sum” de la columna correspondiente a (pick) es empleada para calcular entre cuál es el número de acciones desea distribuir el monto.
### Conjunto de variables y vectores
monto_compra <- 6000
tickets <- c("BNC",
"BPV",
"RST",
"BVCC",
"MVZ.A")
precios <- c(78.99,
8.71,
26.5,
20,
439)
pick <- c(0,#BNC
1,#BPV
1,#RST
1,#BVCC
0)#MVZ.A
#data frame
dta_1 <- data.frame(tickets,precios,pick)
En la Bolsa de Valores de Caracas, al menos hasta la fecha de redacción de este documento, no es posible adquirir fracciones de acciones. Por lo tanto, se redondea al entero más cercano.
#### Operaciones
monto_accion <- monto_compra / sum(dta_1$pick == TRUE)
dta_1$q_compra <- round((monto_accion/dta_1$precios)*dta_1$pick, digits = 0)
En las primeras dos variables se define la fecha y el saludo o primera linea del correo electrónico.
### Salida para el correo
date <- format(Sys.Date(), "%d-%m-%Y")
saludo <- paste0("Buenos días, ",as.character(date)," deseo colocar la siguiente orden de compra:")
En esta sección se construyen las “strings” que serán efectivamente las órdenes de compra correspondiente para cada acción. El condicional asigna NULL, si se ha indicado en el vector (pick) que no se desea invertir en dicha acción (FALSE).
## ordenes de compra
BNC <- if (dta_1$pick[1]==TRUE){paste0(as.character(dta_1$q_compra[1])," acciones del Banco Nacional de Crédito (BNC) a precio de mercado.")}
BPV <- if (dta_1$pick[2]==TRUE){paste0(as.character(dta_1$q_compra[2])," acciones del Banco Provincial (BPV) a precio de mercado")}
RST <- if (dta_1$pick[3]==TRUE){paste0(as.character(dta_1$q_compra[3])," acciones de Ron Santa Teresa (RST) a precio de mercado")}
BVCC <- if (dta_1$pick[4]==TRUE){paste0(as.character(dta_1$q_compra[4])," acciones de la Bolsa de Valores (BVCC) a precio de mercado")}
MVZA <- if (dta_1$pick[5]==TRUE){paste0(as.character(dta_1$q_compra[5])," acciones del Banco Mercantil tipo A (MVZ.A) a precio de mercado.")}
Finalmente, con la función writeLines se genera en la consola el texto a emplear en el correo electrónico para realizar la oreden de compra.
## correo
writeLines(c(saludo,"",BNC,BPV,RST,BVCC,MVZA))
## Buenos días, 06-06-2025 deseo colocar la siguiente orden de compra:
##
## 230 acciones del Banco Provincial (BPV) a precio de mercado
## 75 acciones de Ron Santa Teresa (RST) a precio de mercado
## 100 acciones de la Bolsa de Valores (BVCC) a precio de mercado