Энэхүү судалгааны зорилго нь Tesla компанийн хувьцааны үнийн хөдөлгөөнийг бином загвараар загварчилж, 2026 оны 1-р сарын богино хугацааны үнийн таамаглал гаргахад оршино. Бином загвар нь хувьцааны үнэ хугацааны дараалалд хоёр боломжит чиглэлээр (өсөх эсвэл буурах) өөрчлөгдөнө гэж үздэг энгийн стохастик загвар юм.
##Packages
library(quantmod)
## Loading required package: xts
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
## Loading required package: TTR
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
library(ggplot2)
library(dplyr)
##
## ######################### Warning from 'xts' package ##########################
## # #
## # The dplyr lag() function breaks how base R's lag() function is supposed to #
## # work, which breaks lag(my_xts). Calls to lag(my_xts) that you type or #
## # source() into this session won't work correctly. #
## # #
## # Use stats::lag() to make sure you're not using dplyr::lag(), or you can add #
## # conflictRules('dplyr', exclude = 'lag') to your .Rprofile to stop #
## # dplyr from breaking base R's lag() function. #
## # #
## # Code in packages is not affected. It's protected by R's namespace mechanism #
## # Set `options(xts.warn_dplyr_breaks_lag = FALSE)` to suppress this warning. #
## # #
## ###############################################################################
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:xts':
##
## first, last
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(zoo)
library(timeDate)
# -----------------------------
# 1. Tesla price татах (Yahoo)
# -----------------------------
getSymbols("TSLA", src="yahoo",
from="2025-02-03",
to="2026-02-03")
## [1] "TSLA"
data <- data.frame(
Date = index(TSLA),
Close = as.numeric(Cl(TSLA))
)
# -----------------------------
# 2. Price болон date
# -----------------------------
price <- data$Close
dates <- data$Date
n <- length(price)
price_date_table <- data.frame(
Date = dates,
Price = price
)
print(head(price_date_table))
## Date Price
## 1 2025-02-03 383.68
## 2 2025-02-04 392.21
## 3 2025-02-05 378.17
## 4 2025-02-06 374.32
## 5 2025-02-07 361.62
## 6 2025-02-10 350.73
# -----------------------------
# 3. Арифметик өгөөж
# -----------------------------
ret <- diff(price)/head(price,-1)
# -----------------------------
# 4. u болон d
# -----------------------------
u <- mean(ret[ret > 0], na.rm = TRUE)
d <- mean(ret[ret < 0], na.rm = TRUE)
cat("u =", u, "\n")
## u = 0.02976208
cat("d =", d, "\n")
## d = -0.02747719
# -----------------------------
# 5. 50 удаагийн бином симуляци
# -----------------------------
set.seed(123)
simulations <- list()
SSE <- numeric(50)
for(sim in 1:50){
sim_price <- numeric(n)
sim_price[1] <- price[1]
coin <- rbinom(n-1,1,0.5)
for(t in 2:n){
if(coin[t-1] == 1){
sim_price[t] <- sim_price[t-1]*(1+u)
} else{
sim_price[t] <- sim_price[t-1]*(1+d)
}
}
simulations[[sim]] <- sim_price
SSE[sim] <- sum((price - sim_price)^2)
}
# -----------------------------
# 6. Хамгийн сайн симуляци
# -----------------------------
best_index <- which.min(SSE)
best_sim <- simulations[[best_index]]
cat("Хамгийн бага SSE =", min(SSE), "\n")
## Хамгийн бага SSE = 575431.9
cat("Шилдэг симуляци =", best_index, "\n")
## Шилдэг симуляци = 4
# -----------------------------
# 7. График
# -----------------------------
df_plot <- data.frame(
date = dates,
Observed = price,
Simulated = best_sim
)
ggplot(df_plot, aes(x=date)) +
geom_line(aes(y=Observed, color="Observed"), linewidth=1) +
geom_line(aes(y=Simulated, color="Simulated"), linewidth=1) +
labs(title="Tesla Binomial Model Simulation (Best Fit)",
y="Price",
color="Legend") +
theme_minimal()
# -----------------------------
# 8. 2026 оны 1 сарын таамаглал
# -----------------------------
future_days <- 21
future_price <- numeric(future_days)
future_price[1] <- best_sim[n]
coin_future <- rbinom(future_days-1,1,0.5)
for(t in 2:future_days){
if(coin_future[t-1]==1){
future_price[t] <- future_price[t-1]*(1+u)
}else{
future_price[t] <- future_price[t-1]*(1+d)
}
}
cat("2026 оны 1 сарын эцсийн таамаг үнэ =", tail(future_price,1), "\n")
## 2026 оны 1 сарын эцсийн таамаг үнэ = 372.0266
# -----------------------------
# 9. Ирээдүйн огноо
# -----------------------------
future_dates <- timeSequence(
from = as.Date("2026-01-01"),
by = "day",
length.out = 31
)
future_dates <- future_dates[isBizday(future_dates)]
future_dates <- future_dates[1:21]
# -----------------------------
# 10. Forecast dataframe
# -----------------------------
df_future <- data.frame(
date = as.Date(future_dates),
Observed = NA,
Simulated = NA,
Forecast = future_price
)
df_all <- data.frame(
date = dates,
Observed = price,
Simulated = best_sim,
Forecast = NA
)
df_total <- rbind(df_all, df_future)
# -----------------------------
# 11. Final graph
# -----------------------------
ggplot(df_total, aes(x = date)) +
geom_line(aes(y = Observed, color = "Observed"), linewidth = 1) +
geom_line(aes(y = Simulated, color = "Best Simulation"), linewidth = 1) +
geom_line(aes(y = Forecast, color = "2026 Jan Forecast"), linewidth = 1) +
labs(title="Tesla Binomial Model Forecast",
y="Price",
color="Legend") +
theme_minimal()
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_line()`).
## Removed 1 row containing missing values or values outside the scale range
## (`geom_line()`).
## Warning: Removed 233 rows containing missing values or values outside the scale range
## (`geom_line()`).
##Conclusion
Энэхүү шинжилгээнд Tesla компанийн хувьцааны үнийг бином загвар ашиглан симуляц хийж бодит үнийн хөдөлгөөнтэй хамгийн сайн тохирох симуляцийг SSE шалгуураар сонгосон. Үр дүнгээс харахад бином загвар нь богино хугацаанд хувьцааны үнийн хөдөлгөөнийг ойролцоогоор тайлбарлах боломжтой байна.
Мөн уг загварыг ашиглан 2026 оны 1-р сарын 21 арилжааны өдрийн хувьцааны үнийн боломжит чиг хандлагыг таамагласан. Гэсэн хэдий ч хувьцааны зах зээлд олон хүчин зүйл нөлөөлдөг тул бином загварыг зөвхөн ойролцоолсон таамаглал хийхэд ашиглах нь зүйтэй.