Código
library(yfR)
data_r = yf_get(
  c('PETR4.SA', 'VALE3.SA', '^BVSP'),
  first_date = '2007-01-01',
  last_date = Sys.Date(),
  bench_ticker = "^BVSP",
  type_return = "log",
  freq_data = "daily",
  do_complete_data = TRUE
)
data_r

ts.plot(data_r$ret_closing_prices[data_r$ticker == "PETR4.SA"])
Código
acf(na.omit(data_r$ret_closing_prices[data_r$ticker == "PETR4.SA"]))
Código
acf(na.omit(data_r$ret_closing_prices[data_r$ticker == "PETR4.SA"])^2))
Código
import yfinance as yf

ativos = ["PETR4.SA", "VALE3.SA", "^BVSP"]
start_date = "2007-01-01"
# Baixar dados
data_py = yf.download(ativos, start=start_date, interval="1d", auto_adjust=False)
data_py = data_py.loc[:, (["Adj Close"], ativos)]
data_py
Código
import matplotlib.pyplot as plt
import numpy as np
# log retorno dos preços ajustados
data_py_ret = data_py.pct_change().apply(lambda x: np.log(1 + x))
plt.plot(data_py_ret["Adj Close"]["PETR4.SA"])
Código
from statsmodels.graphics.tsaplots import plot_acf

plot_acf(data_py_ret["Adj Close"]["PETR4.SA"].dropna(), lags=40)

# quadratic return
plot_acf(data_py_ret["Adj Close"]["PETR4.SA"].dropna() ** 2, lags=40)
De volta ao topo