Ciclo do Boi Gordo

 UNIVERSIDADE FEDERAL DA PARAÍBA

Autor

Natan Henrique Alves

Data de Publicação

14 de junho de 2024

Acompanhamento do Ciclo Pecuário e a Dinâmica de Preços

Objetivo

O objetivo deste relatório não é entender o ciclo, pois isso já foi feito em relatórios anteriores, mas sim compreender o atual momento do ciclo e acompanhar sua virada. Nesse sentido, o objetivo é entender o comportamento dos preços spot do Boi Gordo e do bezerro (reposição) e, dessa forma, tentar gerar expectativas para os preços futuros.

Apresentação dos Dados Mensais

Código
library(tidyverse)
library(readxl)
library(knitr)
library(ggthemes)

mensal <- read_excel("Valores_mensais.xlsx")
diario <- read_excel("Valores_diarios.xlsx")

kable(head(mensal))
Data Spot_bezerro Valor Futuro
2014-01-01 869.07 114.17 114.61
2014-02-01 891.35 118.05 120.21
2014-03-01 952.15 124.65 126.52
2014-04-01 1011.83 124.44 124.00
2014-05-01 1045.67 121.88 120.56
2014-06-01 1037.99 121.70 121.37
Código
ggplot(data = mensal,
  aes(x = Data, y = Spot_bezerro )
)+
  geom_line()+
  labs(title = "Preço Spot Bezerro",
       x = "Data",
       y = "")+
  theme_economist_white()

Código
ggplot(data = mensal,
  aes(x = Data, y = Valor )
)+
  geom_line()+
  labs(title = "Preço Spot Boi G",
       x = "Data",
       y = "")+
  theme_economist_white()

Código
ggplot(data = mensal,
  aes(x = Data, y = Futuro )
)+
  geom_line()+
  labs(title = "Preço Futuro Boi G",
       x = "Data",
       y = "")+
  theme_economist_white()

Apresentação dos Dados Diarios

Código
kable(head(diario))
Data Spot_bezerro Spot_boi Último
2024-01-02 2060.00 255.50 247.0
2024-01-03 2019.00 250.15 247.5
2024-01-04 2019.00 251.75 244.1
2024-01-05 2049.37 251.45 246.1
2024-01-08 2072.18 252.65 248.9
2024-01-09 2108.92 249.05 248.1
Código
ggplot(data = diario,
  aes(x = Data, y = Spot_bezerro )
)+
  geom_line()+
  labs(title = "Preço Spot Bezerro",
       x = "Data",
       y = "")+
  theme_economist_white()+
  geom_smooth(method = "lm", se = FALSE, color = "blue")

Código
ggplot(data = diario,
  aes(x = Data, y = Spot_boi )
)+
  geom_line()+
  labs(title = "Preço Spot Boi G",
       x = "Data",
       y = "")+
  theme_economist_white()+
  geom_smooth(method = "lm", se = FALSE, color = "blue")

Código
ggplot(data = diario,
  aes(x = Data, y = `Último` )
)+
  geom_line()+
  labs(title = "Preço Futuro Boi G",
       x = "Data",
       y = "")+
  theme_economist_white()+
  geom_smooth(method = "lm", se = FALSE, color = "blue")

O alongamento das escalas de abates de fêmeas parece começar a ter seu impacto refletido no preço do bezerro, que vem aumentando de forma mais consistente há alguns meses. Porém, isso ainda não parece ter surtido efeito no preço Spot no sentido de gerar uma inversão na tendência baixista. No entanto, segundo alguns especialistas consultados pelo portal “Notícias Agrícolas”, é natural que haja uma demora na resposta dos preços Spot. Também foi apontado que, a partir do final do mês de julho, já será possível perceber esse movimento de reversão.

Ao gerar gráficos com os preços diários, é perceptível a divergência entre a tendência apresentada no valor do boi gordo, tanto Spot quanto futuro, e a tendência apresentada pelo animal de reposição (bezerro). Apesar disso, nos últimos dias, os preços futuros parecem estar começando a antecipar o aumento nos preços Spot, em detrimento do maior controle sobre a oferta. Não é possível afirmar que isso sinalize um indício de reversão de tendência, porém, é nítido que o mercado começa a reagir aos impactos que o abatimento de fêmeas terá para a oferta futura, principalmente em relação ao ano de 2025.

Série Deflacionada

Código
library(deflateBR)
times = seq(as.Date("2014/1/1"), by = "month", length.out = length(mensal$Data))
#criando serie temporal

