mtcli 2.1.0__tar.gz → 2.1.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mtcli-2.1.0 → mtcli-2.1.2}/PKG-INFO +170 -171
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/conf.py +8 -1
- {mtcli-2.1.0 → mtcli-2.1.2}/pyproject.toml +3 -6
- mtcli-2.1.0/mtcli.egg-info/PKG-INFO +0 -171
- mtcli-2.1.0/mtcli.egg-info/SOURCES.txt +0 -77
- mtcli-2.1.0/mtcli.egg-info/dependency_links.txt +0 -1
- mtcli-2.1.0/mtcli.egg-info/entry_points.txt +0 -7
- mtcli-2.1.0/mtcli.egg-info/not-zip-safe +0 -1
- mtcli-2.1.0/mtcli.egg-info/requires.txt +0 -5
- mtcli-2.1.0/mtcli.egg-info/top_level.txt +0 -2
- mtcli-2.1.0/setup.cfg +0 -4
- mtcli-2.1.0/setup.py +0 -48
- mtcli-2.1.0/tests/__init__.py +0 -3
- mtcli-2.1.0/tests/models/__init__.py +0 -3
- mtcli-2.1.0/tests/models/test_model_bar.py +0 -65
- mtcli-2.1.0/tests/models/test_model_consecutive_bars.py +0 -17
- mtcli-2.1.0/tests/models/test_model_signals.py +0 -34
- mtcli-2.1.0/tests/models/test_model_unconsecutive_bar.py +0 -42
- mtcli-2.1.0/tests/test_bars.py +0 -354
- {mtcli-2.1.0 → mtcli-2.1.2}/LICENSE +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/README.md +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/__init__.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/bars.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/conecta.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/data/__init__.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/data/base.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/data/csv.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/data/mt5.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/logger.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/models/__init__.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/models/model_bar.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/models/model_bars.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/models/model_chart.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/models/model_consecutive_bars.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/models/model_rates.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/models/model_signals.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/models/model_unconsecutive_bar.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/mt.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/__init__.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/agressao/__init__.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/agressao/command.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/agressao/conf.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/agressao/models/__init__.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/agressao/models/model_agressao.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/agressao/views/__init__.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/agressao/views/view_agressao.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/media_movel/__init__.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/media_movel/command.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/media_movel/conf.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/media_movel/models/__init__.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/media_movel/models/model_media_movel.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/media_movel/tests/__init__.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/media_movel/tests/test_mm.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/media_movel/tests/test_model_media_movel.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/range_medio/__init__.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/range_medio/command.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/range_medio/conf.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/range_medio/models/__init__.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/range_medio/models/model_average_range.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/range_medio/tests/__init__.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/range_medio/tests/test_rm.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/volume_medio/__init__.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/volume_medio/command.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/volume_medio/conf.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/volume_medio/models/__init__.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/volume_medio/models/model_average_volume.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/volume_medio/tests/__init__.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/plugins/volume_medio/tests/test_vm.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/views/__init__.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/views/view_close.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/views/view_full.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/views/view_high.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/views/view_low.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/views/view_min.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/views/view_open.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/views/view_ranges.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/views/view_rates.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/views/view_vars.py +0 -0
- {mtcli-2.1.0 → mtcli-2.1.2}/mtcli/views/view_volumes.py +0 -0
|
@@ -1,171 +1,170 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
2
|
-
Name: mtcli
|
|
3
|
-
Version: 2.1.
|
|
4
|
-
Summary: Aplicativo CLI para exibir gráficos do MetaTrader 5 em texto acessível ao leitor de telas
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
Author
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
Requires-Dist:
|
|
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
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
- `
|
|
111
|
-
- `
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
|
+
Name: mtcli
|
|
3
|
+
Version: 2.1.2
|
|
4
|
+
Summary: Aplicativo CLI para exibir gráficos do MetaTrader 5 em texto acessível ao leitor de telas
|
|
5
|
+
License: GPL-3.0
|
|
6
|
+
Keywords: MetaTrader 5,trading,CLI
|
|
7
|
+
Author: Valmir França da Silva
|
|
8
|
+
Author-email: vfranca3@gmail.com
|
|
9
|
+
Requires-Python: >=3.10,<3.14.0
|
|
10
|
+
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
+
Requires-Dist: click (>=8.2.1,<9.0.0)
|
|
17
|
+
Requires-Dist: metatrader5 (>=5.0.5260,<6.0.0)
|
|
18
|
+
Project-URL: Documentation, https://mtcli.readthedocs.io/pt-br/latest
|
|
19
|
+
Project-URL: Homepage, https://pypi.org/project/mtcli
|
|
20
|
+
Project-URL: Repository, https://github.com/vfranca/mtcli
|
|
21
|
+
Project-URL: issues, https://github.com/vfranca/mtcli/issues
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
|
|
24
|
+
# mtcli
|
|
25
|
+
|
|
26
|
+
*mtcli* é um aplicativo de linha de comando (CLI) acessível para leitura e análise de gráficos do MetaTrader 5, desenvolvido com foco em acessibilidade para usuários com deficiência visual.
|
|
27
|
+
|
|
28
|
+
O projeto é modular e extensível por meio de plugins.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Instalação
|
|
33
|
+
|
|
34
|
+
Você pode instalar o `mtcli` diretamente via *pip*:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
pip install mtcli
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Ou diretamente a partir do código-fonte:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
git clone https://github.com/vfranca/mtcli.git
|
|
44
|
+
cd mtcli
|
|
45
|
+
pip install .
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Como usar
|
|
51
|
+
|
|
52
|
+
Após a instalação, o comando principal é:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
mt
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Você verá uma lista de comandos e plugins disponíveis.
|
|
59
|
+
|
|
60
|
+
Para executar um plugin específico, use:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
mt nome-do-plugin [opções]
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Exemplo com o plugin de média móvel:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
mt mm --symbol WIN$N --periodo 14
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Documentação
|
|
75
|
+
|
|
76
|
+
A documentação completa está disponível em:
|
|
77
|
+
|
|
78
|
+
*https://vfranca.github.io/mtcli*
|
|
79
|
+
|
|
80
|
+
Inclui guias de uso, instalação de plugins, exemplos e estrutura do projeto.
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Como contribuir
|
|
85
|
+
|
|
86
|
+
Contribuições são bem-vindas!
|
|
87
|
+
|
|
88
|
+
Clonar o repositório
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
git clone https://github.com/vfranca/mtcli.git
|
|
92
|
+
cd mtcli
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Instalar dependências para desenvolvimento
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
pip install -e ".[dev]"
|
|
99
|
+
```
|
|
100
|
+
Rodar os testes
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
pymake test
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Estilo de código
|
|
107
|
+
|
|
108
|
+
- `black` para formatação
|
|
109
|
+
- `isort` para ordenação de imports
|
|
110
|
+
- `pydocstyle` para formatação de docstrings
|
|
111
|
+
- `ruff` e `mypy` para linting e verificação estática
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Criando plugins para o mtcli
|
|
116
|
+
|
|
117
|
+
Plugins permitem estender a funcionalidade do `mtcli`.
|
|
118
|
+
|
|
119
|
+
Estrutura básica de um plugin
|
|
120
|
+
|
|
121
|
+
```toml
|
|
122
|
+
pyproject.toml
|
|
123
|
+
[project.entry-points."mtcli.plugins"]
|
|
124
|
+
nome_do_plugin = "modulo.caminho:funcao_principal"
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Exemplo
|
|
128
|
+
|
|
129
|
+
```toml
|
|
130
|
+
[project.entry-points."mtcli.plugins"]
|
|
131
|
+
volume_medio = "mtcli.plugins.volume_medio:vm"
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
No código Python:
|
|
135
|
+
|
|
136
|
+
```python
|
|
137
|
+
|
|
138
|
+
def vm():
|
|
139
|
+
print("Plugin de volume médio executado.")
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Como empacotar
|
|
143
|
+
|
|
144
|
+
Crie um projeto separado com sua lógica e registre o plugin no `pyproject.toml` ou `setup.py` como acima.
|
|
145
|
+
|
|
146
|
+
Depois, instale com:
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
pip install .
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
O `mtcli` reconhecerá o plugin automaticamente.
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Contato
|
|
157
|
+
|
|
158
|
+
Autor: *Valmir França da Silva*
|
|
159
|
+
|
|
160
|
+
Email: vfranca3@gmail.com
|
|
161
|
+
|
|
162
|
+
GitHub: [@vfranca](https://github.com/vfranca)
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## Licença
|
|
167
|
+
|
|
168
|
+
Distribuído sob a licença GPL-3.0. Veja `LICENSE` para mais informações.
|
|
169
|
+
|
|
170
|
+
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import os
|
|
4
4
|
import configparser
|
|
5
|
+
from configparser import MissingSectionHeaderError
|
|
5
6
|
import click
|
|
6
7
|
import MetaTrader5 as mt5
|
|
7
8
|
from mtcli.conecta import conectar, shutdown
|
|
@@ -13,7 +14,13 @@ CONFIG_PATH = os.path.abspath("mtcli.ini")
|
|
|
13
14
|
def carregar_config():
|
|
14
15
|
config = configparser.ConfigParser()
|
|
15
16
|
if os.path.exists(CONFIG_PATH):
|
|
16
|
-
|
|
17
|
+
try:
|
|
18
|
+
config.read(CONFIG_PATH)
|
|
19
|
+
except MissingSectionHeaderError as e:
|
|
20
|
+
print(f"Erro: o arquivo '{CONFIG_PATH}' não contém seções válidas.")
|
|
21
|
+
print("Certifique-se de que ele está no formato correto:")
|
|
22
|
+
print("[padrao]\nCHAVE=valor")
|
|
23
|
+
exit(1)
|
|
17
24
|
else:
|
|
18
25
|
config["DEFAULT"] = {}
|
|
19
26
|
return config
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "mtcli"
|
|
3
|
-
version = "2.1.
|
|
3
|
+
version = "2.1.2"
|
|
4
4
|
description = "Aplicativo CLI para exibir gráficos do MetaTrader 5 em texto acessível ao leitor de telas"
|
|
5
5
|
authors = [
|
|
6
6
|
{name = "Valmir França da Silva",email = "vfranca3@gmail.com"}
|
|
@@ -28,12 +28,9 @@ media_movel = "mtcli.plugins.media_movel:mm"
|
|
|
28
28
|
range_medio = "mtcli.plugins.range_medio:rm"
|
|
29
29
|
volume_medio = "mtcli.plugins.volume_medio:vm"
|
|
30
30
|
|
|
31
|
-
[project.optional-dependencies]
|
|
32
|
-
build = ["pyinstaller"]
|
|
33
|
-
|
|
34
31
|
[build-system]
|
|
35
|
-
requires = ["
|
|
36
|
-
build-backend = "
|
|
32
|
+
requires = ["poetry-core>=2.0.0,<3.0.0"]
|
|
33
|
+
build-backend = "poetry.core.masonry.api"
|
|
37
34
|
|
|
38
35
|
[tool.pytest.ini_options]
|
|
39
36
|
addopts = "--cov=mtcli --cov-report=html -ra -q"
|
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: mtcli
|
|
3
|
-
Version: 2.1.0
|
|
4
|
-
Summary: Aplicativo CLI para exibir gráficos do MetaTrader 5 em texto acessível ao leitor de telas
|
|
5
|
-
Home-page: https://github.com/vfranca/mtcli
|
|
6
|
-
Author: Valmir França da Silva
|
|
7
|
-
Author-email: Valmir França da Silva <vfranca3@gmail.com>
|
|
8
|
-
License-Expression: GPL-3.0
|
|
9
|
-
Project-URL: homepage, https://pypi.org/project/mtcli
|
|
10
|
-
Project-URL: repository, https://github.com/vfranca/mtcli
|
|
11
|
-
Project-URL: documentation, https://mtcli.readthedocs.io/pt-br/latest
|
|
12
|
-
Project-URL: issues, https://github.com/vfranca/mtcli/issues
|
|
13
|
-
Keywords: MetaTrader 5,trading,CLI
|
|
14
|
-
Requires-Python: >=3.10,<3.14.0
|
|
15
|
-
Description-Content-Type: text/markdown
|
|
16
|
-
License-File: LICENSE
|
|
17
|
-
Requires-Dist: click<9.0.0,>=8.2.1
|
|
18
|
-
Requires-Dist: metatrader5<6.0.0,>=5.0.5260
|
|
19
|
-
Provides-Extra: build
|
|
20
|
-
Requires-Dist: pyinstaller; extra == "build"
|
|
21
|
-
Dynamic: author
|
|
22
|
-
Dynamic: home-page
|
|
23
|
-
Dynamic: license-file
|
|
24
|
-
Dynamic: requires-python
|
|
25
|
-
|
|
26
|
-
# mtcli
|
|
27
|
-
|
|
28
|
-
*mtcli* é um aplicativo de linha de comando (CLI) acessível para leitura e análise de gráficos do MetaTrader 5, desenvolvido com foco em acessibilidade para usuários com deficiência visual.
|
|
29
|
-
|
|
30
|
-
O projeto é modular e extensível por meio de plugins.
|
|
31
|
-
|
|
32
|
-
---
|
|
33
|
-
|
|
34
|
-
## Instalação
|
|
35
|
-
|
|
36
|
-
Você pode instalar o `mtcli` diretamente via *pip*:
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
pip install mtcli
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
Ou diretamente a partir do código-fonte:
|
|
43
|
-
|
|
44
|
-
```bash
|
|
45
|
-
git clone https://github.com/vfranca/mtcli.git
|
|
46
|
-
cd mtcli
|
|
47
|
-
pip install .
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
---
|
|
51
|
-
|
|
52
|
-
## Como usar
|
|
53
|
-
|
|
54
|
-
Após a instalação, o comando principal é:
|
|
55
|
-
|
|
56
|
-
```bash
|
|
57
|
-
mt
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
Você verá uma lista de comandos e plugins disponíveis.
|
|
61
|
-
|
|
62
|
-
Para executar um plugin específico, use:
|
|
63
|
-
|
|
64
|
-
```bash
|
|
65
|
-
mt nome-do-plugin [opções]
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
Exemplo com o plugin de média móvel:
|
|
69
|
-
|
|
70
|
-
```bash
|
|
71
|
-
mt mm --symbol WIN$N --periodo 14
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
---
|
|
75
|
-
|
|
76
|
-
## Documentação
|
|
77
|
-
|
|
78
|
-
A documentação completa está disponível em:
|
|
79
|
-
|
|
80
|
-
*https://vfranca.github.io/mtcli*
|
|
81
|
-
|
|
82
|
-
Inclui guias de uso, instalação de plugins, exemplos e estrutura do projeto.
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
## Como contribuir
|
|
87
|
-
|
|
88
|
-
Contribuições são bem-vindas!
|
|
89
|
-
|
|
90
|
-
Clonar o repositório
|
|
91
|
-
|
|
92
|
-
```bash
|
|
93
|
-
git clone https://github.com/vfranca/mtcli.git
|
|
94
|
-
cd mtcli
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
Instalar dependências para desenvolvimento
|
|
98
|
-
|
|
99
|
-
```bash
|
|
100
|
-
pip install -e ".[dev]"
|
|
101
|
-
```
|
|
102
|
-
Rodar os testes
|
|
103
|
-
|
|
104
|
-
```bash
|
|
105
|
-
pymake test
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
Estilo de código
|
|
109
|
-
|
|
110
|
-
- `black` para formatação
|
|
111
|
-
- `isort` para ordenação de imports
|
|
112
|
-
- `pydocstyle` para formatação de docstrings
|
|
113
|
-
- `ruff` e `mypy` para linting e verificação estática
|
|
114
|
-
|
|
115
|
-
---
|
|
116
|
-
|
|
117
|
-
## Criando plugins para o mtcli
|
|
118
|
-
|
|
119
|
-
Plugins permitem estender a funcionalidade do `mtcli`.
|
|
120
|
-
|
|
121
|
-
Estrutura básica de um plugin
|
|
122
|
-
|
|
123
|
-
```toml
|
|
124
|
-
pyproject.toml
|
|
125
|
-
[project.entry-points."mtcli.plugins"]
|
|
126
|
-
nome_do_plugin = "modulo.caminho:funcao_principal"
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
Exemplo
|
|
130
|
-
|
|
131
|
-
```toml
|
|
132
|
-
[project.entry-points."mtcli.plugins"]
|
|
133
|
-
volume_medio = "mtcli.plugins.volume_medio:vm"
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
No código Python:
|
|
137
|
-
|
|
138
|
-
```python
|
|
139
|
-
|
|
140
|
-
def vm():
|
|
141
|
-
print("Plugin de volume médio executado.")
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
Como empacotar
|
|
145
|
-
|
|
146
|
-
Crie um projeto separado com sua lógica e registre o plugin no `pyproject.toml` ou `setup.py` como acima.
|
|
147
|
-
|
|
148
|
-
Depois, instale com:
|
|
149
|
-
|
|
150
|
-
```bash
|
|
151
|
-
pip install .
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
O `mtcli` reconhecerá o plugin automaticamente.
|
|
155
|
-
|
|
156
|
-
---
|
|
157
|
-
|
|
158
|
-
## Contato
|
|
159
|
-
|
|
160
|
-
Autor: *Valmir França da Silva*
|
|
161
|
-
|
|
162
|
-
Email: vfranca3@gmail.com
|
|
163
|
-
|
|
164
|
-
GitHub: [@vfranca](https://github.com/vfranca)
|
|
165
|
-
|
|
166
|
-
---
|
|
167
|
-
|
|
168
|
-
## Licença
|
|
169
|
-
|
|
170
|
-
Distribuído sob a licença GPL-3.0. Veja `LICENSE` para mais informações.
|
|
171
|
-
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
LICENSE
|
|
2
|
-
README.md
|
|
3
|
-
pyproject.toml
|
|
4
|
-
setup.py
|
|
5
|
-
mtcli/__init__.py
|
|
6
|
-
mtcli/bars.py
|
|
7
|
-
mtcli/conecta.py
|
|
8
|
-
mtcli/conf.py
|
|
9
|
-
mtcli/logger.py
|
|
10
|
-
mtcli/mt.py
|
|
11
|
-
mtcli.egg-info/PKG-INFO
|
|
12
|
-
mtcli.egg-info/SOURCES.txt
|
|
13
|
-
mtcli.egg-info/dependency_links.txt
|
|
14
|
-
mtcli.egg-info/entry_points.txt
|
|
15
|
-
mtcli.egg-info/not-zip-safe
|
|
16
|
-
mtcli.egg-info/requires.txt
|
|
17
|
-
mtcli.egg-info/top_level.txt
|
|
18
|
-
mtcli/data/__init__.py
|
|
19
|
-
mtcli/data/base.py
|
|
20
|
-
mtcli/data/csv.py
|
|
21
|
-
mtcli/data/mt5.py
|
|
22
|
-
mtcli/models/__init__.py
|
|
23
|
-
mtcli/models/model_bar.py
|
|
24
|
-
mtcli/models/model_bars.py
|
|
25
|
-
mtcli/models/model_chart.py
|
|
26
|
-
mtcli/models/model_consecutive_bars.py
|
|
27
|
-
mtcli/models/model_rates.py
|
|
28
|
-
mtcli/models/model_signals.py
|
|
29
|
-
mtcli/models/model_unconsecutive_bar.py
|
|
30
|
-
mtcli/plugins/__init__.py
|
|
31
|
-
mtcli/plugins/agressao/__init__.py
|
|
32
|
-
mtcli/plugins/agressao/command.py
|
|
33
|
-
mtcli/plugins/agressao/conf.py
|
|
34
|
-
mtcli/plugins/agressao/models/__init__.py
|
|
35
|
-
mtcli/plugins/agressao/models/model_agressao.py
|
|
36
|
-
mtcli/plugins/agressao/views/__init__.py
|
|
37
|
-
mtcli/plugins/agressao/views/view_agressao.py
|
|
38
|
-
mtcli/plugins/media_movel/__init__.py
|
|
39
|
-
mtcli/plugins/media_movel/command.py
|
|
40
|
-
mtcli/plugins/media_movel/conf.py
|
|
41
|
-
mtcli/plugins/media_movel/models/__init__.py
|
|
42
|
-
mtcli/plugins/media_movel/models/model_media_movel.py
|
|
43
|
-
mtcli/plugins/media_movel/tests/__init__.py
|
|
44
|
-
mtcli/plugins/media_movel/tests/test_mm.py
|
|
45
|
-
mtcli/plugins/media_movel/tests/test_model_media_movel.py
|
|
46
|
-
mtcli/plugins/range_medio/__init__.py
|
|
47
|
-
mtcli/plugins/range_medio/command.py
|
|
48
|
-
mtcli/plugins/range_medio/conf.py
|
|
49
|
-
mtcli/plugins/range_medio/models/__init__.py
|
|
50
|
-
mtcli/plugins/range_medio/models/model_average_range.py
|
|
51
|
-
mtcli/plugins/range_medio/tests/__init__.py
|
|
52
|
-
mtcli/plugins/range_medio/tests/test_rm.py
|
|
53
|
-
mtcli/plugins/volume_medio/__init__.py
|
|
54
|
-
mtcli/plugins/volume_medio/command.py
|
|
55
|
-
mtcli/plugins/volume_medio/conf.py
|
|
56
|
-
mtcli/plugins/volume_medio/models/__init__.py
|
|
57
|
-
mtcli/plugins/volume_medio/models/model_average_volume.py
|
|
58
|
-
mtcli/plugins/volume_medio/tests/__init__.py
|
|
59
|
-
mtcli/plugins/volume_medio/tests/test_vm.py
|
|
60
|
-
mtcli/views/__init__.py
|
|
61
|
-
mtcli/views/view_close.py
|
|
62
|
-
mtcli/views/view_full.py
|
|
63
|
-
mtcli/views/view_high.py
|
|
64
|
-
mtcli/views/view_low.py
|
|
65
|
-
mtcli/views/view_min.py
|
|
66
|
-
mtcli/views/view_open.py
|
|
67
|
-
mtcli/views/view_ranges.py
|
|
68
|
-
mtcli/views/view_rates.py
|
|
69
|
-
mtcli/views/view_vars.py
|
|
70
|
-
mtcli/views/view_volumes.py
|
|
71
|
-
tests/__init__.py
|
|
72
|
-
tests/test_bars.py
|
|
73
|
-
tests/models/__init__.py
|
|
74
|
-
tests/models/test_model_bar.py
|
|
75
|
-
tests/models/test_model_consecutive_bars.py
|
|
76
|
-
tests/models/test_model_signals.py
|
|
77
|
-
tests/models/test_model_unconsecutive_bar.py
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|
mtcli-2.1.0/setup.cfg
DELETED