Estratégia de negociação multiindicador adaptável Vishal

MACD SAR ST EMA ATR TF
Data de criação: 2025-03-28 17:17:56 última modificação: 2025-03-28 17:17:56
cópia: 0 Cliques: 407
2
focar em
319
Seguidores

Estratégia de negociação multiindicador adaptável Vishal Estratégia de negociação multiindicador adaptável Vishal

Visão geral

A estratégia é uma metodologia de negociação quantitativa integrada que identifica tendências de mercado e sinais de negociação através da integração de vários indicadores técnicos (MACD, Supertrend e Parabolic SAR). A estratégia visa fornecer uma estrutura de decisão de negociação flexível e rigorosa que se adapte a diferentes ambientes de mercado.

Princípio da estratégia

A estratégia baseia-se numa combinação dinâmica de três indicadores tecnológicos-chave:

  1. Indicador MACD: Avaliação da dinâmica e direção dos preços
  2. Indicador de Supertrend: julgar a tendência dominante do mercado
  3. Parabolic SAR: fornece sinais precisos de entrada e saída

A estratégia utiliza a seguinte lógica para tomar decisões de negociação:

  • Condições de entrada para a posição longa:
    • A linha MACD está acima da linha de sinal.
    • Supertrend em verde
    • Preço de fechamento acima do Parabolic SAR
  • Condições de entrada para um estoque vazio:
    • A linha MACD está abaixo da linha de sinal
    • Supertrend em vermelho (cabeça em branco)
    • Preço de fechamento abaixo do Parabolic SAR

Vantagens estratégicas

  1. Verificação integrada de múltiplos indicadores: reduzir o risco de falsos sinais
  2. Trigger de sinal flexível: sem exigências rigorosas de sequência de acionamento dos indicadores
  3. Estratégia de negociação total: maximizar o lucro potencial de cada transação
  4. Lógica de negociação simétrica: desempenho consistente em mercados multi-head e no-head
  5. Mecanismos de saída dinâmicos: evitar saídas prematuras por meio de duas linhas K consecutivas

Risco estratégico

  1. Risco de atraso de indicadores: indicadores técnicos baseados em dados históricos, com possibilidade de atraso
  2. Risco de negociação de posição total: o stop loss não estabelecido pode levar a uma maior volatilidade de fundos
  3. Risco de forte volatilidade do mercado: cenário de mercado complexo pode afetar a performance da estratégia
  4. Sensibilidade dos parâmetros: a escolha dos parâmetros do indicador afeta diretamente o efeito da estratégia

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

  1. Introdução do gerenciamento dinâmico de posições: ajuste do tamanho das posições de acordo com a volatilidade do mercado
  2. Aumentar o mecanismo de suspensão de perdas: reduzir o máximo de perdas em uma única transação
  3. Parâmetros de indicadores de otimização: encontrar a melhor combinação de parâmetros por meio de retroalimentação
  4. Introdução de condições de filtragem adicionais, como volume de transação, índice de volatilidade
  5. Aumentar a verificação de múltiplos prazos: aumentar a confiabilidade do sinal

Resumir

A estratégia de negociação multi-indicador auto-adaptável da Vishal é uma inovadora metodologia de negociação quantitativa que oferece uma estrutura de decisão de negociação abrangente e flexível através da sinergia de MACD, Supertrend e Parabolic SAR. Apesar de alguns riscos, a verificação de múltiplos indicadores e a lógica de negociação simétrica oferecem aos investidores um modelo de negociação que vale a pena estudar.

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

//@version=6
strategy("Vishal Strategy", overlay=true, margin_long=100, margin_short=100, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// **MACD Inputs & Calculation**
fast_length  = input.int(13, title="MACD Fast Length")
slow_length  = input.int(27, title="MACD Slow Length")
signal_length = input.int(9, title="MACD Signal Smoothing")

fast_ma  = ta.ema(close, fast_length)
slow_ma  = ta.ema(close, slow_length)
macd     = fast_ma - slow_ma
signal   = ta.ema(macd, signal_length)
hist     = macd - signal

// **Supertrend Inputs & Calculation**
atrPeriod = input.int(11,    "ATR Length", minval = 1)
factor    = input.float(3.0, "Factor",     minval = 0.01, step = 0.01)
[supertrend, direction] = ta.supertrend(factor, atrPeriod)
bullTrend  = direction < 0   // Uptrend Condition
bearTrend  = direction > 0   // Downtrend Condition

// **Parabolic SAR Inputs & Calculation**
sarStep = input.float(0.02, "Parabolic SAR Step")
sarMax  = input.float(0.2, "Parabolic SAR Max")
sar = ta.sar(sarStep, sarStep, sarMax)

// **Trade Entry Conditions**
macdBullish = macd > signal // MACD in Bullish Mode
macdBearish = macd < signal // MACD in Bearish Mode
priceAboveSAR = close > sar // Price above SAR (Bullish)
priceBelowSAR = close < sar // Price below SAR (Bearish)

// **Boolean Flags to Track Conditions Being Met**
var bool macdConditionMet = false
var bool sarConditionMet = false
var bool trendConditionMet = false

// **Track if Each Condition is Met in Any Order**
if (macdBullish)
    macdConditionMet := true
if (macdBearish)
    macdConditionMet := false

if (priceAboveSAR)
    sarConditionMet := true
if (priceBelowSAR)
    sarConditionMet := false

if (bullTrend)
    trendConditionMet := true
if (bearTrend)
    trendConditionMet := false

// **Final Long Entry Signal (Triggers When All Three Flags Are True)**
longSignal = macdConditionMet and sarConditionMet and trendConditionMet

// **Final Short Entry Signal (Triggers When All Three Flags Are False)**
shortSignal = not macdConditionMet and not sarConditionMet and not trendConditionMet

// **Execute Full Equity Trades**
if (longSignal)
    strategy.entry("Long", strategy.long)

if (shortSignal)
    strategy.entry("Short", strategy.short)

// **Exit Logic - Requires 2 Consecutive Candle Closes Below/Above SAR**
var int belowSARCount = 0
var int aboveSARCount = 0

if (strategy.position_size > 0)  // Long position is active
    belowSARCount := close < sar ? belowSARCount + 1 : 0
    if (belowSARCount >= 1)
        strategy.close("Long")

if (strategy.position_size < 0)  // Short position is active
    aboveSARCount := close > sar ? aboveSARCount + 1 : 0
    if (aboveSARCount >= 1)
        strategy.close("Short")

// **Plot Indicators**
plot(supertrend, title="Supertrend", color=bullTrend ? color.green : color.red, linewidth=2, style=plot.style_linebr)
plot(sar, title="Parabolic SAR", color=color.blue, style=plot.style_cross, linewidth=2)
plot(macd, title="MACD Line", color=color.blue, linewidth=2)
plot(signal, title="MACD Signal", color=color.orange, linewidth=2)
plot(hist, title="MACD Histogram", style=plot.style_columns, color=hist >= 0 ? color.green : color.red)