戒严 45 年后的汇率冲击:利用 R 可视化生成美元汇率图

2024 年 12 月 3 日晚上 10 点 27 分,韩国宣布戒严,金融市场受到干扰。 戒严是政府在国家紧急状态下通过军事管制维持秩序的一种措施,会对经济产生重大影响。

在本篇文章中,我们将分享使用 R 可视化方法分析戒严令对汇率的影响并生成韩元汇率图的过程。这将帮助您定量了解戒严令的经济影响,并帮助您思考未来的应对措施。

R로 시각화한 계엄령 발표후 원달러 환율 그래프
(以 R 语言显示的美元汇率图)

1. 安装并加载所需的软件包

首先,我们安装并加载导入和可视化数据所需的 R 软件包。如果在加载之前没有安装这些软件包,则在运行代码时控制台会提示需要安装。很可能你没有安装 alphavantager,所以你可以使用下面源代码中的 install.packages 命令来安装缺少的软件包。

# 安装并加载所需的软件包
# install.packages("alphavantager") # install.packages 安装软件包时,您会注意到软件包名称两侧有" Required"!
library(alphavantager)
library(dplyr)
library(ggplot2)
library(lubridate)
  • 阿尔法优势"(《世界人权宣言》) 股票、外汇和加密货币数据免费 API用户。用户使用电子邮件注册后,可获得一个免费的 API 密钥来访问数据。API 以 JSON 和 CSV 格式提供数据,包括股票时间序列数据、公司基本信息、技术指标等。免费 API 每天最多允许 500 次请求,每分钟最多允许 5 次请求,实时数据仅限于外汇和加密货币。

2. 设置 Alpha Vantage API 并下载数据

使用 Alpha Vantage API 下载每分钟汇率数据。要使用该 API 需要已发布的 API 密钥用于以下方面

# 设置 Alpha Vantage API 密钥
av_api_key("YOUR_ALPHA_VANTAGE_API_KEY") # 输入发布的 API 密钥

# 下载每分钟数据
symbol <- "USDKRW" # 韩元汇率符号
data <- av_get(
  symbol = symbol、
  av_fun = "TIME_SERIES_INTRADAY", # 设置获取日内数据
  interval = "1min", # 以 1 分钟为增量的时间间隔
  outputsize = "full" # 请求完整数据
)

3. 数据预处理

预处理下载的数据,并将其转换成适合分析的形式。这包括时区转换和选择所需的列。

预处理 # 数据(包括 UTC → KST 转换)
data_filtered %
  select(timestamp, open, high, low, close) %>% # 选择所需列
  mutate(timestamp = with_tz(timestamp, tzone = "Asia/Seoul"))%>% # UTC → KST 转换
  过滤
    timestamp >= as.POSIXct("2024-12-03 00:00:00", tz = "Asia/Seoul") & # KST 在 12 月 3 日 0:00 之后
      timestamp %
  arrange(timestamp) # 按时间戳排序

处理 # 数据是否为空
if (nrow(data_filtered) == 0) {
  stop("No data available for the selected time range. Please check the API or time range.")
}

计算平均、最佳和最差汇率

根据预处理数据计算平均汇率、最佳汇率和最差汇率。

计算 # 平均汇率、最高汇率和最低汇率
avg_rate <- mean(data_filtered$close, na.rm = TRUE) # 用于计算平均汇率
max_rate <- max(data_filtered$high, na.rm = TRUE) # 用于计算最高汇率
min_rate <- min(data_filtered$low, na.rm = TRUE) # 用于计算最低汇率

5.绘制美元汇率图

ggplot2 以直观显示汇率波动。