bezerro <- ts(mensal$Spot_bezerro, frequency = 12, start = c(2014,01,01), end = c(2024,06,01)) |> 
  deflate( nominal_dates = times, real_date = '05/2024', index = 'igpdi')

boiS <- ts(mensal$Valor, frequency = 12, start = c(2014,01,01),end = c(2024,06,01)) |> 
  deflate( nominal_dates = times, real_date = '05/2024', index = 'igpdi')

boiF <- ts(mensal$Futuro, frequency = 12, start = c(2014,01,01),end = c(2024,06,01)) |> 
  deflate( nominal_dates = times, real_date = '05/2024', index = 'igpdi')

plot(bezerro, main = "Preços do Bezerro Deflacionado",
     ylab = "",
     xlab = "Data")

Código
plot(boiS, main = "Preços Spot do Boi G Deflacionado",
     ylab = "",
     xlab = "Data")

Código
plot(boiF, main = "Preços Futuros do Boi G Deflacionado",
     xlab = "Data",
     ylab = "")

Decomposição da Série

A partir da decomposição da série, o objetivo é isolar o ciclo e, dessa forma, entender o momento atual do ciclo. A imagem abaixo apresenta o ciclo a partir do ponto de vista dos produtores e pode ser usada juntamente com o ciclo que foi calculado pela decomposição da série dos preços Spot e Futuro.

A diminuição da oferta de bezerros já começa a se refletir nos preços, que vêm apresentando tendência crescente há alguns meses. O próximo estágio do ciclo seria um aumento na retenção das fêmeas, como indicado na imagem abaixo. Além disso o número de femias abtidas já começou a reduzir nos últimos dias. Essa conclusão também pode ser confirmada com a análise do ciclo do preço do bezerro.

Código
library(mFilter)

boiFD <- hpfilter(boiF)
boiSD <- hpfilter(boiS)
bezeroD <- hpfilter(bezerro)

ciclo <- data.frame(boiFut = boiFD$cycle, 
                    boiSpot = boiSD$cycle,
                    bezerro = bezeroD$cycle,
                    data = mensal$Data)

ggplot(data = ciclo, aes(x = data, y = boiFut, color = "Fut"))+
  geom_line()+
  geom_line(aes(y = boiSpot, color = "Spot"))+
  labs(title = "Ciclo do Boi Gordo Spot e Futuro",
       x = "Data",
       y = "")+
   scale_color_manual(values = c("Fut" = "blue", "Spot" = "red"))+
  theme_economist_white()

Código
ggplot(data = ciclo, aes(x = data, y = bezerro, color = bezerro))+
  geom_line()+
  labs(title = "Ciclo do Bezerro",
       x = "Data",
       y = "")+
  theme_economist_white()

Tabela de Oferta e Demanda

Código
inform <- read_excel("BOI.xlsx")
kable(inform)
ANO 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024* Variação 24/23
REBANHO (1.000 cabeças) 158289.0 161416.0 163154.00 164621.00 169876.0 176389.0 185348.00 195551.00 204512.70 207156.70 205886.20 199752.01 202306.73 205307.95 209541.109 212815.300 211279.082 211764.300 212366.10 215220.5 218190.768 215003.578 213809.4 214690.0 217836.28200 224602.11200 234352.64900 238635.00000 242931.90000 0.0180062
PRODUÇÃO DE CARNE (1.000 t equiv. carcaça) 6186.9 5921.5 5794.30 6413.30 6579.2 6827.2 8173.10 8503.00 8386.30 9228.70 10183.80 10083.90 8834.60 8474.10 8782.465 8448.424 8751.654 9601.881 9106.48 8528.2 8715.749 8920.909 9214.6 8866.1 8492.70000 8328.50000 8673.70000 9516.70000 10003.50000 0.0511522
IMPORTAÇÃO (1.000 t equiv. carcaça) 150.1 135.0 101.77 62.75 76.7 42.3 73.98 66.17 56.15 53.50 27.70 32.02 31.92 41.29 40.840 44.820 60.140 57.100 76.80 59.3 63.900 56.900 47.2 49.7 62.72394 70.66634 80.60801 61.52316 62.45895 0.0152104
EXPORTAÇÃO (1.000 t equiv. carcaça) 248.7 305.4 395.20 575.58 598.0 838.3 985.95 1279.50 1715.50 1948.78 2194.38 2313.65 1989.66 1766.99 1701.470 1494.640 1684.380 2007.300 2057.50 1839.2 1825.060 1967.200 2194.4 2482.8 2690.90000 2478.20147 3018.03300 3029.81200 3504.20000 0.1565734
DISPONIBILIDADE INTERNA (1.000 t equiv. carcaça) 6088.3 5751.1 5500.87 5900.47 6057.9 6031.2 7261.13 7289.67 6726.95 7333.42 8017.12 7802.27 6876.86 6748.40 7121.835 6998.604 7127.414 7651.681 7125.78 6748.3 6954.589 7010.609 7067.4 6433.0 5864.52394 5920.96486 5736.27501 6548.41116 6561.75895 0.0020383

