A nomenclatura Éden do Traders foi criada pelo trader Stormer (Alexandre Wolwacz), para indicar quando ambas médias móveis exponenciais de 8 e 80 períodos estão apontando para a mesma direção.
Sendo assim, se as MMEs estiverem voltadas para cima, diz-se que o papel está no Éden dos Traders de compra, ao passo que se ambas estiverem viradas para baixo, o papel se encontra no Éden dos Traders de venda. Caso as médias estejam apontadas para direções contrárias, o ativo não está direcional.
Em outras palavras, o Éden dos Traders ajuda a avaliar a tendência de um ativo, e a tendência, por sua vez, é um grande aliado na análise técnica de um trader.
Quando falamos de análise técnica no mercado de ações, estamos nos referindo a um conjunto de ferramentas, como reconhecimento de padrões gráficos, indicadores e filtros, que facilitam a leitura gráfica de um ativo. Assim, somos capazes de estudar as melhores combinações entre essas ferramentas através dos backtests, buscando uma estratégia com boa taxa de retorno e baixo drawdown.
No artigo de hoje, aprenderemos a calcular quais ativos, dos 200 ativos mais líquidos da bolsa brasileira, se encontram no Éden dos Traders.
Como de costume, o primeiro passo é importar todas as bibliotecas necessárias para o nosso código:
# %%capture means we suppress the output
%%capture
import pandas as pd
import requests
!pip install yfinance
import yfinance as yf
import sqlalchemy
from sqlalchemy import create_engine
!pip install psycopg2-binary
import psycopg2
Em seguida, vamos realizar o web scraping dessa tabela do site Fundamentus, que ordena os ativos da bolsa brasileira por diversos critérios, dentre eles, sua liquidez em 2 meses.
Para isso utilizaremos a biblioteca request para fazer a requisição HTTP (mesma biblioteca que utilizamos no artigo Determinando as BDRs Mais Líquidas do Ibovespa Utilizando Python). A única diferença é que o site Fundamentus exige a especificação do User-Agent, que nada mais é do que fazer a identificação do navegador para o site.
O último passo do web scraping será ler a tabela html em um dataframe através da função read_html. Perceba que importaremos somente as colunas com os símbolos de cada papel e sua respectiva liquidez.
url = "https://www.fundamentus.com.br/resultado.php"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36"}
r = requests.get(url, headers=headers)
df = pd.read_html(r.text, decimal=",", thousands=".")[0][["Papel", "Liq.2meses"]]
df.head()
Papel | Liq.2meses | |
---|---|---|
0 | IVTT3 | 0.0 |
1 | PORP4 | 0.0 |
2 | MNSA3 | 0.0 |
3 | CSTB3 | 0.0 |
4 | CFLU4 | 0.0 |
Quando fazemos a leitura em dataframe, perdemos a ordenação encontrada no HTML. Por conta disso, utilizaremos a função sort_values para organizar os papeis em ordem decrescente de liquidez.
Por fim, filtraremos os 200 mais líquidos (sorted_per_liquidity
) e adicionaremos o sufixo .SA
necessário para baixar os preços da biblioteca do Yahoo Finance.
df.sort_values("Liq.2meses", ascending=False, inplace=True)
sorted_per_liquidity = df["Papel"].copy()[:200]
tickers = [ticker + ".SA" for ticker in sorted_per_liquidity.to_list()]
print(tickers)
['VALE3.SA', 'PETR4.SA', 'ITUB4.SA', 'BBDC4.SA', 'B3SA3.SA', 'PETR3.SA', 'VVAR3.SA', 'GGBR4.SA', 'CSNA3.SA', 'ABEV3.SA', 'BBAS3.SA', 'BPAC11.SA', 'SUZB3.SA', 'MGLU3.SA', 'LREN3.SA', 'USIM5.SA', 'ITSA4.SA', 'BRFS3.SA', 'JBSS3.SA', 'NTCO3.SA', 'ELET3.SA', 'RENT3.SA', 'BIDI11.SA', 'AZUL4.SA', 'WEGE3.SA', 'GNDI3.SA', 'CSAN3.SA', 'LAME4.SA', 'PRIO3.SA', 'BRDT3.SA', 'BRKM5.SA', 'LWSA3.SA', 'KLBN11.SA', 'BTOW3.SA', 'RDOR3.SA', 'EMBR3.SA', 'MRFG3.SA', 'BBDC3.SA', 'BRML3.SA', 'COGN3.SA', 'SULA11.SA', 'BRAP4.SA', 'GOLL4.SA', 'GOAU4.SA', 'CVCB3.SA', 'RAIL3.SA', 'ELET6.SA', 'EQTL3.SA', 'CYRE3.SA', 'HAPV3.SA', 'RADL3.SA', 'BIDI4.SA', 'MULT3.SA', 'PCAR3.SA', 'BPAN4.SA', 'CCRO3.SA', 'IRBR3.SA', 'ASAI3.SA', 'CASH3.SA', 'TOTS3.SA', 'BBSE3.SA', 'UGPA3.SA', 'POSI3.SA', 'SBSP3.SA', 'ENEV3.SA', 'CMIG4.SA', 'CMIN3.SA', 'CIEL3.SA', 'SANB11.SA', 'IGTA3.SA', 'HYPE3.SA', 'FHER3.SA', 'OIBR3.SA', 'VIVT3.SA', 'ETER3.SA', 'ALPA4.SA', 'PETZ3.SA', 'CRFB3.SA', 'EZTC3.SA', 'YDUQ3.SA', 'TAEE11.SA', 'ENGI11.SA', 'BEEF3.SA', 'QUAL3.SA', 'RRRP3.SA', 'AMAR3.SA', 'LCAM3.SA', 'SLCE3.SA', 'VIVR3.SA', 'LAME3.SA', 'TIMS3.SA', 'HGTX3.SA', 'CXSE3.SA', 'ENBR3.SA', 'ECOR3.SA', 'MRVE3.SA', 'EGIE3.SA', 'WIZS3.SA', 'PSSA3.SA', 'CPLE6.SA', 'LINX3.SA', 'RAPT4.SA', 'DTEX3.SA', 'CPFE3.SA', 'PTBL3.SA', 'ARZZ3.SA', 'INTB3.SA', 'TASA4.SA', 'ALSO3.SA', 'CESP6.SA', 'UNIP6.SA', 'STBP3.SA', 'FLRY3.SA', 'NEOE3.SA', 'SOMA3.SA', 'MOVI3.SA', 'LJQQ3.SA', 'SMTO3.SA', 'HBSA3.SA', 'AERI3.SA', 'SAPR11.SA', 'LIGT3.SA', 'SBFG3.SA', 'VIVA3.SA', 'MDIA3.SA', 'JHSF3.SA', 'MYPK3.SA', 'GMAT3.SA', 'AGRO3.SA', 'TRPL4.SA', 'TUPY3.SA', 'CSMG3.SA', 'VAMO3.SA', 'ROMI3.SA', 'ANIM3.SA', 'ESPA3.SA', 'SIMH3.SA', 'SEQL3.SA', 'ENAT3.SA', 'MOSI3.SA', 'LEVE3.SA', 'BKBR3.SA', 'TEND3.SA', 'OMGE3.SA', 'BMOB3.SA', 'LUPA3.SA', 'BRSR6.SA', 'ALUP11.SA', 'DASA3.SA', 'CPLE11.SA', 'GFSA3.SA', 'RANI3.SA', 'DIRR3.SA', 'FESA4.SA', 'AMBP3.SA', 'BIDI3.SA', 'CEAB3.SA', 'AURA33.SA', 'ENJU3.SA', 'POMO4.SA', 'PNVL3.SA', 'MODL11.SA', 'MEAL3.SA', 'TPIS3.SA', 'ITUB3.SA', 'GRND3.SA', 'BRPR3.SA', 'RECV3.SA', 'AALR3.SA', 'MILS3.SA', 'NGRD3.SA', 'GUAR3.SA', 'HBOR3.SA', 'SAPR4.SA', 'AESB3.SA', 'SEER3.SA', 'SOJA3.SA', 'EVEN3.SA', 'DEXP3.SA', 'JPSA3.SA', 'MTRE3.SA', 'PGMN3.SA', 'PMAM3.SA', 'CAML3.SA', 'LOGN3.SA', 'BLAU3.SA', 'LAVV3.SA', 'SQIA3.SA', 'CPLE3.SA', 'GGPS3.SA', 'ABCB4.SA', 'DMMO3.SA', 'ODPV3.SA', 'LOGG3.SA', 'TRIS3.SA', 'BBRK3.SA', 'KEPL3.SA', 'IFCM3.SA', 'TCSA3.SA', 'BOAS3.SA']
OBS: Para quem está acompanhando nossa série sobre Banco de Dados, um passo extra seria salvar esses ativos em um portfólio "Top 200 Liquidez", uma vez que eles podem ser utilizados para diversos backtests. O artigo Determinando as BDRs Mais Líquidas do Ibovespa Utilizando Python ensina o passo a passo de como fazer isso.
Baixaremos os preços de fechamento dos últimos 4 meses (2021-02-26 a 2021-06-26) da lista de ativos adquirida acima (tickers
).
start="2021-02-26"
end="2021-06-26"
df = yf.download(tickers=tickers, start=start, end=end).copy()["Close"]
df
[*********************100%***********************] 200 of 200 completed
AALR3.SA | ABCB4.SA | ABEV3.SA | AERI3.SA | AESB3.SA | AGRO3.SA | ALPA4.SA | ALSO3.SA | ALUP11.SA | AMAR3.SA | AMBP3.SA | ANIM3.SA | ARZZ3.SA | ASAI3.SA | AURA33.SA | AZUL4.SA | B3SA3.SA | BBAS3.SA | BBDC3.SA | BBDC4.SA | BBRK3.SA | BBSE3.SA | BEEF3.SA | BIDI11.SA | BIDI3.SA | BIDI4.SA | BKBR3.SA | BLAU3.SA | BMOB3.SA | BOAS3.SA | BPAC11.SA | BPAN4.SA | BRAP4.SA | BRDT3.SA | BRFS3.SA | BRKM5.SA | BRML3.SA | BRPR3.SA | BRSR6.SA | BTOW3.SA | CAML3.SA | CASH3.SA | CCRO3.SA | CEAB3.SA | CESP6.SA | CIEL3.SA | CMIG4.SA | CMIN3.SA | COGN3.SA | CPFE3.SA | ... | PSSA3.SA | PTBL3.SA | QUAL3.SA | RADL3.SA | RAIL3.SA | RANI3.SA | RAPT4.SA | RDOR3.SA | RECV3.SA | RENT3.SA | ROMI3.SA | RRRP3.SA | SANB11.SA | SAPR11.SA | SAPR4.SA | SBFG3.SA | SBSP3.SA | SEER3.SA | SEQL3.SA | SIMH3.SA | SLCE3.SA | SMTO3.SA | SOJA3.SA | SOMA3.SA | SQIA3.SA | STBP3.SA | SULA11.SA | SUZB3.SA | TAEE11.SA | TASA4.SA | TCSA3.SA | TEND3.SA | TIMS3.SA | TOTS3.SA | TPIS3.SA | TRIS3.SA | TRPL4.SA | TUPY3.SA | UGPA3.SA | UNIP6.SA | USIM5.SA | VALE3.SA | VAMO3.SA | VIVA3.SA | VIVR3.SA | VIVT3.SA | VVAR3.SA | WEGE3.SA | WIZS3.SA | YDUQ3.SA | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Date | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2021-02-26 | 9.01 | 15.360000 | 14.020000 | 10.19 | NaN | 22.010000 | 34.930000 | 23.430000 | 23.590000 | 5.07 | 23.090000 | 9.28 | 71.320000 | NaN | 53.500000 | 40.599998 | 18.100000 | 28.049999 | 18.718182 | 20.909090 | 1.87 | 25.430000 | 9.70 | 52.630001 | 17.733334 | 17.006666 | 8.83 | NaN | 25.809999 | 10.52 | 102.339996 | 13.890000 | 62.860001 | 19.920000 | 21.639999 | 31.260000 | 8.35 | 8.14 | 12.64 | 82.000000 | 10.43 | 28.200001 | 11.25 | 11.02 | 27.280001 | 3.60 | 10.726755 | 8.93 | 3.74 | 28.860001 | ... | 43.590000 | 8.690000 | 31.590000 | 23.230000 | 18.100000 | 5.96 | 13.04 | 69.099998 | NaN | 58.000000 | 26.799999 | 35.970001 | 37.619999 | 19.740000 | 3.96 | 22.360001 | 36.799999 | 12.290000 | 30.129999 | 37.549999 | 40.980000 | 31.219999 | NaN | 13.410000 | 22.000000 | 5.79 | 31.165808 | 73.169998 | 30.760000 | 18.990000 | 7.66 | 25.549999 | 12.80 | 31.379999 | 1.70 | 9.36 | 23.900000 | 21.250000 | 19.320000 | 56.790001 | 16.240000 | 94.519997 | 34.500000 | 23.750000 | 1.01 | 44.000000 | 11.87 | 39.025002 | 6.26 | 30.120001 |
2021-03-01 | 9.03 | 15.550000 | 13.770000 | 9.83 | NaN | 22.580000 | 35.349998 | 22.799999 | 23.490000 | 5.08 | 22.950001 | 8.95 | 71.199997 | 71.400002 | 53.650002 | 40.049999 | 18.116667 | 27.860001 | 18.109091 | 20.218182 | 1.83 | 24.799999 | 9.65 | 55.863335 | 18.820000 | 18.626665 | 9.00 | NaN | 26.000000 | 10.38 | 102.709999 | 14.550000 | 64.580002 | 19.690001 | 21.700001 | 31.780001 | 8.17 | 7.93 | 11.98 | 80.730003 | 10.37 | 28.590000 | 10.92 | 10.83 | 26.490000 | 3.38 | 10.341094 | 8.95 | 3.61 | 28.049999 | ... | 43.099998 | 8.890000 | 31.799999 | 22.780001 | 18.080000 | 6.10 | 12.65 | 70.220001 | NaN | 59.160000 | 28.350000 | 38.910000 | 37.259998 | 19.530001 | 3.91 | 22.360001 | 35.430000 | 11.520000 | 30.379999 | 36.980000 | 42.759998 | 30.650000 | NaN | 13.290000 | 21.490000 | 5.90 | 31.062078 | 74.489998 | 30.410000 | 19.070000 | 7.19 | 25.900000 | 12.72 | 31.480000 | 1.70 | 9.18 | 23.520000 | 20.940001 | 18.750000 | 54.040001 | 16.850000 | 98.570000 | 33.349998 | 23.850000 | 0.97 | 43.310001 | 12.11 | 39.000000 | 6.49 | 28.730000 |
2021-03-02 | 9.02 | 15.760000 | 13.990000 | 9.63 | NaN | 22.860001 | 35.459999 | 22.900000 | 23.170000 | 5.10 | 22.799999 | 8.54 | 71.830002 | 72.500000 | 57.500000 | 38.790001 | 18.670000 | 28.930000 | 18.409090 | 20.745455 | 1.75 | 24.790001 | 9.61 | 54.853333 | 18.299999 | 18.139999 | 8.89 | NaN | 25.280001 | 9.79 | 102.300003 | 14.530000 | 66.190002 | 19.389999 | 21.590000 | 30.510000 | 8.23 | 8.17 | 12.10 | 78.589996 | 10.63 | 27.820000 | 10.88 | 10.56 | 26.860001 | 3.36 | 10.646035 | 8.80 | 3.63 | 28.680000 | ... | 43.689999 | 8.950000 | 32.290001 | 22.879999 | 18.299999 | 6.10 | 12.90 | 69.230003 | NaN | 58.599998 | 31.120001 | 41.590000 | 38.389999 | 19.750000 | 3.98 | 22.260000 | 36.290001 | 11.370000 | 29.650000 | 37.450001 | 43.799999 | 30.209999 | NaN | 13.560000 | 21.650000 | 5.83 | 31.137520 | 73.529999 | 30.480000 | 19.070000 | 7.24 | 25.690001 | 12.74 | 31.020000 | 1.69 | 9.31 | 23.719999 | 21.700001 | 18.690001 | 55.200001 | 17.230000 | 101.599998 | 34.189999 | 23.760000 | 0.94 | 43.480000 | 12.02 | 38.529999 | 6.26 | 27.889999 |
2021-03-03 | 8.82 | 15.660000 | 14.170000 | 9.93 | NaN | 22.930000 | 35.529999 | 22.930000 | 23.110001 | 5.16 | 22.700001 | 8.34 | 70.900002 | 71.300003 | 57.700001 | 38.560001 | 18.863333 | 28.990000 | 18.781818 | 20.927273 | 1.77 | 24.620001 | 9.61 | 54.056667 | 18.686666 | 18.443333 | 8.93 | NaN | 26.150000 | 9.85 | 100.930000 | 13.870000 | 64.820000 | 19.000000 | 21.709999 | 29.510000 | 8.15 | 8.09 | 12.18 | 76.150002 | 11.23 | 28.299999 | 11.03 | 10.64 | 26.799999 | 3.40 | 10.556347 | 8.49 | 3.67 | 29.040001 | ... | 43.580002 | 9.150000 | 32.889999 | 23.209999 | 18.490000 | 6.11 | 13.14 | 68.050003 | NaN | 58.820000 | 28.490000 | 40.599998 | 37.830002 | 19.959999 | 4.05 | 21.969999 | 36.980000 | 11.590000 | 29.549999 | 36.410000 | 44.419998 | 30.290001 | NaN | 13.270000 | 20.920000 | 5.66 | 30.722603 | 73.500000 | 30.500000 | 19.680000 | 7.19 | 25.500000 | 12.86 | 30.930000 | 1.64 | 9.24 | 23.840000 | 22.510000 | 18.219999 | 53.150002 | 17.320000 | 100.349998 | 33.750000 | 22.400000 | 0.94 | 44.189999 | 11.92 | 38.500000 | 6.23 | 27.680000 |
2021-03-04 | 8.92 | 15.660000 | 14.780000 | 9.52 | NaN | 22.850000 | 36.099998 | 23.850000 | 23.709999 | 5.14 | 23.150000 | 8.52 | 73.000000 | 73.199997 | 58.299999 | 38.500000 | 18.496666 | 30.040001 | 19.409090 | 21.736362 | 1.73 | 24.500000 | 9.91 | 52.666664 | 17.879999 | 17.670000 | 8.97 | NaN | 25.209999 | 9.79 | 98.250000 | 13.510000 | 62.810001 | 20.290001 | 22.730000 | 30.129999 | 8.38 | 8.34 | 12.67 | 74.680000 | 11.22 | 27.040001 | 11.63 | 10.52 | 27.240000 | 3.46 | 10.897163 | 8.45 | 3.70 | 29.500000 | ... | 43.480000 | 8.910000 | 33.750000 | 23.600000 | 19.850000 | 6.14 | 13.01 | 67.919998 | NaN | 60.919998 | 27.990000 | 41.509998 | 38.630001 | 20.450001 | 4.13 | 22.309999 | 38.290001 | 11.730000 | 29.510000 | 36.090000 | 42.860001 | 31.160000 | NaN | 13.000000 | 20.860001 | 5.65 | 30.496286 | 73.599998 | 32.369999 | 20.570000 | 7.65 | 25.129999 | 13.05 | 30.610001 | 1.70 | 9.29 | 24.549999 | 23.090000 | 19.350000 | 52.540001 | 16.809999 | 98.860001 | 34.000000 | 21.950001 | 0.93 | 44.009998 | 12.11 | 36.615002 | 7.22 | 27.680000 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
2021-06-21 | 11.33 | 17.730000 | 18.730000 | 10.48 | 14.45 | 30.790001 | 49.619999 | 31.860001 | 27.129999 | 9.80 | 38.500000 | 13.15 | 95.930000 | 86.459999 | 68.500000 | 48.290001 | 17.070000 | 34.580002 | 23.379999 | 27.670000 | 2.11 | 25.469999 | 9.72 | 69.019997 | 22.700001 | 23.260000 | 12.14 | 45.630001 | 21.049999 | 11.31 | 122.980003 | 23.920000 | 68.150002 | 27.580000 | 28.830000 | 55.110001 | 11.30 | 9.52 | 14.17 | 70.489998 | 9.80 | 45.220001 | 13.98 | 15.31 | 24.650000 | 3.88 | 13.070000 | 9.44 | 4.80 | 28.790001 | ... | 55.000000 | 16.620001 | 28.330000 | 25.750000 | 20.059999 | 9.31 | 14.01 | 66.900002 | 19.290001 | 63.220001 | 25.799999 | 48.860001 | 43.889999 | 20.959999 | 4.24 | 38.840000 | 38.180000 | 19.059999 | 26.799999 | 56.450001 | 48.910000 | 37.790001 | 15.11 | 16.780001 | 22.350000 | 9.30 | 36.029999 | 58.500000 | 39.470001 | 22.639999 | 8.59 | 25.750000 | 12.67 | 36.759998 | 3.20 | 10.37 | 26.750000 | 23.680000 | 19.719999 | 94.489998 | 18.160000 | 110.110001 | 53.549999 | 33.970001 | 4.78 | 45.139999 | 15.75 | 35.250000 | 13.19 | 34.980000 |
2021-06-22 | 11.19 | 17.500000 | 18.290001 | 10.35 | 14.32 | 30.820000 | 50.000000 | 31.450001 | 26.790001 | 10.01 | 39.650002 | 13.32 | 95.000000 | 86.400002 | 68.599998 | 47.430000 | 16.990000 | 33.849998 | 23.100000 | 27.160000 | 2.40 | 25.540001 | 9.70 | 70.250000 | 23.150000 | 23.889999 | 12.37 | 46.500000 | 21.549999 | 11.40 | 120.930000 | 24.480000 | 69.209999 | 27.750000 | 28.799999 | 54.889999 | 11.02 | 9.67 | 14.01 | 69.830002 | 9.78 | 44.349998 | 13.57 | 14.77 | 24.520000 | 3.76 | 12.810000 | 9.39 | 4.69 | 28.549999 | ... | 54.720001 | 16.620001 | 28.540001 | 26.000000 | 19.860001 | 9.72 | 13.80 | 69.750000 | 18.950001 | 63.000000 | 25.190001 | 48.099998 | 43.750000 | NaN | 4.23 | 38.500000 | 37.939999 | 18.900000 | 26.709999 | 55.000000 | 49.230000 | 37.500000 | 14.97 | 16.549999 | 22.110001 | 9.25 | 35.950001 | 58.700001 | NaN | 23.020000 | 8.53 | 25.610001 | 12.05 | 37.650002 | 3.14 | 10.06 | 26.209999 | 23.639999 | 19.530001 | 93.919998 | 18.230000 | 111.400002 | 53.750000 | 34.049999 | 5.89 | 43.900002 | 15.93 | 34.290001 | 13.86 | 34.570000 |
2021-06-23 | 11.63 | 17.290001 | 17.990000 | 10.31 | 14.32 | 30.650000 | 49.320000 | 30.790001 | 26.920000 | 9.25 | 40.180000 | 13.80 | 93.709999 | 86.000000 | 69.250000 | 47.500000 | 17.020000 | 33.849998 | 23.059999 | 27.040001 | 4.00 | 24.700001 | 9.61 | 71.669998 | 23.730000 | 24.219999 | 12.17 | 47.459999 | 22.320000 | 11.58 | 121.209999 | 25.580000 | 69.730003 | 27.120001 | 28.570000 | 56.439999 | 10.89 | 9.41 | 13.89 | 68.290001 | 9.80 | 45.990002 | 13.60 | 14.59 | 24.420000 | 3.73 | 12.700000 | 9.37 | 4.74 | 28.030001 | ... | 54.340000 | 15.850000 | 28.500000 | 25.350000 | 19.709999 | 9.57 | 13.65 | 68.800003 | 18.940001 | 64.000000 | 25.240000 | 47.709999 | 43.189999 | NaN | 4.22 | 37.689999 | 37.590000 | 19.180000 | 27.200001 | 55.299999 | 48.799999 | 37.250000 | 14.62 | 16.290001 | 22.570000 | 9.30 | 35.520000 | 58.110001 | NaN | 22.959999 | 8.94 | 25.150000 | 11.94 | 37.880001 | 3.54 | 10.07 | 26.110001 | 23.650000 | 19.150000 | 94.250000 | 18.620001 | 113.070000 | 54.790001 | 33.619999 | 9.81 | 43.470001 | 15.80 | 33.950001 | 15.68 | 35.400002 |
2021-06-24 | 11.74 | 17.280001 | 17.950001 | 10.11 | 14.32 | 30.330000 | 49.919998 | 30.799999 | 26.799999 | 9.20 | 39.209999 | 13.82 | 94.300003 | 87.309998 | 67.900002 | 47.000000 | 16.990000 | 33.919998 | 23.059999 | 27.240000 | 2.59 | 24.400000 | 9.84 | 69.199997 | 22.660000 | 23.459999 | 12.25 | 49.189999 | 22.200001 | 11.75 | 120.400002 | 24.450001 | 70.070000 | 27.629999 | 28.650000 | 56.900002 | 10.99 | 9.44 | 13.84 | 70.370003 | 9.84 | 48.389999 | 13.72 | 14.72 | 24.430000 | 3.74 | 12.750000 | 9.38 | 4.75 | 28.250000 | ... | 53.799999 | 15.760000 | 28.549999 | 25.600000 | 19.930000 | 9.24 | 13.73 | 68.190002 | 19.860001 | 64.500000 | 25.200001 | 46.610001 | 43.099998 | NaN | 4.28 | 36.959999 | 37.889999 | 18.910000 | 26.500000 | 54.990002 | 48.750000 | 36.990002 | 14.89 | 16.740000 | 22.809999 | 9.33 | 35.990002 | 59.849998 | NaN | 22.990000 | 9.05 | 26.059999 | 11.95 | 37.540001 | 3.38 | 10.31 | 26.110001 | 23.760000 | 19.340000 | 95.570000 | 19.100000 | 111.029999 | 55.779999 | 33.540001 | 4.80 | 43.700001 | 15.77 | 34.330002 | 16.00 | 35.500000 |
2021-06-25 | 11.30 | 16.990000 | 16.950001 | 9.86 | 14.11 | 29.590000 | 49.490002 | 29.809999 | 26.299999 | 9.42 | 39.630001 | 13.62 | 92.790001 | 84.889999 | 67.699997 | 45.970001 | 16.690001 | 32.900002 | 22.469999 | 26.389999 | 2.59 | 23.920000 | 9.71 | 70.000000 | 22.750000 | 23.450001 | 12.16 | 48.490002 | 21.719999 | 11.91 | 118.269997 | 23.370001 | 73.070000 | 27.580000 | 28.480000 | 55.419998 | 10.60 | 9.20 | 13.56 | 68.099998 | 9.69 | 51.299999 | 13.34 | 14.66 | 24.230000 | 3.67 | 12.530000 | 9.36 | 4.59 | 27.530001 | ... | 52.009998 | 15.580000 | 28.440001 | 24.719999 | 19.540001 | 9.10 | 13.70 | 68.669998 | 19.590000 | 63.599998 | 24.990000 | 46.250000 | 42.099998 | NaN | 4.26 | 36.209999 | 37.790001 | 18.219999 | 26.299999 | 54.470001 | 47.730000 | 35.900002 | 14.87 | 16.110001 | 22.760000 | 9.15 | 34.599998 | 58.410000 | NaN | 22.440001 | 8.87 | 26.030001 | 11.77 | 36.860001 | 3.36 | 10.08 | 25.889999 | 23.450001 | 18.990000 | 92.580002 | 18.840000 | 112.400002 | 55.310001 | 32.490002 | 5.45 | 42.930000 | 15.72 | 33.560001 | 16.35 | 34.009998 |
85 rows × 200 columns
Como utilizaremos os preços mais recentes para avaliar a direção das médias móveis, temos que verificar se há algum valor NaN nas últimas linhas do nosso dataframe.
Para conseguirmos verificar todas as colunas do dataframe, usaremos a função de exibição: options.display.max_columns
.
pd.options.display.max_columns = 200
df.iloc[-2:]
AALR3.SA | ABCB4.SA | ABEV3.SA | AERI3.SA | AESB3.SA | AGRO3.SA | ALPA4.SA | ALSO3.SA | ALUP11.SA | AMAR3.SA | AMBP3.SA | ANIM3.SA | ARZZ3.SA | ASAI3.SA | AURA33.SA | AZUL4.SA | B3SA3.SA | BBAS3.SA | BBDC3.SA | BBDC4.SA | BBRK3.SA | BBSE3.SA | BEEF3.SA | BIDI11.SA | BIDI3.SA | BIDI4.SA | BKBR3.SA | BLAU3.SA | BMOB3.SA | BOAS3.SA | BPAC11.SA | BPAN4.SA | BRAP4.SA | BRDT3.SA | BRFS3.SA | BRKM5.SA | BRML3.SA | BRPR3.SA | BRSR6.SA | BTOW3.SA | CAML3.SA | CASH3.SA | CCRO3.SA | CEAB3.SA | CESP6.SA | CIEL3.SA | CMIG4.SA | CMIN3.SA | COGN3.SA | CPFE3.SA | CPLE11.SA | CPLE3.SA | CPLE6.SA | CRFB3.SA | CSAN3.SA | CSMG3.SA | CSNA3.SA | CVCB3.SA | CXSE3.SA | CYRE3.SA | DASA3.SA | DEXP3.SA | DIRR3.SA | DMMO3.SA | DTEX3.SA | ECOR3.SA | EGIE3.SA | ELET3.SA | ELET6.SA | EMBR3.SA | ENAT3.SA | ENBR3.SA | ENEV3.SA | ENGI11.SA | ENJU3.SA | EQTL3.SA | ESPA3.SA | ETER3.SA | EVEN3.SA | EZTC3.SA | FESA4.SA | FHER3.SA | FLRY3.SA | GFSA3.SA | GGBR4.SA | GGPS3.SA | GMAT3.SA | GNDI3.SA | GOAU4.SA | GOLL4.SA | GRND3.SA | GUAR3.SA | HAPV3.SA | HBOR3.SA | HBSA3.SA | HGTX3.SA | HYPE3.SA | IFCM3.SA | IGTA3.SA | INTB3.SA | IRBR3.SA | ITSA4.SA | ITUB3.SA | ITUB4.SA | JBSS3.SA | JHSF3.SA | JPSA3.SA | KEPL3.SA | KLBN11.SA | LAME3.SA | LAME4.SA | LAVV3.SA | LCAM3.SA | LEVE3.SA | LIGT3.SA | LINX3.SA | LJQQ3.SA | LOGG3.SA | LOGN3.SA | LREN3.SA | LUPA3.SA | LWSA3.SA | MDIA3.SA | MEAL3.SA | MGLU3.SA | MILS3.SA | MODL11.SA | MOSI3.SA | MOVI3.SA | MRFG3.SA | MRVE3.SA | MTRE3.SA | MULT3.SA | MYPK3.SA | NEOE3.SA | NGRD3.SA | NTCO3.SA | ODPV3.SA | OIBR3.SA | OMGE3.SA | PCAR3.SA | PETR3.SA | PETR4.SA | PETZ3.SA | PGMN3.SA | PMAM3.SA | PNVL3.SA | POMO4.SA | POSI3.SA | PRIO3.SA | PSSA3.SA | PTBL3.SA | QUAL3.SA | RADL3.SA | RAIL3.SA | RANI3.SA | RAPT4.SA | RDOR3.SA | RECV3.SA | RENT3.SA | ROMI3.SA | RRRP3.SA | SANB11.SA | SAPR11.SA | SAPR4.SA | SBFG3.SA | SBSP3.SA | SEER3.SA | SEQL3.SA | SIMH3.SA | SLCE3.SA | SMTO3.SA | SOJA3.SA | SOMA3.SA | SQIA3.SA | STBP3.SA | SULA11.SA | SUZB3.SA | TAEE11.SA | TASA4.SA | TCSA3.SA | TEND3.SA | TIMS3.SA | TOTS3.SA | TPIS3.SA | TRIS3.SA | TRPL4.SA | TUPY3.SA | UGPA3.SA | UNIP6.SA | USIM5.SA | VALE3.SA | VAMO3.SA | VIVA3.SA | VIVR3.SA | VIVT3.SA | VVAR3.SA | WEGE3.SA | WIZS3.SA | YDUQ3.SA | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Date | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2021-06-24 | 11.74 | 17.280001 | 17.950001 | 10.11 | 14.32 | 30.33 | 49.919998 | 30.799999 | 26.799999 | 9.20 | 39.209999 | 13.82 | 94.300003 | 87.309998 | 67.900002 | 47.000000 | 16.990000 | 33.919998 | 23.059999 | 27.240000 | 2.59 | 24.40 | 9.84 | 69.199997 | 22.66 | 23.459999 | 12.25 | 49.189999 | 22.200001 | 11.75 | 120.400002 | 24.450001 | 70.07 | 27.629999 | 28.65 | 56.900002 | 10.99 | 9.44 | 13.84 | 70.370003 | 9.84 | 48.389999 | 13.72 | 14.72 | 24.43 | 3.74 | 12.75 | 9.38 | 4.75 | 28.250000 | 30.469999 | 5.82 | 6.17 | 21.629999 | 25.190001 | 16.219999 | 44.599998 | 28.206032 | 13.02 | 23.530001 | 62.060001 | 43.400002 | 15.02 | 0.97 | 22.74 | 12.30 | 40.700001 | 45.889999 | 46.230000 | 19.610001 | 14.90 | 18.570000 | 17.49 | 47.700001 | 10.61 | 25.430000 | 19.120001 | 24.299999 | 10.80 | 32.48 | 43.439999 | 19.850000 | 26.620001 | 4.91 | 30.77 | 17.110001 | 8.06 | 87.379997 | 14.20 | 24.780001 | 9.95 | 21.129999 | 15.78 | 9.42 | 6.22 | 35.200001 | 36.560001 | 20.110001 | 43.480000 | 29.540001 | 6.02 | 11.76 | 28.16 | 31.809999 | 29.160000 | 7.84 | 35.540001 | 57.009998 | 26.370001 | 21.610001 | 22.379999 | 8.80 | 27.889999 | 33.270000 | 16.110001 | 37.500000 | 23.950001 | 33.849998 | 18.820000 | 45.669998 | 6.94 | 27.080000 | 32.68 | 4.36 | 21.650000 | 8.48 | 16.25 | 19.600000 | 19.500000 | 18.959999 | 16.980000 | 12.04 | 25.180000 | 15.97 | 17.700001 | 6.06 | 57.270000 | 13.05 | 1.57 | 38.139999 | 39.799999 | 29.889999 | 29.65 | 24.450001 | 11.71 | 16.059999 | 21.25 | 3.46 | 13.12 | 19.450001 | 53.799999 | 15.76 | 28.549999 | 25.600000 | 19.930000 | 9.24 | 13.73 | 68.190002 | 19.860001 | 64.500000 | 25.200001 | 46.610001 | 43.099998 | NaN | 4.28 | 36.959999 | 37.889999 | 18.910000 | 26.500000 | 54.990002 | 48.75 | 36.990002 | 14.89 | 16.740000 | 22.809999 | 9.33 | 35.990002 | 59.849998 | NaN | 22.990000 | 9.05 | 26.059999 | 11.95 | 37.540001 | 3.38 | 10.31 | 26.110001 | 23.760000 | 19.34 | 95.570000 | 19.10 | 111.029999 | 55.779999 | 33.540001 | 4.80 | 43.700001 | 15.77 | 34.330002 | 16.00 | 35.500000 |
2021-06-25 | 11.30 | 16.990000 | 16.950001 | 9.86 | 14.11 | 29.59 | 49.490002 | 29.809999 | 26.299999 | 9.42 | 39.630001 | 13.62 | 92.790001 | 84.889999 | 67.699997 | 45.970001 | 16.690001 | 32.900002 | 22.469999 | 26.389999 | 2.59 | 23.92 | 9.71 | 70.000000 | 22.75 | 23.450001 | 12.16 | 48.490002 | 21.719999 | 11.91 | 118.269997 | 23.370001 | 73.07 | 27.580000 | 28.48 | 55.419998 | 10.60 | 9.20 | 13.56 | 68.099998 | 9.69 | 51.299999 | 13.34 | 14.66 | 24.23 | 3.67 | 12.53 | 9.36 | 4.59 | 27.530001 | 30.010000 | 5.67 | 6.11 | 21.389999 | 24.730000 | 16.049999 | 43.549999 | 27.650000 | 12.94 | 22.870001 | 60.980000 | 42.919998 | 14.71 | 0.94 | 23.00 | 11.88 | 40.130001 | 44.320000 | 44.549999 | 19.100000 | 16.48 | 18.219999 | 17.09 | 46.700001 | 10.56 | 25.440001 | 18.799999 | 23.379999 | 10.55 | 31.57 | 42.849998 | 17.940001 | 26.059999 | 4.65 | 30.84 | 16.799999 | 7.81 | 85.059998 | 14.27 | 24.000000 | 9.93 | 20.709999 | 15.34 | 8.95 | 6.05 | 33.919998 | 35.299999 | 20.350000 | 42.029999 | 28.910000 | 5.99 | 11.48 | 27.41 | 30.799999 | 28.540001 | 7.59 | 34.660000 | 57.139999 | 25.860001 | 20.910000 | 21.940001 | 8.57 | 27.559999 | 32.669998 | 15.750000 | 37.400002 | 23.450001 | 32.610001 | 18.450001 | 45.099998 | 6.80 | 26.309999 | 32.27 | 4.30 | 21.389999 | 8.45 | 17.24 | 19.200001 | 19.209999 | 19.090000 | 16.809999 | 11.80 | 24.040001 | 15.90 | 17.770000 | 6.01 | 56.310001 | 12.97 | 1.53 | 38.419998 | 38.799999 | 29.410000 | 29.10 | 24.870001 | 11.50 | 15.920000 | 21.35 | 3.39 | 12.56 | 19.080000 | 52.009998 | 15.58 | 28.440001 | 24.719999 | 19.540001 | 9.10 | 13.70 | 68.669998 | 19.590000 | 63.599998 | 24.990000 | 46.250000 | 42.099998 | NaN | 4.26 | 36.209999 | 37.790001 | 18.219999 | 26.299999 | 54.470001 | 47.73 | 35.900002 | 14.87 | 16.110001 | 22.760000 | 9.15 | 34.599998 | 58.410000 | NaN | 22.440001 | 8.87 | 26.030001 | 11.77 | 36.860001 | 3.36 | 10.08 | 25.889999 | 23.450001 | 18.99 | 92.580002 | 18.84 | 112.400002 | 55.310001 | 32.490002 | 5.45 | 42.930000 | 15.72 | 33.560001 | 16.35 | 34.009998 |
Como podemos observar, os ativos SAPR11
e TAEE11
não possuem os preços de fechamento mais recentes. Para evitar quaisquer erros na hora de calcular as médias móveis, vamos excluir esses papeis do dataframe através da função drop.
df.drop(df["SAPR11.SA"], axis="columns", inplace=True)
df.drop(df["TAEE11.SA"], axis="columns", inplace=True)
Com o dataframe pronto, o próximo passo é calcular as médias móveis exponenciais de curto e longo prazo para então classificarmos os ativos entre Éden dos Traders de compra e venda.
Nesse próximo passo faremos um for loop para iterar sobre cada ativo do dataframe. Nessa iteração, realizaremos as seguintes tarefas:
Calcularemos as médias móveis exponenciais a partir de duas funções combinadas, ewm e mean, que serão armazenas nas variáveis mme8
e mme80
;
Classificaremos os ativos de acordo com o Éden dos Traders para compra e venda, a partir da simples lógica:
long = 1
), se ambas médias móveis atuais (mme8[-1]
e mme80[-1]
) forem maiores que as respectivas médias móveis anteriores (mme8[-2]
e mme80[-2]
); short = 1
); long = 0
e short = 0
).Armazenaremos as informações acima em um dicionário: traders_eden
.
traders_eden = {}
for ticker in tickers:
mme8 = df[ticker].ewm(span=8).mean()
mme80 = df[ticker].ewm(span=80).mean()
if (mme8[-1] > mme8[-2]) & (mme80[-1] > mme80[-2]):
traders_eden[ticker] = {"long": 1, "short": 0}
elif (mme8[-1] < mme8[-2]) & (mme80[-1] < mme80[-2]):
traders_eden[ticker] = {"long": 0, "short": 1}
else:
traders_eden[ticker] = {"long": 0, "short": 0}
Para uma melhor visualização dos dados, transformaremos nosso dicionário em um dataframe através da função from_dict, onde estabeleceremos que as chaves (no nosso caso, os ativos) representarão as linhas do dataframe (orient='index'
).
traders_eden = pd.DataFrame.from_dict(traders_eden, orient='index')
traders_eden
long | short | |
---|---|---|
VALE3.SA | 1 | 0 |
PETR4.SA | 1 | 0 |
ITUB4.SA | 0 | 0 |
BBDC4.SA | 0 | 0 |
B3SA3.SA | 0 | 1 |
... | ... | ... |
BBRK3.SA | 1 | 0 |
KEPL3.SA | 1 | 0 |
IFCM3.SA | 1 | 0 |
TCSA3.SA | 1 | 0 |
BOAS3.SA | 1 | 0 |
200 rows × 2 columns
Pronto! Temos um dataframe classificando os 200 ativos mais líquidos da bolsa entre Éden dos Traders de compra e venda. Podemos utilizá-lo para filtrar os ativos que estão mais propensos a traders de compra/venda, nos auxiliando na hora de efetuar uma operação.
Para consultar nosso dataframe é fácil: basta utilizar um filtro (filter
), onde a coluna desejada (long
ou short
) deverá ser igual a 1
.
filter = traders_eden["long"] == 1
traders_eden[filter]
long | short | |
---|---|---|
VALE3.SA | 1 | 0 |
PETR4.SA | 1 | 0 |
PETR3.SA | 1 | 0 |
VVAR3.SA | 1 | 0 |
MGLU3.SA | 1 | 0 |
BIDI11.SA | 1 | 0 |
BRDT3.SA | 1 | 0 |
MRFG3.SA | 1 | 0 |
BRAP4.SA | 1 | 0 |
CVCB3.SA | 1 | 0 |
EQTL3.SA | 1 | 0 |
BIDI4.SA | 1 | 0 |
CASH3.SA | 1 | 0 |
ALPA4.SA | 1 | 0 |
PETZ3.SA | 1 | 0 |
RRRP3.SA | 1 | 0 |
AMAR3.SA | 1 | 0 |
VIVR3.SA | 1 | 0 |
CXSE3.SA | 1 | 0 |
WIZS3.SA | 1 | 0 |
DTEX3.SA | 1 | 0 |
PTBL3.SA | 1 | 0 |
MOVI3.SA | 1 | 0 |
MDIA3.SA | 1 | 0 |
JHSF3.SA | 1 | 0 |
VAMO3.SA | 1 | 0 |
ANIM3.SA | 1 | 0 |
ENAT3.SA | 1 | 0 |
BKBR3.SA | 1 | 0 |
TEND3.SA | 1 | 0 |
BMOB3.SA | 1 | 0 |
DIRR3.SA | 1 | 0 |
FESA4.SA | 1 | 0 |
AMBP3.SA | 1 | 0 |
BIDI3.SA | 1 | 0 |
POMO4.SA | 1 | 0 |
PNVL3.SA | 1 | 0 |
MODL11.SA | 1 | 0 |
TPIS3.SA | 1 | 0 |
GRND3.SA | 1 | 0 |
RECV3.SA | 1 | 0 |
MILS3.SA | 1 | 0 |
SAPR4.SA | 1 | 0 |
BLAU3.SA | 1 | 0 |
SQIA3.SA | 1 | 0 |
DMMO3.SA | 1 | 0 |
LOGG3.SA | 1 | 0 |
BBRK3.SA | 1 | 0 |
KEPL3.SA | 1 | 0 |
IFCM3.SA | 1 | 0 |
TCSA3.SA | 1 | 0 |
BOAS3.SA | 1 | 0 |
short = traders_eden["short"] == 1
traders_eden[short]
long | short | |
---|---|---|
B3SA3.SA | 0 | 1 |
ABEV3.SA | 0 | 1 |
SUZB3.SA | 0 | 1 |
JBSS3.SA | 0 | 1 |
WEGE3.SA | 0 | 1 |
... | ... | ... |
MTRE3.SA | 0 | 1 |
CAML3.SA | 0 | 1 |
LOGN3.SA | 0 | 1 |
CPLE3.SA | 0 | 1 |
TRIS3.SA | 0 | 1 |
64 rows × 2 columns
No artigo de hoje aprendemos não só a fazer o web scraping dos 200 ativos mais líquidos da bolsa, mas também a calcular se esse ativo está no Éden dos Traders.
Esse tipo de filtro é mais uma das diversas ferramentas que podemos utilizar para avaliar a tendência de um ativo. Além disso, você pode utilizar a lista dos ativos mais líquidos para estudar diferentes backtests de estratégias. Não se esqueça de rodar o código de tempos em tempos para atualizar a lista dos ativos de acordo com a liquidez.
Para facilitar a vida dos nossos leitores, estamos inaugurando o Éden dos Traders como nossa mais nova ferrameta, onde os dados são obtidos da plataforma MetaTrader e as informações são atualizadas periodicamente.
Se o conteúdo da QuantBrasil é revelante para você, não deixa de se inscrever na nossa newsletter e participar do nosso grupo no Telegram. Nele tiramos dúvidas dos nosso leitores, além de atender a pedidos de análises quantitativas sobre o mercado financeiro.