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.
Web scraping dos 200 ativos mais líquidos da bolsa
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)
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.
Baixando os dados necessários
Baixaremos os preços de fechamento dos últimos 4 meses (2021-02-26 a 2021-06-26) da lista de ativos adquirida acima (tickers).
[*********************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.
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.
Calculando as médias móveis e determinando o Éden dos Traders
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:
O ativo estará no Éden dos Traders de compra (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]);
Se forem menores, o ativo se encontra no Éden dos Traders de venda (short = 1);
Se nenhuma das alternativas anteriores for verdade, o ativo não se encontra no Éden dos Traders (long = 0 e short = 0).
Armazenaremos as informações acima em um dicionário: traders_eden.
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').
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.
Filtrando os ativos pelo Éden dos Traders de compra ou venda
Para consultar nosso dataframe é fácil: basta utilizar um filtro (filter), onde a coluna desejada (long ou short) deverá ser igual a 1.
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
Conclusão
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.