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.dev2.tar.gz (19.5 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.dev2-py3-none-any.whl (21.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mtcli_vap-1.0.0.dev2.tar.gz
  • Upload date:
  • Size: 19.5 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.dev2.tar.gz
Algorithm Hash digest
SHA256 4b25a5e2c97fff7eaab0aa74db0044804ac8456c76558fe3804495035da0a9ac
MD5 c036116834b17592666b196ddcaf1a9d
BLAKE2b-256 d4dc27e8e2879dabdfe4964746892cc7c838e4b48a87797081ae8ebe8339aea6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mtcli_vap-1.0.0.dev2-py3-none-any.whl
  • Upload date:
  • Size: 21.2 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.dev2-py3-none-any.whl
Algorithm Hash digest
SHA256 c6970d4f87b66b08cc51eba0ea3715a41164593ce4087029422070f2f6527880
MD5 3a0d11241b3d5f8096759774c07a8360
BLAKE2b-256 f5148f047b467b5e267f12c93b504ef7ebe0ac23a85a4b9e0baabf3a8f8b1ace

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