Estratégia de negociação de consenso multiindicador: Sistema de sinal de tendência ponderado pela liquidez

ATR EMA SMA LWST WT HLC3 TP/SL
Data de criação: 2025-03-25 17:07:14 última modificação: 2025-03-25 17:07:14
cópia: 0 Cliques: 434
2
focar em
319
Seguidores

Estratégia de negociação de consenso multiindicador: Sistema de sinal de tendência ponderado pela liquidez Estratégia de negociação de consenso multiindicador: Sistema de sinal de tendência ponderado pela liquidez

Visão geral

A estratégia de negociação de consenso de múltiplos indicadores é um sistema de negociação quantitativa que combina três indicadores técnicos diferentes para confirmar os sinais de negociação por meio da verificação mútua entre os indicadores. A estratégia integra um sistema de sinais de tendência de ondas amplificadas e um oscilador de tendência de ondas amplificadas, que executa operações de compra ou venda apenas quando pelo menos dois indicadores dão sinais na mesma direção.

Princípio da estratégia

O princípio central da estratégia de negociação de consenso de múltiplos indicadores é confirmar a direção do negócio através da análise multidimensional do estado do mercado:

  1. Supertrend de Peso de Liquidez (LWST)O indicador combina o tradicional indicador de tendência super com o peso de tráfego, tornando a banda mais sensível em áreas de alto tráfego. O processo de cálculo inclui:

    • Calcular o volume de transação SMA e gerar o volume de transação peso
    • Subida e descida com base no ATR e no peso do volume de transação
    • Determinação da direção da tendência através da relação entre o preço e a linha de tendência
  2. Sistema de sinalização de tendênciaUtilizando o sistema de EMA duplo para detectar tendências de preços. A intensidade da tendência de mercado é julgada pela diferença percentual entre a média móvel rápida e a média móvel lenta. Quando a EMA rápida excede a EMA lenta e atinge o limiar definido, gera um sinal de múltiplas cabeças; ao contrário, gera um sinal de cabeças vazias

  3. Oscilador de tendência de ondas amplificadas (WT)O valor de oscilação é calculado com base no grau de desvio do preço em relação à sua média plana, para identificar um estado de sobrecompra e sobrevenda. O indicador gera sinais através dos seguintes passos:

    • Calcule o preço típico (HLC3) e faça o EMA de suavização
    • Calcular a volatilidade dos preços e estandardizar a geração de valores oscilantes
    • Aplicação de duas linhas de diferentes níveis de suavidade para identificar pontos de interseção e áreas de extremos
  4. Mecanismos de sinalização de cogniçãoA estratégia executa uma transação somente se pelo menos dois indicadores estiverem de acordo. Isso é feito calculando o número de indicadores múltiplos (variando de 3 a 3), gerando um sinal de compra quando o valor é maior do que 2 e um sinal de venda quando é menor do que 2.

  5. Gestão de RiscosCada transação é configurada com base no preço de entrada (default 2%) e no limite de parada (default 4%) e é automaticamente desativada quando qualquer um dos dois requisitos é atingido.

Vantagens estratégicas

  1. Filtragem de sinais reforçadaA exigência de um consenso entre vários indicadores para executar uma transação reduz significativamente os sinais enganosos que um único indicador pode gerar, aumentando a precisão da transação.

  2. Adaptação a diferentes situações de mercadoOs três indicadores focam em diferentes propriedades do mercado (trend, momentum, volatilidade), permitindo que a estratégia permaneça eficaz em diferentes cenários de mercado.

  3. Ajustes sensíveis à liquidezA supertrend de peso de liquidez ajusta a sensibilidade de acordo com a dinâmica do volume de transações, permitindo que a estratégia capte mudanças de tendência mais rapidamente em áreas de alta liquidez e seja mais conservadora em áreas de baixa liquidez.

  4. Gestão de riscos internaO mecanismo de stop loss e stop-loss fornece uma taxa de retorno de risco clara para cada transação, controlando o risco de uma única transação dentro de limites aceitáveis.

  5. Ferramentas visuais intuitivasA estratégia fornece tabelas de sinais e marcadores gráficos em tempo real, ajudando os comerciantes a entender rapidamente o estado atual do mercado e os sinais de cada indicador.

  6. Integração de gestão de fundosGerenciamento inteligente de fundos, evitando o risco excessivo, através da configuração do tamanho da posição com base no direito de participação da conta.

Risco estratégico

  1. Sensibilidade do parâmetroEstratégia: Utilize vários parâmetros ajustáveis, a configuração inadequada de parâmetros pode levar a otimização excessiva ou falta de sinal. Método de Solução: Faça uma análise abrangente de sensibilidade de parâmetros, escolha de combinações de parâmetros que apresentem desempenho estável em várias condições de mercado.

  2. Atrasos no sinalSolução: Considere definir diferentes combinações de parâmetros para diferentes períodos de tempo, ou adicionar um indicador de curto prazo mais sensível.

  3. Mercado horizontal não funciona bemSolução: Adicionar um filtro que identifica especificamente o mercado horizontal, suspender a negociação quando é identificado o mercado horizontal ou mudar para uma estratégia projetada especificamente para o mercado horizontal.

  4. Risco de perda fixaO uso de stop loss de porcentagem fixa pode não ser adequado para as características de flutuação de diferentes ativos. Solução: Ajustar a distância de stop loss de forma dinâmica com base no ATR ou na flutuação histórica.

  5. Riscos de gestão de fundosO uso padrão de 100% dos fundos da conta pode levar a uma concentração excessiva de risco. Método de Solução: Ajustar o tamanho da posição de acordo com o estado do mercado e a dinâmica da intensidade do sinal, implementar estratégias de negociação descentralizadas.

