Skip to main content

Plugin mtcli do indicador VAP

Project description

mtcli-vap

Plugin Volume At Price (VAP) para o mtcli, inspirado no Volume At Price do Profit (Nelógica), com foco em leitura de volume por preço, acessibilidade e uso em terminal.

O mtcli-vap apresenta o VAP de forma textual, ordenável e scriptável, ideal para traders que trabalham com price action, fluxo de ordens e volume, sem dependência de gráficos.


##Características

  • Volume At Price por preço
  • Distribuição de volume ao longo do range do candle
  • Ordenação por volume ou por preço
  • Percentual do volume total por nível
  • Totalmente acessível (compatível com NVDA, JAWS, leitores de tela)
  • Arquitetura MVC (Model / View / Controller)
  • Fácil de testar e evoluir
  • Saída em texto puro, ideal para CLI, logs e pipes

🎯 Objetivo do projeto

Este plugin busca reproduzir conceitualmente o comportamento do Volume At Price do Profit, respeitando as limitações do MetaTrader 5 (uso de candles em vez de Times & Trades), mas aplicando técnicas que reduzem vieses comuns, como:

  • Concentrar todo o volume no preço de fechamento
  • Distribuir o volume entre todos os níveis do candle

O resultado é um mapa de volume por preço muito mais fiel, utilizável em leitura de fluxo e contextos de day trade.


Instalação

Este plugin faz parte do ecossistema mtcli.

pip install mtcli-vap

Clone o repositório e instale em modo desenvolvimento:

git clone https://github.com/seu-usuario/mtcli-vap.git
cd mtcli-vap
pip install -e .

É necessário ter o MetaTrader 5 instalado e configurado no sistema.


Uso básico

mtcli vap --symbol WDOF26

Saída (exemplo):

--------------------------------------------
Volume At Price (VAP)
--------------------------------------------
   Preço |       Volume | %
--------------------------------------------
102.450 |     12.340 | 18.2
102.500 |      9.810 | 14.5
102.400 |      7.220 | 10.7

Opções disponíveis

Símbolo

--symbol, -s

Símbolo do ativo no MetaTrader 5.

Exemplo:

mtcli vap --symbol WINZ25

Timeframe

--period, -p

Timeframe usado para construir o VAP.

Valores aceitos:

M1, M5, M15, M30, H1, H4, D1

Número de candles

--limit, -l

Quantidade de candles analisados.

Exemplo:

mtcli vap --symbol WDOF26 --limit 300

Ordenação

--sort volume|price
  • volume (padrão): mostra primeiro os preços mais relevantes
  • price: mostra o VAP como um mapa contínuo de preços

Exemplos:

mtcli vap --symbol WDOF26 --sort volume
mtcli vap --symbol WDOF26 --sort price

Como o VAP é calculado

  1. Os candles são obtidos via MetaTrader 5
  2. O volume de cada candle é extraído (real_volume ou tick_volume)
  3. O range [low, high] do candle é dividido respeitando o tick size
  4. O volume é distribuído igualmente entre todos os níveis de preço
  5. Os volumes são agregados por preço

Essa abordagem aproxima o cálculo do VAP real baseado em negócios, utilizado no Profit.


Estrutura do projeto (MVC)

mtcli_vap/
├── cli.py          # Interface de linha de comando (Click)
├── controller.py   # Orquestra Model → View
├── model.py        # Cálculo do VAP
├── view.py         # Renderização textual acessível
├── conf.py         # Configurações (DIGITOS, TICK_SIZE)

Acessibilidade

Este plugin foi projetado para:

  • Uso sem gráficos
  • Saída textual clara
  • Compatibilidade com leitores de tela
  • Leitura sequencial e previsível

Isso o torna adequado para:

  • Ambientes headless
  • Traders com deficiência visual
  • Automação e scripts

Roadmap (planejado)

  • Destaque do POC (Point of Control)
  • Cálculo de VAH / VAL (Value Area)
  • Filtro --top N
  • Delta por preço (quando houver fonte de dados)
  • Integração com Market Profile textual

⚠️ Limitações conhecidas

  • O MetaTrader 5 não fornece Times & Trades completos
  • O VAP é uma aproximação baseada em candles
  • Não há agressão real de compra/venda (por enquanto)

Mesmo assim, a distribuição por range reduz significativamente os vieses tradicionais.


Contribuições

Contribuições são bem-vindas.

Sugestões comuns:

  • Otimização de performance
  • Novos formatos de saída
  • Métricas de fluxo
  • Integração com outras fontes de dados

Abra uma issue ou envie um pull request.


Licença

GPL License.


Inspiração

  • Volume At Price — Profit / Nelógica
  • Market Profile
  • Tape Reading
  • Price Action baseado em volume

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mtcli_vap-1.0.0.dev1.tar.gz (19.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mtcli_vap-1.0.0.dev1-py3-none-any.whl (21.0 kB view details)

Uploaded Python 3

File details

Details for the file mtcli_vap-1.0.0.dev1.tar.gz.

File metadata

  • Download URL: mtcli_vap-1.0.0.dev1.tar.gz
  • Upload date:
  • Size: 19.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.13.7 Windows/11

File hashes

Hashes for mtcli_vap-1.0.0.dev1.tar.gz
Algorithm Hash digest
SHA256 e9ab88ca752b8a56f27e3a0e097735420cd3d408f77f92b39a65639b6a129601
MD5 03ef25c00fac1e5d005b3e8bc89e89a6
BLAKE2b-256 1efaa403874dceaa1f9ab7e1d64cd962eb23de8401a63007f860d57a721cf4b5

See more details on using hashes here.

File details

Details for the file mtcli_vap-1.0.0.dev1-py3-none-any.whl.

File metadata

  • Download URL: mtcli_vap-1.0.0.dev1-py3-none-any.whl
  • Upload date:
  • Size: 21.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.13.7 Windows/11

File hashes

Hashes for mtcli_vap-1.0.0.dev1-py3-none-any.whl
Algorithm Hash digest
SHA256 145e5b9c029bf5975909d33ce31d53d0222c0485914402f09a628b87c5985155
MD5 862b9fe7d852347742fc7eba0bfa5550
BLAKE2b-256 e2ad60f6f5cc2cc2140259bdd88c3ce2061776b4054d8706a5290b304c965dc8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page