ANÁLISE E ESCOLHA DA SEMANA

 UNIVERSIDADE FEDERAL DA PARAÍBA

Autor

Natan Henrique Alves

Data de Publicação

25 de maio de 2024

Escolhas para a Semana

Foram feitos dois relatórios de forma separada e depois foram unidos em um só docuemtno.

Tentei avaliar os cíclos da soja e do Boi Gordo

  • Boi Gordo

Compra, preço de entrada 183,93

  • Soja

Compra, preço de entrada 27,49

obs : seria interessante comprar soja após o rompimento da resistência.

1. Soja

Este relatório está sendo elaborado com o objetivo de entender a trajetória futura dos preços Futuros da Soja. Para isso, foram utilizados os preços spot e futuros mensais e diários. Os preços mensais foram usados para entender em que momento do ciclo da Soja nos encontramos, enquanto os preços diários foram utilizados para identificar a tendência atual do mercado, além de analisar como o preço futuro está se comportando em relação ao preço spot.

2. Preços Spot e Futuro

A tabela abaixo apresenta os preços que serão utilizados na análise mensal, a partir dos quais serão criados os gráficos e a decomposição, tanto para os preços futuros quanto para os preços spot. Com base nisso, determinaremos o ciclo da Soja.

Código
setwd("/cloud/project")
library(readxl)
library(tidyverse)
library(deflateBR)
library(knitr)
library(forecast)

preco <- readxl::read_excel("SojaM.xlsx")

kable(head(preco), format = "markdown")
Data spotR SpotD cabio FuturoD FuturoR
2011-02-01 51.39 30.80 1.668506 29.84 49.78823
2011-03-01 49.54 29.86 1.659076 30.90 51.26544
2011-04-01 47.19 29.76 1.585686 30.40 48.20484
2011-05-01 47.83 29.66 1.612610 30.55 49.26522
2011-06-01 47.88 30.16 1.587533 29.75 47.22911
2011-07-01 48.50 31.03 1.563003 31.09 48.59378
Código
soja <- ts(preco$spotR, frequency = 12, start = c(2011,02,01), end = c(2024,05,01))
sojaF <- ts(preco$FuturoR, frequency = 12, start = c(2011,02,01), end = c(2024,05,01))


times = seq(as.Date("2011/2/1"), by = "month", length.out = length(soja))

spot <- ts(preco$spotR, frequency = 12, start = c(2011,02,01), end = c(2024,05,01)) |> 
  deflate(nominal_dates = times, real_date = "04/2024", index = "igpm")

futuro <- ts(preco$FuturoR, frequency = 12, start = c(2011,02,01), end = c(2024,05,01)) |>
  deflate(nominal_dates = times, real_date = "04/2024", index = "igpm")

plot(spot, main = "Preço Spot da Soja", col = "blue")

Código
plot(futuro, main = "Preço Futuro da Soja", col = "red")

Código
ts.plot(spot, futuro, col = c("blue", "red"), lty = 1:2, gpars = list(xlab = "Ano", ylab = "Índice", main = "Spot x Futuro"))

Código
hist(spot, col = "blue",breaks = 15)

Código
hist(futuro, col = "red",breaks = 15)

Com os valores já deflacionados, foram feitos os gráficos de cada série separadamente. Em seguida, elas foram unidas para determinar seu comportamento ao longo dos últimos anos. A decomposição foi realizada utilizando apenas o filtro HP. A tendência foi removida e a partir dela foi feita a elaboração do ciclo.

Os histogramas foram criados para analisar a distribuição dos preços. Além disso, também foi realizado um teste de sazonalidade, o teste de OCSB, cuja hipótese nula é a ausência de sazonalidade na série, com um nível de significância fixado em 5%.

3. Decomposição com filtro HP

Código
library(hpfilter)
library(mFilter)

hp_spot <- hpfilter(spot)
hiatoBoi <- spot - hp_spot$trend
plot(hiatoBoi, col = "blue", main = "HP Spot"); abline(h = 0)

Código
hp_futuro <- hpfilter(futuro)
hiatoBez <- futuro - hp_futuro$trend
plot(hiatoBez, col = "red", main = "HP Futuro"); abline(h = 0)

4. Preços Diários

Código
preco1 <- readxl::read_excel("SojaD.xlsx")

