-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcalibra_mm.py
More file actions
91 lines (68 loc) · 4.56 KB
/
calibra_mm.py
File metadata and controls
91 lines (68 loc) · 4.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import itertools
import plotly.express as px
import pandas as pd
"""
Esse script foi para testar algumas combinações de variação de posição relativa entre as medias móveis, pode ignorar
"""
mm_values = [80,35,9,4]
mm_names = ['mlonga', 'longa', 'media', 'curta']
dict_mm_nv = {k:v for k,v in zip(mm_names,mm_values)}
dict_mm_vn = {v:k for k,v in zip(mm_names,mm_values)}
mm = mm_values
#todas as posições que as linhas podem ter
ls_per = list(itertools.permutations(mm, len(mm_values)))
#mudanças de estado
mudancas_estado = list(itertools.permutations(ls_per, 2))
#TESE PRED
import sqlite3
import pandas as pd
from utils_mm import ClassificadorTendenciaMM, medias_moveis, make_graph, get_symbols
con = sqlite3.connect(r'/home/fm/Documents/swing_bbot3/Dados/hist_b3.db')
home = pd.read_sql(con=con, sql= 'SELECT * FROM COT_B3')
sub = home[home.COD_NEG==home['COD_NEG'].unique()[2]]
data = sub['P_MEDIO']
cl_mm = ClassificadorTendenciaMM()
cl_mm.fit(data)
def classifica_tendencia_mm(s_sequencia_estados):
#decodificando significado da sequencia de estados em ações
dict_comp_est = {('curta', 'media', 'longa','curta', 'media', 'longa'): 'indeterminado',
('curta', 'media', 'longa', 'curta', 'longa', 'media'): 'indeterminado',
('curta', 'media', 'longa', 'media', 'curta', 'longa'): 'indeterminado',
('curta', 'media', 'longa', 'media', 'longa', 'curta'): 'indeterminado',
('curta', 'media', 'longa', 'longa', 'curta', 'media'): 'indeterminado',
('curta', 'media', 'longa', 'longa', 'media', 'curta'): 'indeterminado',
('curta', 'longa', 'media', 'curta', 'media', 'longa'): 'baixando',
('curta', 'longa', 'media', 'curta', 'longa', 'media'): 'indeterminado',
('curta', 'longa', 'media', 'media', 'curta', 'longa'): 'indeterminado',
('curta', 'longa', 'media', 'media', 'longa', 'curta'): 'indeterminado',
('curta', 'longa', 'media', 'longa', 'curta', 'media'): 'subindo',
('curta', 'longa', 'media', 'longa', 'media', 'curta'): 'indeterminado',
('media', 'curta', 'longa', 'curta', 'media', 'longa'): 'baixando',
('media', 'curta', 'longa', 'curta', 'longa', 'media'): 'indeterminado',
('media', 'curta', 'longa', 'media', 'curta', 'longa'): 'indeterminado',
('media', 'curta', 'longa', 'media', 'longa', 'curta'): 'indeterminado',
('media', 'curta', 'longa', 'longa', 'curta', 'media'): 'indeterminado',
('media', 'curta', 'longa', 'longa', 'media', 'curta'): 'indeterminado',
('media', 'longa', 'curta', 'curta', 'media', 'longa'): 'indeterminado',
('media', 'longa', 'curta', 'curta', 'longa', 'media'): 'indeterminado',
('media', 'longa', 'curta', 'media', 'curta', 'longa'): 'baixando',
('media', 'longa', 'curta', 'media', 'longa', 'curta'): 'indeterminado',
('media', 'longa', 'curta', 'longa', 'curta', 'media'): 'indeterminado',
('media', 'longa', 'curta', 'longa', 'media', 'curta'): 'subindo',
('longa', 'curta', 'media', 'curta', 'media', 'longa'): 'indeterminado',
('longa', 'curta', 'media', 'curta', 'longa', 'media'): 'indeterminado',
('longa', 'curta', 'media', 'media', 'curta', 'longa'): 'indeterminado',
('longa', 'curta', 'media', 'media', 'longa', 'curta'): 'indeterminado',
('longa', 'curta', 'media', 'longa', 'curta', 'media'): 'indeterminado',
('longa', 'curta', 'media', 'longa', 'media', 'curta'): 'subindo',
('longa', 'media', 'curta', 'curta', 'media', 'longa'): 'indeterminado',
('longa', 'media', 'curta', 'curta', 'longa', 'media'): 'indeterminado',
('longa', 'media', 'curta', 'media', 'curta', 'longa'): 'indeterminado',
('longa', 'media', 'curta', 'media', 'longa', 'curta'): 'indeterminado',
('longa', 'media', 'curta', 'longa', 'curta', 'media'): 'baixando',
('longa', 'media', 'curta', 'longa', 'media', 'curta'): 'indeterminado'}
s_sequencia_estados = pd.Series(s_sequencia_estados)
comportamento = s_sequencia_estados.map(dict_comp_est)
return comportamento
classifica_tendencia_mm(cl_mm.X_).value_counts()
pd.Series(cl_mm.predict(cl_mm.X_)).value_counts()