Direção de otimização da estratégia

  1. Ajuste de parâmetros dinâmicos:

    • Implementar mecanismos de adaptação de parâmetros baseados na volatilidade do mercado, como aumentar o ATR em momentos de alta volatilidade
    • Princípio: Diferentes ambientes de mercado requerem diferentes sensibilidades de parâmetros, os parâmetros de adaptação podem aumentar a universalidade da estratégia
  2. Adicionar filtro de ambiente de mercado:

    • Adição de um mecanismo de julgamento capaz de identificar o estado do mercado (trend, horizontal, alta volatilidade)
    • Ajustar a frequência de negociação ou suspender a negociação em diferentes cenários de mercado
    • Princípio: Nem todas as condições de mercado são adequadas para a negociação, e a negociação seletiva pode aumentar a probabilidade de vitória global
  3. Otimização do mecanismo de suspensão/paragem:

    • Alcançar um objetivo de parada dinâmica baseado em pontos de suporte/resistência
    • Desenho de rastreamento de perdas para proteger os lucros
    • Princípio: A percentagem fixa de stop-loss não permite aproveitar as características estruturais do mercado
  4. Classificação de intensidade do sinal:

    • Mecanismo de ajuste de tamanho de posição baseado na consistência do indicador e na intensidade do sinal
    • Utilize a posição máxima quando os três indicadores coincidem, e uma posição menor quando apenas dois coincidem
    • Princípio: A intensidade do sinal está relacionada com a probabilidade de sucesso da transação e deve ser refletida na gestão de posições
  5. Filtro de tempo:

    • Adição de filtros de tempo para evitar a divulgação de dados econômicos importantes ou oscilações de abertura e fechamento do mercado
    • Princípio: oscilações de mercado em determinados períodos de tempo podem não seguir os princípios da análise técnica, evitando esses períodos pode reduzir o ruído

Resumir

A estratégia de negociação de consenso de múltiplos indicadores cria um robusto sistema de negociação através da integração de um supertrend ponderado pela liquidez, um sistema de sinalização de tendências e um oscilador de tendências de ondas intensificadas. Sua vantagem central é que o mecanismo de consenso de múltiplos indicadores aumenta significativamente a confiabilidade do sinal, enquanto o componente de ponderação de liquidez acrescenta à estratégia uma maior sensibilidade à profundidade do mercado.

No entanto, a estratégia ainda tem espaço para otimização, especialmente em termos de adaptabilidade dos parâmetros, identificação do estado do mercado e parada de perda dinâmica. A estratégia pode melhorar ainda mais a adaptabilidade e a estabilidade em várias condições de mercado através da implementação de orientações de otimização recomendadas, especialmente a criação de filtros de ambiente de mercado e um sistema de classificação de intensidade de sinal.

Em geral, é um sistema de negociação quantitativa bem projetado, adequado para traders experientes fazerem o feedback e a otimização de parâmetros antes do lançamento. O design modular da estratégia também facilita a modificação e expansão de acordo com as necessidades individuais.