可视化 #
ggplot(data_filtered, aes(x = timestamp, y = close)) +
  geom_line(color = "steelblue", size = 1.2) + # 汇率变动折线图
  geom_hline(yintercept = avg_rate, color = "darkgreen", linetype = "dashed", size = 1) + # 平均汇率水平线图
  geom_hline(yintercept = max_rate, color = "red", linetype = "dotted", size = 1) + # 最高汇率水平线
  geom_hline(yintercept = min_rate, color = "blue", linetype = "dotted", size = 1) + # 最低汇率水平线
  annotate("text", x = max(data_filtered$timestamp), y = avg_rate、
           label = paste0("平均值:",round(avg_rate, 2)),vjust =-1,颜色 = "深绿色") +
  annotate("text", x = max(data_filtered$timestamp), y = max_rate、
           label = paste0("Max: ", round(max_rate, 2)), vjust = -1, color = "red") +
  annotate("text", x = max(data_filtered$timestamp), y = min_rate、
           label = paste0("Min: ", round(min_rate, 2)), vjust = 2, color = "blue") +
  labs(
    title = "2024 年 12 月 3 日午夜(韩国时间)韩元/美元汇率"、
    subtitle = "通过 Alpha Vantage API 获取的 1 分钟区间数据"、
    x = "时间(韩国标准时间)"、
    y ="汇率(1 美元兑 1 韩元)"
  ) + Β
  theme_minimal() +
  theme(
    plot.title = element_text(size = 18, face="bold")、
    plot.subtitle= element_text(size=14)、
    axis.title= element_text(size=12)、
    axis.text= element_text(size=10)、
    axis.text.x= element_text(angle=45,hjust=1)         

6.戒严令与金融市场:数据意味着什么

戒严令的宣布对金融市场产生了巨大的心理和实际影响。R 可以用来对这些数据进行定量分析,为投资决策提供参考。

这篇文章中生成一美元汇率图表的代码展示了如何直接获取汇率数据,并对其变化进行分析和可视化。这些方法对于全面了解经济状况非常有用,而不仅仅是数字。

# 完整代码及详细代码说明

# 安装并加载所需的软件包
# install.packages("alphavantager")
library(alphavantager)
library(dplyr)
library(ggplot2)
library(lubridate)

设置 # Alpha Vantage API 密钥
av_api_key("YOUR_ALPHA_VANTAGE_API_KEY") # 输入发布的 API 密钥

# 下载每分钟数据
symbol <- "USDKRW" # 韩元汇率符号
data <- av_get(
  symbol = symbol、
  av_fun = "TIME_SERIES_INTRADAY", # 设置获取日内数据
  interval = "1min", # 以 1 分钟为增量的时间间隔
  outputsize = "full" # 请求完整数据
)

预处理 # 数据(包括 UTC → KST 转换)
data_filtered %
  select(timestamp, open, high, low, close) %>% # 选择所需列
  mutate(timestamp = with_tz(timestamp, tzone = "Asia/Seoul"))%>% # UTC → KST 转换
  过滤
    timestamp >= as.POSIXct("2024-12-03 00:00:00", tz = "Asia/Seoul") & # KST 在 12 月 3 日 0:00 之后
      timestamp %
  arrange(timestamp) # 按时间戳排序

处理 # 数据是否为空
if (nrow(data_filtered) == 0) {
  stop("No data available for the selected time range. Please check the API or time range.")
}

计算 # 的平均、最高和最低汇率
avg_rate <- mean(data_filtered$close, na.rm = TRUE) 计算 # 的平均汇率
max_rate <- max(data_filtered$high, na.rm = TRUE) 计算 # 的最高汇率
min_rate <- min(data_filtered$low, na.rm = TRUE) # 计算最低汇率

可视化 #
ggplot(data_filtered, aes(x = timestamp, y = close)) +
  geom_line(color = "steelblue", size = 1.2) + # 汇率变动折线图
  geom_hline(yintercept = avg_rate, color = "darkgreen", linetype = "dashed", size = 1) +
  geom_hline(yintercept = max_rate, color = "red", linetype = "dotted", size = 1) +
  geom_hline(yintercept = min_rate, color = "blue", linetype = "dotted", size = 1) +
  annotate("text", x = max(data_filtered$timestamp), y = avg_rate、
           label = paste0("Average: ", round(avg_rate, 2)), vjust = -1, color = "darkgreen") +
  annotate("text", x = max(data_filtered$timestamp), y = max_rate、
           label = paste0("Max: ", round(max_rate, 2)), vjust = -1, color = "red") +
  annotate("text", x = max(data_filtered$timestamp), y = min_rate、
           label = paste0("Min: ", round(min_rate, 2)), vjust = 2, color = "blue") +
  labs(
    title = "2024 年 12 月 3 日午夜(韩国时间)韩元/美元汇率"、
    subtitle = "通过 Alpha Vantage API 获取的 1 分钟区间数据"、
    x = "时间(韩国标准时间)"、
    y ="汇率(1 美元兑 1 韩元)"
  ) + Β
  theme_minimal() +
  theme(
    plot.title=element_text(size=18, face="bold")、
    plot.subtitle=element_text(size=14)、
    axis.title=element_text(size=12)、
    axis.text=element_text(size=10)、
    axis.text.x=element_text(angle=45,hjust=1)
)

解读代码

1. 安装和加载软件包

   library(alphavantager)
   library(dplyr)
   library(ggplot2)
   library(lubridate)
  • alphavantager用于通过 Alpha Vantage API 导入财务数据。
  • dplyr:用于预处理和操作数据的软件包。
  • ggplot2:数据可视化软件包
  • 润滑用于日期和时间操作的软件包。

2. 设置 Alpha Vantage API 密钥

   av_api_key("YOUR_ALPHA_VANTAGE_API_KEY")
  • 设置私人 API 密钥,以便使用 Alpha Vantage API。

3. 下载数据

   symbol <- "USDKRW"
   data <- av_get(
     symbol=symbol、
     av_fun="TIME_SERIES_INTRADAY"、
     interval="1min"、
     outputsize="full"
   )
  • 符号设置韩元汇率的符号。
  • av_get从 Alpha Vantage 获取每分钟的韩元兑美元汇率数据。

4. 数据预处理

   data_filtered %
     select(timestamp, open, high, low, close) %>%
     mutate(timestamp=with_tz(timestamp, tzone="Asia/Seoul"))%>%
     过滤
       timestamp >= as.POSIXct("2024-12-03 00:00:00", tz="Asia/Seoul") &
       timestamp %
     arrange(timestamp)
  • 遴选只选择需要的列。
  • 变种UTC:将 UTC 时间转换为韩国标准时间(KST)。
  • 过滤:过滤指定日期范围内的数据。
  • 安排:按时间顺序排列数据。

5. 数据为空时的处理

   if (nrow(data_filtered) == 0) {
     stop("No data available for the selected time range. Please check the API or time range.")
   }
  • 如果过滤后的数据为空,则输出错误信息并中止执行。

6. 计算平均、最佳和最差汇率

   avg_rate <- mean(data_filtered$close, na.rm=TRUE)
   max_rate <- max(data_filtered$high,na.rm=TRUE)
   min_rate <- min(data_filtered$low, na.rm=TRUE)
  • 平均 (平均速率)、最高(max_rate)、最低(最小速率) 计算每种货币的汇率。

7. 美元汇率图 可视化 下载

   ggplot(data_filtered, aes(x=timestamp, y=close)) +
     geom_line(color="steelblue", size=1.2) +
     geom_hline(yintercept=avg_rate,color="darkgreen",linetype="dashed",size=1)+
     geom_hline(yintercept=max_rate,color="red",linetype="dotted",size=1)+
     geom_hline(yintercept=min_rate,color="blue",linetype="dotted",size=1)+
     annotate("文本",x=max(data_filtered$timestamp),y=avg_rate、
              label=paste0("Average: ",round(avg_rate,2)),vjust=-1,color="darkgreen")+
     annotate("文本",x=max(data_filtered$timestamp),y=max_rate、
              label=paste0("Max: ",round(max_rate,2)),vjust=-1,color="red")+
     annotate("text",x=max(data_filtered$timestamp),y=min_rate、
              label=paste0("Min: ",round(min_rate,2)),vjust=2,color="blue")+
     labs(
       title="2024 年 12 月 3 日午夜(韩国时间)韩元/美元汇率"、
       subtitle="1 分钟间隔数据(通过 Alpha Vantage API)"、
       x="时间(韩国标准时间)"、
       y="汇率(韩元兑美元)"
     ) + Β
     theme_minimal() +
     theme(
       plot.title=element_text(size=18, face="bold")、
       plot.subtitle=element_text(size=14)、
       axis.title=element_text(size=12)、
       axis.text=element_text(size=10)、
       axis.text.x=element_text(angle=45,hjust=1)
     )
  • 地形线图示:将汇率变动绘制成折线图。
  • 地形高线以水平线显示平均汇率(绿色虚线)、最高汇率(红色虚线)和最低汇率(蓝色虚线)。
  • 诠释为图表中的每个数字添加文字注释。
  • 实验室:设置图形标题和坐标轴标签。
  • 最小化主题 和 主题设置图表的样式和文字大小。

这段代码演示了使用 R 可视化方法从 Alpha Vantage API 获取数据、分析数据并生成韩元汇率图表的过程。 请注意,生成的图表中的日期有些偏差,但这可能是时区造成的,我会再做一些研究,并将其修改为与您的本地时间一致)。

类似文章