Spread do preço da carne de frango congelada e resfriada.
Depois de assistir um vídeo no Instagram pela @tradingcomdados sobre o spread de ações ordinárias e preferenciais, decidir aprimorar essa análise remontando aos valores da carne de frango. A carne de frango ela é comercializada a partir de duas maneiras: O frango Congelado ou Resfriado. Porém, antes de entrar nesse assunto, vamos observar o que a trading com dados passou no seu vídeo.
Trading com Dados
No vídeo da trading com dados, foi repassado a ideia de medir o spread entre as ações da Petrobrás, sendo elas a PETR3/PETR4 e com essa medição poderia ser inferido as operações de long e short nos papeis. O Spread refere-se à diferença entre o preço de compra e venda de uma ação, título ou transação monetária. E para calcular essa diferença entre PETR3 e PETR4 devemos apenas dividir os seus valores de fechamento.
O que são operações de long e short?
As operações Long & Short são uma estratégia de investimento utilizada em mercados financeiros, que consiste em comprar (Long) e vender (Short) ativos simultaneamente. O objetivo é lucrar com a diferença entre os preços de compra e venda, independentemente da direção em que o mercado se mover. Na prática, o investidor compra um ativo que ele acredita que vai se valorizar (Long) e, ao mesmo tempo, vende um ativo que ele espera que caia de preço (Short). Dessa forma, ele pode obter lucro tanto em um mercado em alta quanto em um mercado em baixa, dependendo da diferença de preços entre os ativos comprados e vendidos. Essa estratégia é comum em mercados financeiros como ações, futuros, opções e moedas. No entanto, a operação Long & Short exige um conhecimento avançado de análise de mercado e riscos, já que envolve posições em ambos os lados do mercado e pode ser arriscada se não for bem executada.
Outro artigo importante para o seu entendimento é do Fábio Figueiredo onde ele explica bem alguns tipos de long e short:
Lembrando que esse artigo aqui visa somente elucidar novas maneiras de olhar o mercado, principalmente o mercado agropecuário e não deve ser utilizado para tomadas de decisões precipitadas e sem estudo prévio.
Mão na Massa!
Para pegarmos os dados da Petrobrás, foi utilizado no vídeo o banco de dados do Yahoo Finance, Também utilizamos as principais bibliotecas para análise de dados: Numpy, Pandas, matplotlib e a biblioteca mplfinance.
Collecting mplfinance
Downloading mplfinance-0.12.9b7-py3-none-any.whl (73 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 73.1/73.1 KB 15.7 MB/s eta 0:00:00
Requirement already satisfied: matplotlib in /shared-libs/python3.9/py/lib/python3.9/site-packages (from mplfinance) (3.6.0)
Requirement already satisfied: pandas in /shared-libs/python3.9/py/lib/python3.9/site-packages (from mplfinance) (1.2.5)
Requirement already satisfied: contourpy>=1.0.1 in /shared-libs/python3.9/py/lib/python3.9/site-packages (from matplotlib->mplfinance) (1.0.5)
Requirement already satisfied: packaging>=20.0 in /shared-libs/python3.9/py-core/lib/python3.9/site-packages (from matplotlib->mplfinance) (21.3)
Requirement already satisfied: numpy>=1.19 in /shared-libs/python3.9/py/lib/python3.9/site-packages (from matplotlib->mplfinance) (1.23.4)
Requirement already satisfied: pyparsing>=2.2.1 in /shared-libs/python3.9/py-core/lib/python3.9/site-packages (from matplotlib->mplfinance) (3.0.9)
Requirement already satisfied: python-dateutil>=2.7 in /shared-libs/python3.9/py-core/lib/python3.9/site-packages (from matplotlib->mplfinance) (2.8.2)
Requirement already satisfied: pillow>=6.2.0 in /shared-libs/python3.9/py/lib/python3.9/site-packages (from matplotlib->mplfinance) (9.2.0)
Requirement already satisfied: cycler>=0.10 in /shared-libs/python3.9/py/lib/python3.9/site-packages (from matplotlib->mplfinance) (0.11.0)
Requirement already satisfied: fonttools>=4.22.0 in /shared-libs/python3.9/py/lib/python3.9/site-packages (from matplotlib->mplfinance) (4.37.4)
Requirement already satisfied: kiwisolver>=1.0.1 in /shared-libs/python3.9/py/lib/python3.9/site-packages (from matplotlib->mplfinance) (1.4.4)
Requirement already satisfied: pytz>=2017.3 in /shared-libs/python3.9/py/lib/python3.9/site-packages (from pandas->mplfinance) (2022.5)
Requirement already satisfied: six>=1.5 in /shared-libs/python3.9/py-core/lib/python3.9/site-packages (from python-dateutil>=2.7->matplotlib->mplfinance) (1.16.0)
Installing collected packages: mplfinance
Successfully installed mplfinance-0.12.9b7
WARNING: You are using pip version 22.0.4; however, version 23.1.2 is available.
You should consider upgrading via the '/root/venv/bin/python -m pip install --upgrade pip' command.
Collecting yfinance
Downloading yfinance-0.2.18-py2.py3-none-any.whl (60 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 60.3/60.3 KB 16.8 MB/s eta 0:00:00
Collecting appdirs>=1.4.4
Downloading appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)
Requirement already satisfied: lxml>=4.9.1 in /shared-libs/python3.9/py/lib/python3.9/site-packages (from yfinance) (4.9.1)
Collecting frozendict>=2.3.4
Downloading frozendict-2.3.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (114 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 114.8/114.8 KB 23.2 MB/s eta 0:00:00
Requirement already satisfied: beautifulsoup4>=4.11.1 in /shared-libs/python3.9/py-core/lib/python3.9/site-packages (from yfinance) (4.11.1)
Collecting html5lib>=1.1
Downloading html5lib-1.1-py2.py3-none-any.whl (112 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 112.2/112.2 KB 18.6 MB/s eta 0:00:00
Requirement already satisfied: cryptography>=3.3.2 in /shared-libs/python3.9/py/lib/python3.9/site-packages (from yfinance) (36.0.2)
Requirement already satisfied: requests>=2.26 in /shared-libs/python3.9/py/lib/python3.9/site-packages (from yfinance) (2.28.1)
Requirement already satisfied: pytz>=2022.5 in /shared-libs/python3.9/py/lib/python3.9/site-packages (from yfinance) (2022.5)
Collecting multitasking>=0.0.7
Downloading multitasking-0.0.11-py3-none-any.whl (8.5 kB)
Collecting pandas>=1.3.0
Downloading pandas-2.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 12.4/12.4 MB 122.9 MB/s eta 0:00:00
Requirement already satisfied: numpy>=1.16.5 in /shared-libs/python3.9/py/lib/python3.9/site-packages (from yfinance) (1.23.4)
Requirement already satisfied: soupsieve>1.2 in /shared-libs/python3.9/py-core/lib/python3.9/site-packages (from beautifulsoup4>=4.11.1->yfinance) (2.3.2.post1)
Requirement already satisfied: cffi>=1.12 in /shared-libs/python3.9/py-core/lib/python3.9/site-packages (from cryptography>=3.3.2->yfinance) (1.15.1)
Requirement already satisfied: six>=1.9 in /shared-libs/python3.9/py-core/lib/python3.9/site-packages (from html5lib>=1.1->yfinance) (1.16.0)
Requirement already satisfied: webencodings in /shared-libs/python3.9/py-core/lib/python3.9/site-packages (from html5lib>=1.1->yfinance) (0.5.1)
Requirement already satisfied: python-dateutil>=2.8.2 in /shared-libs/python3.9/py-core/lib/python3.9/site-packages (from pandas>=1.3.0->yfinance) (2.8.2)
Requirement already satisfied: tzdata>=2022.1 in /shared-libs/python3.9/py/lib/python3.9/site-packages (from pandas>=1.3.0->yfinance) (2022.5)
Requirement already satisfied: idna<4,>=2.5 in /shared-libs/python3.9/py-core/lib/python3.9/site-packages (from requests>=2.26->yfinance) (3.4)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in /shared-libs/python3.9/py/lib/python3.9/site-packages (from requests>=2.26->yfinance) (1.26.12)
Requirement already satisfied: charset-normalizer<3,>=2 in /shared-libs/python3.9/py-core/lib/python3.9/site-packages (from requests>=2.26->yfinance) (2.1.1)
Requirement already satisfied: certifi>=2017.4.17 in /shared-libs/python3.9/py/lib/python3.9/site-packages (from requests>=2.26->yfinance) (2022.9.24)
Requirement already satisfied: pycparser in /shared-libs/python3.9/py-core/lib/python3.9/site-packages (from cffi>=1.12->cryptography>=3.3.2->yfinance) (2.21)
Installing collected packages: multitasking, appdirs, html5lib, frozendict, pandas, yfinance
Attempting uninstall: pandas
Found existing installation: pandas 1.2.5
Not uninstalling pandas at /shared-libs/python3.9/py/lib/python3.9/site-packages, outside environment /root/venv
Can't uninstall 'pandas'. No files were found to uninstall.
Successfully installed appdirs-1.4.4 frozendict-2.3.8 html5lib-1.1 multitasking-0.0.11 pandas-2.0.1 yfinance-0.2.18
WARNING: You are using pip version 22.0.4; however, version 23.1.2 is available.
You should consider upgrading via the '/root/venv/bin/python -m pip install --upgrade pip' command.
[*********************100%***********************] 1 of 1 completed
[*********************100%***********************] 1 of 1 completed
Após a instalação dos dados do Yahoo Finance, iremos criar dois objetos para a sua manipulação e obter os dados financeiros.
O método merge() é utilizado para juntar dois ou mais DataFrames com base em uma ou mais colunas em comum. No exemplo acima, utilizamos o método merge() para juntar os DataFrames petr3_hist e petr4_hist com base no índice dos DataFrames (coluna 'Date') e unimos as colunas 'PETR3' e 'PETR4' em um único DataFrame chamado fechamentos. O parâmetro how='outer' indica que queremos fazer um join externo, ou seja, manter todas as linhas dos dois DataFrames mesmo que haja linhas com valores ausentes em um dos DataFrames. Os parâmetros left_index=True e right_index=True indicam que queremos utilizar o índice dos DataFrames como chave de junção.
PETR3 PETR4
Date
2000-01-03 00:00:00-02:00 1.665618 1.666925
2000-01-04 00:00:00-02:00 1.572139 1.574712
2000-01-05 00:00:00-02:00 1.593384 1.558823
2000-01-06 00:00:00-02:00 1.580637 1.553432
2000-01-07 00:00:00-02:00 1.593384 1.560526
Após obter os fechamentos, vamos tirar a razão das ações, ou seja, dividindo os preço de fechamentos de PETR3 por PETR4:
Para observamos os valores onde há um certo limite nessa razão, devemos usar os desvios padrões desses novos dados e assim obter, principalmente os valores que estão nos seus "extremos" que consequentemente poderão retornar à média.
Observando esse gráfico podemos até aumentar o desvio padrão e abranger mais os valores extremos.
Então, como podemos observar, o spread em 1.5 de desvio padrão, visualmente obteve uma melhor ideia de de poder entra em operações long e short. Mas ainda teríamos que montar um backtesting com as possíveis operações nesses ativos e que ficará para outro momento.
Agora vamos usar essa mesma ideia para a relação do preço do frango congelado e do frango resfriado
De inicio vamos partir do pressuposto que a carne de frango é um ativo da mesma forma que as ações da Petrobrás e que ela possui também as ações ordinárias e preferências. Para isso vamos atribuir o frango congelado como uma ação ordinária e frango resfriado como uma ação preferencial. Os dados retirados vieram do site: https://www.cepea.esalq.usp.br/br onde são armazenados os dados das principais commodities brasileiras com o intuito de ajudar não só os estudantes, mas também os produtores nas tomadas de decisões.
Os dados foram baixados separadamente e juntados no Excel por questão de praticidade.
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 788 entries, 0 to 787
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Data 788 non-null object
1 Frango_con 788 non-null float64
2 Frango_resf. 788 non-null float64
dtypes: float64(2), object(1)
memory usage: 18.6+ KB
None
Data Frango_con Frango_resf.
0 02/01/2020 5.38 5.35
1 03/01/2020 5.38 5.35
2 06/01/2020 5.45 5.38
3 07/01/2020 5.45 5.38
4 08/01/2020 5.50 5.41
Frango_con Frango_resf.
count 788.000000 788.000000
mean 6.605431 6.653553
std 1.252179 1.305892
min 3.890000 3.840000
25% 5.840000 5.857500
50% 6.675000 6.710000
75% 7.812500 7.942500
max 8.550000 8.600000
Long e Short na carne de frango?
Agora vamos fazer aquele mesmo calculo que foi usado nas ações da Petrobrás
Com isso, partindo como sempre da mesma ideia do vídeo, vamos agora plotar os desvios padrões na razão obtida da carne de frango congelada e resfriada.
Podemos também aumentar esse desvio padrão para 1.5:
Conclusão:
Ao analisar essa ferramenta, percebemos que técnicas utilizadas para prever mudanças no valor de ativos financeiros podem ser aplicadas no setor agropecuário. Por exemplo, empresas que vendem carne de frango podem usar estratégias de Long & Short para melhorar a comercialização de seus produtos e supermercados podem aproveitar essas técnicas para identificar os momentos ideais para comprar carne a preços mais acessíveis e obter melhores margens de lucro.