Código-fonte da estratégia
/*backtest
start: 2024-03-25 00:00:00
end: 2025-03-24 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("Multi-Indicator Consensus Strategy", overlay=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// =================== Input Parameters ===================
// Liquidity Weighted Supertrend
lwst_period      = input.int(10, "LWST Period", minval=1, tooltip="Period for ATR calculation")
lwst_multiplier  = input.float(3.0, "LWST Multiplier", minval=0.1, tooltip="Multiplier for ATR bands")
lwst_length      = input.int(20, "Volume SMA Length", minval=1, tooltip="Length for volume SMA")

// Trend Signals
trend_length     = input.int(14, "Trend Length", minval=1, tooltip="Length for EMA calculation")
trend_threshold  = input.float(0.5, "Trend Threshold", minval=0.1, tooltip="Percentage threshold for trend signals")

// Enhanced Wavetrend
wt_channel_length = input.int(9, "WT Channel Length", minval=1, tooltip="Smoothing period for initial calculations")
wt_average_length = input.int(12, "WT Average Length", minval=1, tooltip="Smoothing period for final signal")
wt_ma_length      = input.int(3, "WT MA Length", minval=1, tooltip="Moving average length for signal line")
wt_overbought     = input.float(53, "WT Overbought", minval=0, tooltip="Level to identify overbought conditions")
wt_oversold       = input.float(-53, "WT Oversold", minval=-100, tooltip="Level to identify oversold conditions")

// Risk Management
sl_percent       = input.float(2.0, "Stop Loss %", minval=0.1, tooltip="Stop loss percentage from entry")
tp_percent       = input.float(4.0, "Take Profit %", minval=0.1, tooltip="Take profit percentage from entry")

// =================== Indicator 1: Liquidity Weighted Supertrend ===================
// Volume-weighted component for dynamic sensitivity
vol_sma    = ta.sma(volume, lwst_length)
vol_weight = volume / vol_sma

// ATR-based bands with volume weighting
atr        = ta.atr(lwst_period)
upperBand  = hl2 + lwst_multiplier * atr * vol_weight
lowerBand  = hl2 - lwst_multiplier * atr * vol_weight

// Trend determination based on price action
var float lwst_trend = 0.0
lwst_trend := close > lwst_trend[1] ? 1 : close < lwst_trend[1] ? -1 : lwst_trend[1]

// =================== Indicator 2: Trend Signals ===================
// Dual EMA system for trend detection
fast_ema    = ta.ema(close, trend_length)
slow_ema    = ta.ema(close, trend_length * 2)
trend_diff  = (fast_ema - slow_ema) / slow_ema * 100
trend_signal = trend_diff > trend_threshold ? 1 : trend_diff < -trend_threshold ? -1 : 0

// =================== Indicator 3: Enhanced Wavetrend ===================
// Calculate Wavetrend components
ap  = hlc3  // Typical price
esa = ta.ema(ap, wt_channel_length)  // Smoothed price
d   = ta.ema(math.abs(ap - esa), wt_channel_length)  // Average volatility
ci  = (ap - esa) / (0.015 * d)  // Base oscillator
tci = ta.ema(ci, wt_average_length)  // Smoothed oscillator

// Generate main and signal lines
wt1 = tci
wt2 = ta.sma(wt1, wt_ma_length)

// Generate Wavetrend Signal based on overbought/oversold conditions
wt_signal = 0
wt_signal := wt1 > wt_overbought and wt2 > wt_overbought ? -1 : 
             wt1 < wt_oversold and wt2 < wt_oversold ? 1 : 
             wt_signal[1]

// =================== Consensus Signal Generation ===================
// Count bullish signals (1 point for each bullish indicator)
var int consensus_count = 0
consensus_count := (lwst_trend == 1 ? 1 : 0) + 
                   (trend_signal == 1 ? 1 : 0) + 
                   (wt_signal == 1 ? 1 : 0)

// Generate trading signals when majority (2+ indicators) agree
bool buy_signal  = consensus_count >= 2
bool sell_signal = consensus_count <= -2

// =================== Trade Execution ===================
// Long position entry and exit with risk management
if (buy_signal and strategy.position_size <= 0)
    strategy.entry("Long", strategy.long)
    strategy.exit("Long TP/SL", "Long", 
                 profit = close * tp_percent / 100, 
                 loss = close * sl_percent / 100)

// Short position entry and exit with risk management
if (sell_signal and strategy.position_size >= 0)
    strategy.entry("Short", strategy.short)
    strategy.exit("Short TP/SL", "Short", 
                 profit = close * tp_percent / 100, 
                 loss = close * sl_percent / 100)

// =================== Visualization ===================
// Signal markers for entry points
plotshape(buy_signal ? low : na, "Buy Signal", shape.triangleup, location.belowbar, color.green, size=size.small)
plotshape(sell_signal ? high : na, "Sell Signal", shape.triangledown, location.abovebar, color.red, size=size.small)

// Indicator lines
plot(wt1, "Wavetrend 1", color.blue, linewidth=1)
plot(wt2, "Wavetrend 2", color.orange, linewidth=1)
plot(wt_overbought, "Overbought", color.red, linewidth=1)
plot(wt_oversold, "Oversold", color.green, linewidth=1)
plot(fast_ema, "Fast EMA", color.yellow, linewidth=1)
plot(slow_ema, "Slow EMA", color.white, linewidth=1)
plot(lwst_trend == 1 ? upperBand : na, "Upper Band", color.green, linewidth=2)
plot(lwst_trend == -1 ? lowerBand : na, "Lower Band", color.red, linewidth=2)

// =================== Information Table ===================
// Real-time display of indicator signals
var table info = table.new(position.top_right, 2, 4)
table.cell(info, 0, 0, "Indicator", bgcolor=color.gray, text_color=color.white)
table.cell(info, 1, 0, "Signal", bgcolor=color.gray, text_color=color.white)
table.cell(info, 0, 1, "LWST", text_color=color.white)
table.cell(info, 1, 1, str.tostring(lwst_trend), text_color=lwst_trend == 1 ? color.green : color.red)
table.cell(info, 0, 2, "Trend", text_color=color.white)
table.cell(info, 1, 2, str.tostring(trend_signal), text_color=trend_signal == 1 ? color.green : color.red)
table.cell(info, 0, 3, "Wavetrend", text_color=color.white)
table.cell(info, 1, 3, str.tostring(wt_signal), text_color=wt_signal == 1 ? color.green : color.red)