kable(head(preco1), format = "markdown")
Data SpotR À vista US$ Último cambio FuturoR
2024-03-01 115.94 23.41 25.38 4.952584 125.6966
2024-03-04 117.72 23.80 25.46 4.946218 125.9307
2024-03-05 117.88 23.79 25.33 4.955023 125.5107
2024-03-06 117.66 23.79 25.31 4.945775 125.1776
2024-03-07 119.50 24.21 25.71 4.935977 126.9040
2024-03-08 120.87 24.27 26.10 4.980222 129.9838
Código
sojad <- ts(preco1$SpotR, frequency = 252, start = c(2024,03,01))
sojaFd <- ts(preco1$FuturoR, frequency = 252, start = c(2024,03,01))

plot(sojad, main = "Preço Spot da Soja", col = "blue")

Código
plot(sojaFd, main = "Preço Futuro da Soja", col = "red")

Código
ts.plot(sojad, sojaFd, col = c("blue", "red"), lty = 1:2, gpars = list(xlab = "Ano", ylab = "", main = "Spot x Futuro"))

Código
hist(sojad, col = "blue", breaks = 15)

Código
hist(sojaFd, col ="red", breaks = 15)

5. Testando o Trigo como Bem substituto

A partir dos preços que foram divulgados pelo Cepea será testado a hipotese de que o trigo possa ser um bem substituto para a soja. Sera feita a comparação entre a evolução dos preços do Trigo e da Soja, caso a relação seja positiva, isto é, um aumento nos preços da soja levaria os processadores aprocurarem o trigo, o que por sua vez causaria um aumento nos preços do trigo. Para testar essa hipotese será feita uma análise gráfica e também uma regressão dos preços (que serão transformados em índice).

Código
preco2 <- readxl::read_excel("TrigoSpot.xlsx")

kable(head(preco2), format = "markdown")
Data SpotR
2010-01-01 436.63
2010-02-01 427.43
2010-03-01 423.91
2010-04-01 416.97
2010-05-01 414.76
2010-06-01 414.62
Código
times1 = seq(as.Date("2010/1/1"), by = "month", length.out = 173)

Trigo <- ts(preco2$SpotR, frequency = 12, start = c(2010,01,01), end = c(2024,05,01)) |> 
  deflate(nominal_dates = times1, real_date = "04/2024", index = "igpm")

Trigo1 <- Trigo/Trigo[1]
spot1 <- spot/spot[1]

ts.plot(spot1, Trigo1, col = c("blue", "purple1"), lty = 1:2, gpars = list(xlab = "Ano", ylab = "Índice", main = "Spot(Soja) x Spot(Trigo)"))

Código
hp_futuro <- hpfilter(Trigo)
hiatoBez <- Trigo - hp_futuro$trend
plot(hiatoBez, col = "purple1", main = "HP Spot Trigo"); abline(h = 0)

Código
regre <- lm(spot1[2:174]~Trigo1)
regre

Call:
lm(formula = spot1[2:174] ~ Trigo1)

Coefficients:
(Intercept)       Trigo1  
     0.9692       0.1598  

Com a avaliação feita, a partir das ferramentas que foram usadas, pode-se concluir que estes são bens substitutos. Sendo assim, podemos analisar agora a trajetória dos preços diarios para saber se existe alguma variação nos preços do trigo que possam influenciar os preços da soja.

Código
preco3 <- readxl::read_excel("TrigoD.xlsx")

kable(head(preco3), format = "markdown")
Data À vista R$
2024-03-01 1255.26
2024-03-04 1247.32
2024-03-05 1246.62
2024-03-06 1238.47
2024-03-07 1239.42
2024-03-08 1239.78
Código
Trigo3 <- ts(preco3$`À vista R$`, frequency = 252, start = c(2024,03,01))

plot(Trigo3, main = "Preço Spot diário do Trigo (Cepea)", col = "purple1")

Código
soja3 <- sojad/sojad[1]
trigo3 <- Trigo3/Trigo3[1]


ts.plot(soja3, trigo3, col = c("blue", "purple1"), lty = 1:2, gpars = list(xlab = "Ano", ylab = "Índice", main = "Spot(Soja) x Spot(Trigo), preços"))

Graficamente, é possivel concluir que a taxa de crescimento do preço da soja foi maior em um primeiro momento e, levando em conta que estes são bens substitutos, essa mior taxa de crescimento foi um dos fatores que fez aumentar a demanda por Trigo.

Nesse momento a taxa média de crescimento do trigo é maior do que o da soja, o que por sua vez, pode indicar uma substituição da demanda de trigo por uma maior demanda em soja.

6. Conclusão

