11a0921e20
- Footprint bars bid/ask por nível com cor dominante - Painel inferior duplo: volume (barras) + delta (blocos azul/laranja) - Linha de preço atual ciano dashed com tag no eixo - Timestamp por cluster no eixo X - Drag no eixo de tempo para zoom horizontal - Drag no eixo de preço para ajustar step multiplier - Coleta de volume via price-step method para delta correto - Guard is_live para evitar flood de WebSocket no replay histórico - total_ticks adicionado ao aggregator Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
23 lines
1.0 KiB
Python
23 lines
1.0 KiB
Python
import os
|
|
|
|
# MT5
|
|
MT5_LOGIN = int(os.environ.get("MT5_LOGIN", 0)) # seu número de conta
|
|
MT5_PASSWORD = os.environ.get("MT5_PASSWORD", "") # sua senha
|
|
MT5_SERVER = os.environ.get("MT5_SERVER", "") # nome do servidor (ex: "XPInvestimentos-Real")
|
|
MT5_SYMBOL = os.environ.get("MT5_SYMBOL", "USTEC") # símbolo padrão
|
|
|
|
# Cluster
|
|
CLUSTER_RANGE_POINTS = float(os.environ.get("CLUSTER_RANGE_POINTS", 50.0))
|
|
CLUSTER_VOLUME_MAX = float(os.environ.get("CLUSTER_VOLUME_MAX", 100000))
|
|
CLUSTER_DELTA_MAX = float(os.environ.get("CLUSTER_DELTA_MAX", 800))
|
|
CLUSTER_TIME_SECONDS = float(os.environ.get("CLUSTER_TIME_SECONDS", 300))
|
|
CLUSTER_CLOSE_MODE = os.environ.get("CLUSTER_CLOSE_MODE", "delta") # "range" | "volume" | "delta" | "time"
|
|
|
|
# Imbalance
|
|
IMBALANCE_RATIO = float(os.environ.get("IMBALANCE_RATIO", 3.0))
|
|
STACKED_MIN_COUNT = int(os.environ.get("STACKED_MIN_COUNT", 3))
|
|
|
|
# WebSocket
|
|
WS_PORT = int(os.environ.get("WS_PORT", 6002))
|
|
HISTORY_BUFFER_SIZE = int(os.environ.get("HISTORY_BUFFER_SIZE", 500))
|