Analizar las existencias usando R

Un análisis general y técnico de las acciones de Amazon (AMZN) y una simulación de precios utilizando el método de paseo aleatorio y monte carlo. Las visualizaciones hechas con plotly y ggplot.

Las acciones de Amazon (AMZN) experimentaron un aumento de 95.6% (+ $ 918.93) el año pasado, lo que hace que Amazon (AMZN) sea una opción deseable para muchos inversores. Muchos analistas también creen que el valor de Amazon (AMZN) seguirá aumentando en los próximos años. Si bien parece tentador comprar las acciones, se debe realizar un análisis profundo y detallado para evitar comprar acciones basadas en la especulación.

Implementé mi conocimiento en estadísticas y habilidades R para analizar su desempeño desde un punto de vista técnico y predecir su precio futuro. Confié fuertemente en un paquete usado frecuentemente en finanzas cuantitativas como quant mod y xts para cumplir mi objetivo.

Aquí está la lista completa de paquetes que utilicé:

 library (quantmod) 
 library (xts) 
 library (rvest) 
 library (tidyverse) 
 library (stringr) 
 library (forcats) 
 library (lubridate) 
 library (plotly) 
 library (dplyr) 
 library (PerformanceAnalytics)

Comencé mi análisis obteniendo los registros de las acciones de Amazon desde el 1 de agosto de 2008 hasta el 17 de agosto de 2018:

 getSymbols ("AMZN", from = "2008-08-01", to = "2018-08-17")
 AMZN_log_returns <-AMZN%>% Ad ()%>% dailyReturn (type = & # 039; log & # 039;)

El log devuelve no tiene sentido en este momento etapa, pero en realidad es el elemento fundamental de mi análisis. Explicaré más adelante.

Análisis técnico

Empecé haciendo un análisis técnico de las acciones de Amazon:

 AMZN%>% Ad ()%>% chartSeries ()
 AMZN%>% chartSeries (TA = & # 039; addBBands (); addVo (); addMACD () & # 039;, subconjunto = & # 039; 2018 & # 039;)

El primer gráfico de la serie de gráficos es sencillo, ya que muestra el gráfico de precios de Amazon: [19659015] Gráfico de precios

La segunda serie de gráficos muestra la tabla de Bollinger Band,% Cambio de Bollinger, Volumen negociado y Desvío de convergencia promedio móvil solo en 2018:

Análisis técnico

La media móvil es importante para comprender Amazon (AMZN ) tablas técnicas. Suaviza las fluctuaciones diarias de los precios promediando los precios de las acciones y es efectivo para identificar tendencias potenciales.

El cuadro de la banda de Bollinger traza dos desviaciones estándar de la media móvil y se usa para medir la volatilidad de la acción. El cuadro de Volumen muestra cómo se comercializan sus acciones diariamente. La Divergencia de Convergencia del Promedio Móvil da a los analistas técnicos señales de compra / venta. La regla de oro es: si cae por debajo de la línea, es hora de vender. Si se eleva por encima de la línea, está experimentando un impulso ascendente.

Los cuadros anteriores se utilizan generalmente para decidir si comprar / vender una acción. Como no soy un analista financiero certificado, decidí hacer una investigación adicional para convencerme.

Comparaciones

Implementé el principio subyacente de las comparaciones públicas. Quería ver cómo Amazon (AMZN) estaba haciendo en comparación con otras acciones tecnológicas populares como Facebook (FB), Google (GOOGL) y Apple (AAPL).

Primero comparé la tasa de riesgo / rendimiento de cada acción. Tomé la media del log return y la desviación estándar del log return. La media se asume como la tasa de rendimiento constante, mientras que la desviación estándar es el riesgo que conlleva comprar la acción. Utilicé plotly, una herramienta de visualización interactiva, para ilustrar mis hallazgos.

https://medium.com/media/473955bbdfbf4c3398f766259cbfce24/href

Las acciones de Google (GOOGL) tienen el riesgo más bajo y el rendimiento más bajo. Facebook (FB) y Amazon (AMZN) son igual de arriesgados, pero este último tiene mayores rendimientos. Si tiene riesgos, Tesla (TSLA) es una buena inversión ya que tiene alto riesgo y altos rendimientos. Pero si eres adverso al riesgo, como yo, Apple (AAPL) es la mejor opción.

Un principio de inversión popular es diversificar tus inversiones: no pongas todos tus huevos en una sola canasta. Al comprar acciones, debe intentar comprar acciones que compartan una pequeña correlación porque desea maximizar la tasa de rendimiento total.

 biblioteca (PerformanceAnalytics)
 datos <-cbind (diff (log (Cl (AMZN))) , tabla de correspondencias (datos)
Tabla de correlaciones

] Facebook (FB) y Apple (AAPL) tienen la menor correlación de 0.24, mientras que Amazon (AMZN) y Google (GOOGL) tienen la mayor correlación de 0.56. La correlación entre cada acción es alta porque todas son acciones tecnológicas. Es mejor comprar acciones de diferentes sectores para minimizar realmente el riesgo y maximizar las tasas de rendimiento.

Predicción del precio

Seguí para predecir los precios de las acciones de Amazon (AMZN). Lo logré con la teoría del paseo aleatorio y el método de monte carlo.

La teoría del paseo aleatorio es adecuada para la predicción del precio de una acción porque se basa en la creencia de que el rendimiento pasado no es un indicador de resultados futuros y las fluctuaciones de precios no pueden predijo con precisión.

Simulé los precios de las acciones de Amazon (AMZN) durante 252 * 4 días hábiles (dado que un año tiene ~ 252 días hábiles). ¡Eso equivale a 4 años de comercio!

Genere los precios usando los datos que tengo antes de los retornos de registro y usé la tasa de crecimiento exponencial para predecir cuánto crecerán las existencias por día. La tasa de crecimiento se genera aleatoriamente y depende de los valores de entrada de mu y sigma.

 mu <-AMZN_mean_log # media de log returns 
 sig <-AMZN_sd_log # sd de log returns
 price <-rep (NA , 252 * 4)
 #start simulando precios
 para (i en 2: longitud (testsim)) {
 precio [i] <- precio [i-1] * exp (rnorm (1, mu, sig) )) 
}
 random_data <-cbind (price, 1: (252 * 4)) 
 colnames (random_data) <- c ("Price", "Day") 
 random_data <-as .data.frame (random_data)
random_data%>% ggplot (aes (Day, Price)) + geom_line () + labs (title = "Amazon (AMZN) simulación de precios durante 4 años") + theme_bw () [19659043] Precio de Preidction con Random Walk

El cuadro de arriba muestra los precios simulados para ~ 1000 días de negociación. Si prestas atención a mi código, no incluí un set.seed (). Los precios simulados cambiarán y depende de mi semilla. Para llegar a una predicción estable, la simulación de precios debe usar el método de monte carlo, donde los precios se simulan repetidamente en cuanto a la precisión.

 N <-500 
 mc_matrix <-matrix (nrow = 252 * 4 , ncol = N) 
 mc_matrix [1,1] <- as.numeric (AMZN $ AMZN.Adjusted [length(AMZN$AMZN.Adjusted),])
 para (j en 1: ncol (mc_matrix)) {
 mc_matrix [1,j] < -as.numeric (AMZN $ AMZN.Adjusted [length(AMZN$AMZN.Adjusted),]) 
 para (i en 2: nrow (mc_matrix)) {
 mc_matrix [i,j] <- mc_matrix [i-1,j] * exp (rnorm (1, mu , sig)) 
} 
}
 nombre <-str_c ("Sim", seq (1,500)) 
 nombre <-c ("Día", nombre)
 final_mat <-cbind (1: (252 * 4), mc_matrix) 
 final_mat <-as.tibble (final_mat) 
 colnames (final_mat) <- name
 dim (final_mat) # 1008 501
 final_mat%>% gather ("Simulación", "Precio", 2: 501)%>% ggplot (aes (x = Día, y = Precio, Grupo = Simulación)) + geom_line (alpha = 0.2) + labs (title = "Amazon Stock ( AMZN): 500 Simulaciones de Monte Carlo durante 4 años ") + theme_bw ()
Predicción del precio wi th Monte Carlo

El gráfico anterior no es intuitivo, así que finalicé mis hallazgos usando el percentil verifique el precio de Amazon (AMZN) después de cuatro años.

 final_mat [500,-1]%>% as.numeric ()%> % quantile (probs = probs)

No confíe en mi palabra, pero dado el resultado de mi simulación, las acciones de Amazon (AMZN) pueden alcanzar el precio de $ 11198.10 en cuatro años o caer a $ 834.60 bajo. Puede comparar mis hallazgos con la CAGR de Amazon (AMZN) para determinar si mi hallazgo tiene sentido. ¡Pero si tuviera la oportunidad, compraría las acciones de inmediato!

¡Gracias por leer! Avísame si tienes algún comentario o quieres chatear.

Add a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *