Overview
O sistema de Configuração de Precisão do MagicTradeBot oferece controle total sobre a relação entre qualidade e quantidade de sinais. Cada um dos mais de 15 tipos de sinais possui sua própria seção dedicada de configuração em tradesettings.yaml, permitindo ajustar parâmetros desde agressivos (alta frequência, mais ruído) até conservadores (baixa frequência, alta confiabilidade). Esse nível de controle granular permite analisar milhares de símbolos e filtrar apenas as melhores oportunidades que combinam com o seu perfil de risco.
O Compromisso entre Qualidade e Quantidade
Espectro de Rigor do Sinal
AGRESSIVO ←――――――――――――――――――――――――――――――――――→ CONSERVADOR (Alta Quantidade) (Alta Qualidade) Mais Sinais Menos Sinais Menor Taxa de Acerto Maior Taxa de Acerto Maior Risco Menor Risco Trading Ativo Trading Seletivo
Princípio-chave: Limiares mais rígidos = menos sinais, porém maior probabilidade de acerto. Limiares mais amplos = mais sinais, porém mais falsos positivos.
Filosofia de Configuração
Cada parâmetro de sinal pode ser ajustado em três dimensões:
- Sensibilidade – Com que facilidade o sinal é acionado (valores de limiar)
- Confirmação – Quantas condições precisam se alinhar (requisitos multifatores)
- Filtragem – Quais critérios adicionais devem ser atendidos (volume, volatilidade, etc.)
Estrutura de Configuração
Todas as configurações de sinais são centralizadas em tradesettings.yaml:
yaml
signals:
rsi:
enabled: true
oversold_threshold: 30
overbought_threshold: 70
# ... mais configurações de RSI
macd:
enabled: true
fast_period: 12
slow_period: 26
# ... mais configurações de MACD
# ... todas as demais configurações de sinais
Cada seção é configurável de forma independente, permitindo combinar configurações agressivas para alguns sinais e conservadoras para outros.
Opções de Configuração por Sinal
Configuração de Sinais RSI
Finalidade: Controlar a sensibilidade de sobrecompra/sobrevenda e a detecção de divergência
yaml
rsi:
enabled: true
period: 14
# Configuração de Limiares
oversold_threshold: 30
overbought_threshold: 70
# Filtros de Qualidade
require_volume_confirmation: true
min_volume_multiplier: 1.5
# Configurações de Divergência
enable_divergence_detection: true
divergence_lookback: 20
divergence_min_strength: 0.6
# Filtragem de Sinais
ignore_in_strong_trends: true
min_price_move_percent: 0.5
Guia de Ajuste:
- Mais Sinais: oversold=40, overbought=60, require_volume=false
- Sinais Melhores: oversold=20, overbought=80, require_volume=true, min_strength=0.8
Configuração de Sinais MACD
Finalidade: Ajustar com precisão a sensibilidade dos cruzamentos e os limiares do histograma
yaml
macd:
enabled: true
# Configuração de Períodos
fast_period: 12
slow_period: 26
signal_period: 9
# Disparos de Sinal
trigger_on_crossover: true
trigger_on_histogram_flip: true
trigger_on_divergence: true
# Filtros de Qualidade
min_histogram_value: 0.0001
require_momentum_confirmation: true
min_bars_since_last_signal: 5
# Divergência
divergence_lookback: 15
divergence_min_strength: 0.65
# Filtros de Contexto
ignore_choppy_markets: true
choppiness_threshold: 61.8
Guia de Ajuste:
- Mais Sinais: fast=8, slow=17, min_histogram=0, ignore_choppy=false
- Sinais Melhores: fast=16, slow=35, min_histogram=0.0005, min_bars=10
Configuração das Bandas de Bollinger
Objetivo: Controlar a sensibilidade à volatilidade e a rigidez da reversão à média
yaml
bollinger_bands:
enabled: true
period: 20
std_dev: 2.0
trigger_on_touch: true
trigger_on_break: false
require_reversal_candle: true
min_band_width_percent: 2.0
max_band_width_percent: 10.0
require_volume_spike: true
min_volume_ratio: 1.3
enable_squeeze_alerts: true
squeeze_threshold: 1.5
squeeze_breakout_multiplier: 2.0
require_price_return_to_middle: false
Guia de Ajuste:
- Mais Sinais: std_dev=1.5, trigger_on_break=true, require_reversal=false
- Melhores Sinais: std_dev=2.5, min_band_width=3.0, require_volume=true
Configuração de Sinais ATR
Objetivo: Definir limites de expansão de volatilidade e critérios de breakout
yaml
atr:
enabled: true
period: 14
breakout_multiplier: 1.5
min_atr_expansion_percent: 20
lookback_for_expansion: 10
require_volume_confirmation: true
min_volume_multiplier: 1.8
require_directional_close: true
close_position_percent: 0.8
min_bars_in_consolidation: 5
max_prior_volatility: 2.5
ignore_gaps: true
ignore_news_hours: true
Guia de Ajuste:
- Mais Sinais: multiplier=1.2, min_expansion=10, min_bars=3
- Melhores Sinais: multiplier=2.0, min_expansion=30, min_bars=8, volume=2.0x
Configuração de Sinais de Volume
Objetivo: Definir limites para a detecção de volume incomum
yaml
volume:
enabled: true
lookback_period: 20
spike_multiplier: 2.0
detect_buying_volume: true
detect_selling_volume: true
detect_climax_volume: true
min_candle_body_percent: 40
require_price_confirmation: true
min_price_move_percent: 1.0
climax_multiplier: 4.0
climax_lookback: 50
signal_reversal_after_climax: true
use_volume_profile: true
significant_level_volume_ratio: 1.5
ignore_low_liquidity_symbols: true
min_dollar_volume: 100000
Guia de Ajuste:
- Mais Sinais: multiplier=1.5, min_body=30, min_move=0.5
- Melhores Sinais: multiplier=3.0, min_body=60, climax=5.0, dollar_volume=500k
Configuração de Sinais de Momentum / Velocidade
Objetivo: Detectar aceleração da taxa de variação
yaml
momentum_velocity:
enabled: true
momentum_period: 10
velocity_lookback: 5
min_momentum_percent: 2.0
min_velocity_increase: 1.5
require_sustained_momentum: true
min_consecutive_periods: 3
require_volume_increase: true
enable_momentum_divergence: true
divergence_lookback: 15
divergence_sensitivity: 0.7
ignore_choppy_conditions: true
max_directional_changes: 2
require_trend_alignment: true
trend_timeframe_multiplier: 4
Guia de Ajuste:
- Mais Sinais: period=5, min_momentum=1.0, consecutive=2, require_trend=false
- Melhores Sinais: period=20, min_momentum=3.0, consecutive=5, velocity=2.0
Configuração de Divergência RSI
Objetivo: Ajustar a sensibilidade da divergência
yaml
rsi_divergence:
enabled: true
lookback_period: 20
min_pivot_strength: 3
min_pivots_required: 2
min_divergence_angle: 15
min_rsi_difference: 5
min_price_difference_percent: 1.0
require_volume_confirmation: true
volume_must_decrease: true
require_trend_context: true
detect_hidden_divergence: true
hidden_requires_stricter_rules: true
ignore_in_consolidation: true
min_atr_for_signal: 0.5
Guia de Ajuste:
- Mais Sinais: lookback=10, pivot=2, angle=10, volume=false
- Melhores Sinais: lookback=30, pivot=5, angle=25, rsi_diff=8
Configuração VWAP & Bandas
Objetivo: Configurar a lógica das bandas de desvio VWAP
yaml
vwap:
enabled: true
reset_period: "daily"
use_cumulative: true
enable_bands: true
band_1_std_dev: 1.0
band_2_std_dev: 2.0
band_3_std_dev: 3.0
trigger_on_band_touch: true
trigger_level: 2
require_rejection_candle: true
min_distance_from_vwap_percent: 0.5
require_volume_at_level: true
volume_percentile_threshold: 70
require_return_toward_vwap: true
min_reversion_percent: 30
max_bars_for_reversion: 5
ignore_trending_markets: false
min_time_from_reset: 60
Guia de Ajuste:
- Mais Sinais: trigger_level=1, min_distance=0.2, rejection=false
- Melhores Sinais: trigger_level=3, min_distance=1.0, volume_percentile=80
Configuração CVD (Cumulative Volume Delta)
Objetivo: Detectar desequilíbrios de pressão
yaml
cvd:
enabled: true
lookback_period: 100
enable_divergence_signals: true
divergence_lookback: 20
min_divergence_strength: 0.7
cvd_trend_period: 20
min_cvd_trend_strength: 0.6
trigger_on_divergence: true
trigger_on_trend_change: true
trigger_on_exhaustion: true
min_cvd_change_percent: 10
require_price_confirmation: true
min_price_move_percent: 0.8
exhaustion_lookback: 10
exhaustion_threshold: 0.3
require_volume_divergence: true
ignore_low_volume_periods: true
min_volume_for_valid_cvd: 1.5
Guia de Ajuste:
- Mais Sinais: lookback=50, min_change=5, exhaustion=0.5
- Melhores Sinais: lookback=200, min_change=20, strength=0.8, volume_divergence=true
Configuração de Alinhamento Multi-Intervalo
Objetivo: Definir regras de alinhamento entre múltiplos intervalos de gráfico
yaml
multi_timeframe:
enabled: true
base_timeframe: "5m"
higher_timeframes:
- "15m"
- "1h"
- "4h"
require_all_aligned: false
min_alignment_percent: 75
primary_signals:
- "RSI"
- "MACD"
- "MOMENTUM"
confirmation_signals:
- "TREND_DIRECTION"
- "REGIME"
trend_indicator: "EMA"
trend_periods:
fast: 20
slow: 50
require_higher_tf_trend: true
min_higher_tf_strength: 0.6
ignore_conflicting_signals: true
weight_by_timeframe: true
timeframe_weights:
"5m": 1.0
"15m": 1.5
"1h": 2.0
"4h": 3.0
Guia de Ajuste:
- Mais Sinais: alignment=50, require_higher_tf_trend=false, check 2 TF
- Melhores Sinais: alignment=100, require_all=true, check 4+ TF
Configuração de Detecção do Regime de Mercado
Objetivo: Detectar condições de mercado em tendência, lateral, volátil ou calmo
yaml
market_regime:
enabled: true
lookback_period: 50
trend_indicator: "ADX"
trend_threshold: 25
range_indicator: "CHOPPINESS"
range_threshold: 61.8
volatility_measure: "ATR_PERCENTILE"
high_volatility_threshold: 70
low_volatility_threshold: 30
signal_on_regime_change: true
require_confirmation_bars: 3
adjust_other_signals: true
regime_adjustments:
trending:
rsi_overbought: 80
rsi_oversold: 20
follow_trend_only: true
ranging:
bb_std_dev: 1.5
enable_mean_reversion: true
disable_breakout_signals: true
volatile:
atr_multiplier: 2.5
reduce_position_size: 0.5
calm:
atr_multiplier: 1.2
increase_position_size: 1.2
Guia de Ajuste:
- Mais Sinais: lookback=20, trend_threshold=20, confirm=1
- Melhores Sinais: lookback=100, trend_threshold=30, confirm=5
Configuração de Força Relativa vs BTC
Objetivo: Configurar métricas de comparação e limites de desempenho superior
Configuração de Força Relativa vs BTC
Objetivo: Configurar métricas de comparação e limites de desempenho superior
relative_strength:
enabled: true
# Cálculo de RS
lookback_period: 20 # Calcular RS em 20 períodos
# Curto prazo = 10, Longo prazo = 50
comparison_symbol: "BTCUSDT" # Ativo padrão de comparação
# Limites de Força
min_outperformance_percent: 5 # Deve superar em ≥5%
# Agressivo = 2, Conservador = 10
min_consecutive_periods: 3 # Superar por 3 barras consecutivas
# Filtros de Qualidade
require_volume_confirmation: true
min_relative_volume: 1.2 # Volume do símbolo > 1,2x volume relativo do BTC
require_absolute_gain: true # Tanto o símbolo quanto o BTC devem ser positivos (mercado em alta)
allow_absolute_loss_outperformance: false # Não sinalizar se ambos estiverem em queda
# Detecção de Divergência
detect_rs_divergence: true # Preço enfraquecendo, mas RS fortalecendo
divergence_lookback: 15
# Alinhamento de Tendência
require_btc_trend_agreement: false # Permitir sinais contra BTC
btc_trend_threshold: 0.5 # Se necessário, força da tendência do BTC
# Detecção de Breakout
detect_rs_breakout: true # RS rompendo máximas anteriores
rs_breakout_lookback: 50
rs_breakout_buffer: 0.95 # Deve exceder 95% da máxima do lookback
Guia de Ajuste:
- Mais Sinais: min_outperformance=2, consecutive=2, require_absolute=false
- Sinais Melhores: min_outperformance=10, consecutive=5, require_volume=true
Configuração de Desequilíbrio do Fluxo de Ordens (OFI)
Objetivo: Definir sensibilidade para detecção de desequilíbrio no livro de ordens
order_flow_imbalance:
enabled: true
# Cálculo de OFI
calculation_window: 5 # Medir desequilíbrio em 5 ticks/barras
# Ultra-rápido = 3, Padrão = 5, Lento = 10
# Limites de Desequilíbrio
min_imbalance_ratio: 2.0 # Relação Compras/Vendas > 2,0 ou < 0,5
# Agressivo = 1,5, Conservador = 3,0
min_imbalance_volume: 10000 # Volume mínimo para sinal válido de OFI
# Filtros de Qualidade
require_sustained_imbalance: true
min_sustained_periods: 3 # Desequilíbrio deve persistir por 3 janelas de cálculo
require_price_confirmation: true
min_price_move_with_ofi: 0.1 # Preço deve se mover ≥0,1% na direção do OFI
# Detecção de Exaustão
detect_ofi_exhaustion: true # OFI enfraquecendo = reversão
exhaustion_ratio_threshold: 1.2 # Desequilíbrio caindo abaixo de 1,2
# Filtros de Contexto
ignore_low_liquidity: true
min_order_book_depth: 50000 # Exigir profundidade de $50k no melhor bid/ask
ignore_spread_widening: true # Ignorar sinais quando spread > normal
max_spread_multiplier: 2.0
# Filtros Baseados no Tempo
ignore_market_open_close: true # Ignorar primeiros/últimos 5 min da sessão
open_close_buffer_minutes: 5
Guia de Ajuste:
- Mais Sinais: window=3, ratio=1.5, sustained=2, price_move=0.05
- Sinais Melhores: window=10, ratio=3.0, sustained=5, depth=100k
Configuração do Índice de Choppiness
Objetivo: Definir limites para identificação de mercados em tendência vs instáveis
choppiness_index:
enabled: true
# Cálculo de Chop
period: 14 # Padrão = 14, Rápido = 7, Lento = 21
# Limites de Regime
choppy_threshold: 61.8 # Chop > 61,8 = instável/faixa
trending_threshold: 38.2 # Chop < 38,2 = tendência forte
# Agressivo: 55/45, Conservador: 65/35
# Geração de Sinal
signal_on_transition: true # Sinal ao cruzar limites
require_confirmation_bars: 2 # Esperar 2 barras após cruzamento
signal_direction_from: # Como determinar compra/venda
method: "PRICE_MOMENTUM" # Opções: "PRICE_MOMENTUM", "BREAKOUT_DIRECTION", "CUSTOM"
lookback: 10
# Filtros de Qualidade
min_time_in_chop: 10 # Deve estar instável por ≥10 barras antes do breakout
max_time_in_chop: 50 # Não sinalizar se instável >50 barras (provável continuação)
require_volume_expansion: true # Volume deve aumentar no breakout
min_volume_multiplier: 1.5
# Uso Integrado
use_as_filter_only: false # True = apenas filtrar outros sinais, não gerar próprios
filter_other_signals_in_chop: true # Desativar certos sinais quando instável
signals_to_disable_in_chop:
- "BREAKOUT"
- "MOMENTUM"
- "TREND_FOLLOWING"
signals_to_enable_in_chop:
- "MEAN_REVERSION"
- "RANGE_TRADING"
Guia de Ajuste:
- Mais Sinais: thresholds=55/45, confirmation=1, min_time=5
- Sinais Melhores: thresholds=65/35, confirmation=3, min_time=15, max_time=30