Evolução Gráfica dos Dados Presentados

Código
planilha <- read_excel("PLANILHA.xlsx")



ggplot(data = planilha, aes(x = ANO, y = `REBANHO (1.000 cabeças)`, fill = `REBANHO (1.000 cabeças)`)) +
  geom_bar(stat = "identity", position = "dodge") +
  labs(title = "Evolução do Bebanho", x = "Anos", y = "Cabeças de Gado ") +
  theme_minimal() 

Código
ggplot(data = planilha, aes(x = ANO, y = `PRODUCAO(MIL)`, fill = `PRODUCAO(MIL)`)) +
  geom_bar(stat = "identity", position = "dodge") +
  labs(title = "Produção", x = "Anos", y = "") +
  theme_minimal()

Código
ggplot(data = planilha, aes(x = ANO, y = `IMPORTACAO(MIL_T)`, fill = `IMPORTACAO(MIL_T)`)) +
  geom_bar(stat = "identity", position = "dodge") +
  labs(title = "Importação", x = "Anos", y = "") +
  theme_minimal()

Código
ggplot(data = planilha, aes(x = ANO, y = `EXPORTACAO(MIL_T)`, fill = `EXPORTACAO(MIL_T)`)) +
  geom_bar(stat = "identity", position = "dodge") +
  labs(title = "Exportação", x = "Anos", y = "") +
  theme_minimal()

Conclusão

Com os dados apresentados acima, é possível tirar algumas conclusões em relação às negociações dos preços futuros do BGIFUT. Como foi exposto, o ciclo pecuário está passando por um período de transição de “Baixo” para “Alto”. No entanto, isso não significa que a oferta esteja reduzindo, mas sim que ela está se estabilizando e, dessa forma, também estamos observando uma estabilização dos preços. Por esse motivo, é difícil definir se este é realmente um bom momento para entrar comprado.

Outro ponto importante é o volume recorde de exportações, que ajudou a segurar os preços. Além disso, houve um aumento na criação de empregos com carteira assinada no Brasil em 25,7% em relação ao mesmo período do ano passado. Esses dois fatores, unidos à inversão do ciclo, podem representar uma forte oportunidade em relação a operações especulativas.

Novas Escolhas e Resultados

Para as próximas semanas, as expectativas são de início de uma tendência de alta para o Boi Gordo. A mesma expectativa se aplica aos preços da soja; no entanto, o relatório só será concretizado na próxima semana.

  • Boi Gordo, compra no valor de 224,50 no dia 13/06/2024

O gráfico abaixo mostra o momento atual dos preços futuros. A média móvel de 8 e 80 dias foi usada como suporte e resistência. É possível notar que os preços se encontram em cima da média de 8 dias, mas ainda permanencem abaixo da média de 80.

Resultado

Metodologia de calculo :

Venda

\[ RV = Q((P1-P2)*T) \] Compra

\[ RC = Q((P2-P1)*T) \]

Onde RV reflete o resultado obtido pela operação de venda e RC é referente aos resultados de operações de compra. Q é a quantidade de contratos usados na operação, P1 é o preço de entrada e P2 é o preço de saída. Por fim, T é utilizado para caracterizar o tamanho de cada contrato. Por exemplo, um contrato de milho corresponde a 450 sacas de milho.

Código
# função de venda
venda <- function(var1, var2, var3) {
  resultado <- (var3*((var1-var2)*2))+0
  return(resultado)
}

# função de compra
compra <- function(var1, var2, var3) {
  resultado <- (var3*((var2-var1)*2))+0
  return(resultado)
}

soja <- venda(26.00, 25.85, 450)


boiG <- venda(222.55, 223.15, 330)


resF <- sum(soja , boiG)

resultado <- data.frame(Soja = soja, Boi = boiG, Resultado = resF)

knitr::kable(resultado,
             capition = "Última semana")
Soja Boi Resultado
135 -396 -261

Boi Gordo BM&F