Como foi mostrado no primeiro gráfico, os preços da soja apresentam uma tendência de alta atualmente. Além disso, o ciclo calculado com o filtro HP mostra que os preços estão em patamares considerados baixos. Porém, quando o histograma é analisado, fica claro que os preços da soja tendem a se acumular entre 120 e 150. Sendo assim, existe margem para mais aumentos, porém é importante ficar atento aos sinais de reversão. Por esse motivo, é preferível esperar algum sinal de confirmação, como por exemplo o rompimento do preço de resistência (27,49) que foi exposto no primeiro gráfico.

7. Cíclo do Boi Gordo

O ciclo da pecuária é um processo recorrente de expansão e contração na produção de gado, influenciado principalmente pela oferta de fêmeas e bezerros. Durante a fase de expansão, quando os preços da carne bovina são altos, os pecuaristas tendem a reter mais fêmeas para reprodução, aumentando assim a produção de bezerros. Esse aumento na oferta de bezerros eventualmente resulta em um maior número de animais prontos para abate no futuro, o que, com o tempo, aumenta a oferta de carne no mercado.

Conforme a oferta de carne aumenta, os preços tendem a cair, levando a uma fase de contração. Nessa fase, devido aos preços mais baixos e à menor rentabilidade, os pecuaristas vendem mais fêmeas para abate em vez de mantê-las para reprodução, o que reduz a produção de bezerros. Esse processo de diminuição da oferta de bezerros eventualmente resulta em uma menor oferta de carne bovina no mercado, o que, com o tempo, pode levar a um aumento nos preços e iniciar novamente o ciclo de expansão. Assim, a dinâmica da oferta de fêmeas e bezerros é crucial para entender o ciclo da pecuária e suas implicações no mercado de carne bovina. A imagem abaixo ilutra muito bem essa dinâmica.

Cíclo

8. Preços do Boi e Bezerro

Para fazer essa análise, será utilizada a série histórica dos preços do Boi Gordo e do Bezerro, além de notícias e relatórios divulgados pela Cepea e Conab. Essas notícias serão coletadas do site investing.com e do “Notícias Agrícolas”. O intervalo escolhido para a série inicia em janeiro de 2010 e finaliza em maio de 2024.

Os preços que estão sendo utilizados são aqueles apresentados pelo Cepea e representam os preços à vista, nominais. Durante o relatório, será realizado o processo de deflação dos preços pelo IGP-M, através do pacote “deflatBr”. A tabela abaixo apresenta os dados nominais, já os gráficos foram feitos com os dados já deflacionados.

Código
setwd("/cloud/project")
library(readxl)
library(tidyverse)
library(deflateBR)
library(knitr)

preco <- readxl::read_excel("Boi_Bezerro.xlsx")

kable(head(preco), format = "markdown")
Data Boi Bezerro
2010-01-01 75.70 601.17
2010-02-01 77.03 608.98
2010-03-01 79.03 649.59
2010-04-01 82.33 705.26
2010-05-01 80.81 722.07
2010-06-01 82.16 722.78
Código
boi <- ts(preco$Boi, frequency = 12, start = c(2010,01,01), end = c(2024,05,01))
bez <- ts(preco$Bezerro, frequency = 12, start = c(2010,01,01), end = c(2024,05,01))

times = seq(as.Date("2010/1/1"), by = "month", length.out = length(boi))

boi <- ts(preco$Boi, frequency = 12, start = c(2010,01,01), end = c(2024,05,01)) |> 
  deflate(nominal_dates = times, real_date = "04/2024", index = "igpm")

bez <- ts(preco$Bezerro, frequency = 12, start = c(2010,01,01), end = c(2024,05,01)) |> 
  deflate(nominal_dates = times, real_date = "04/2024", index = "igpm")
  


plot(boi, main = "Preço do Boi Gordo", col = "blue")

Código
plot(bez, main = "Preço do Bezerro", col = "red")

Código
boiii <- boi/boi[1]
bezzz <- bez/bez[1]

ts.plot(boiii, bezzz, col = c("blue", "red"), lty = 1:2, gpars = list(xlab = "Ano", ylab = "Índice", main = "Boi x Bezerro"))

Este último gráfico foi feito como uma tentativa de avaliar se é possível usar a variação do preço do bezerro para antecipar os preços do boi gordo. É notório que existe uma correlação positiva entre eles; porém, são poucos os momentos em que podemos identificar graficamente que houve, de fato, uma antecipação dos preços do boi gordo. na verdade, o que parece ocorrer é o oposto: o boi gordo parece antecipar os preços do bezerro. Ou seja, a causalidade ocorre do boi gordo para o bezerro.

9. Decomposição da Série

A decomposição foi feita tanto da forma clássica quanto através do filtro HP.

Código
decomp_mult_boi <- decompose(boi, type = "multiplicative")
cicloBoi <- boi - decomp_mult_boi$trend
decomp_mult_bez <- decompose(bez, type = "multiplicative")
cicloBez <- bez - decomp_mult_bez$trend

#plot

plot(cicloBoi, col ="blue", main = "Cíclo do Boi");abline(h = 0)

Código
plot(cicloBez, col = "red", main = "Cíclo do Bezerro");abline(h = 0)

Código
library(hpfilter)
library(mFilter)

hp_boi <- hpfilter(boi)
hiatoBoi <- boi - hp_boi$trend
plot(hiatoBoi, col = "blue", main = "HP Boi"); abline(h = 0)

Código
hp_bez <- hpfilter(bez)
hiatoBez <- bez - hp_bez$trend
plot(hiatoBez, col = "red", main = "HP Bezerro"); abline(h = 0)

Através do processo de decomposição, é possível isolar a tendência. A diferença entre a tendência e o preço pode ser interpretada como o ciclo.

Tanto a decomposição do preço do Boi Gordo quanto a do Bezerro revelam que o atual momento da pecuária é de um ciclo de baixa, onde os produtores começam a abater fêmeas para reduzir a oferta de bezerros, o que, por sua vez, faria os preços voltarem a subir no mercado. Esse processo de abatimento de fêmeas também aumenta a oferta de carne no mercado, competindo com a carne do Boi Gordo, o que pressiona ainda mais os preços. No entanto, este é um efeito temporário que logo será refletido na menor oferta de bezerros, resultando na valorização do preço do Boi Gordo.

10. Cotação do Preço Futuro

10.1 Preço Futuro vs Spot

Código
Futuro <- readxl::read_excel("Boi_Futuro.xlsx")

boiF <- ts(Futuro$Último, frequency = 12, start = c(2010,01,01), end = c(2024,05,01)) |> 
  deflate(nominal_dates = times, real_date = "04/2024", index = "igpm")

ts.plot(boi, boiF, col = c("blue", "green"), lty = 1:2, gpars = list(xlab = "Ano", ylab = "", main = "Spot x Futuro"))

Código
ts.plot(bezzz, (boiF/boiF[1]), col = c("red", "green"), lty = 1:2, gpars = list(xlab = "Ano", ylab = "", main = "Bezerro x Futuro"))

10.2 Díario

Código
diario <- readxl::read_excel("diario.xlsx")

Dboi <- ts(diario$Spotd, frequency =  252, start = c(2024,04,01))
Dbez <- ts(diario$Beze, frequency =  252, start = c(2024,04,01))
DboiF<- ts(diario$Futurod, frequency =  252, start = c(2024,04,01))

ts.plot(Dboi, DboiF, col = c("blue", "green"), lty = 1:2, gpars = list(xlab = "Ano", ylab = "", main = "Spot x Futuro diário"))

Código
Indboi <- Dboi/Dboi[1]
Indbez <- Dbez/Dbez[1]
IndboiF <- DboiF/DboiF[1]

ts.plot(Indboi, Indbez, col = c("blue", "red"), lty = 1:2, gpars = list(xlab = "Ano", ylab = "", main = "Boi Gordo x Bezerro"))

Código
ts.plot(IndboiF, Indbez, col = c("green", "red"), lty = 1:2, gpars = list(xlab = "Ano", ylab = "", main = "Boi Gordo Futuro x Bezerro"))

11. Conclusão

Pensando na relação entre o preço do bezerro e o preço do boi gordo, podemos considerar que existe uma expectativa de aumento nos preços do boi gordo, já que as últimas observações diárias do preço do bezerro foram de preços crescentes. No entanto, é importante ter em mente que o aumento dos preços do bezerro não necessariamente impactará de forma imediata o preço do boi gordo.

O aumento nos preços do bezerro ter impacto nos preços futuros do boi gordo, indicando que os agentes já podem estar identificando alguns sinais de reversão dos preços através dos preços do bezerro, o que poderia indicar o início de uma reversão do cíclo pecuário. O ponto de interesse em relação aos preços futuros do Boi Gordo é determinar se já atingimos o ponto mais baixo, ou se ainda há pressão para uma redução adicional nos preços Spot e Futuro.