Estratégia de negociação quantitativa avançada combinando Bandas de Bollinger dinâmicas com indicador PSAR

BB PSAR SMA TP SL
Data de criação: 2025-02-18 14:11:00 última modificação: 2025-02-18 14:11:00
cópia: 0 Cliques: 355
1
focar em
1617
Seguidores

Estratégia de negociação quantitativa avançada combinando Bandas de Bollinger dinâmicas com indicador PSAR

Visão geral

Trata-se de uma estratégia de negociação integrada que combina a banda de Brin e o indicador de desvio de linha de paralelo (PSAR) para gerenciamento de negociações usando um risco-benefício fixo. A estratégia funciona principalmente durante o dia de negociação, identificando oportunidades de negociação por meio de breakouts de preços nas bandas de Brin e padrões de gráficos de desvio, além de confirmar a tendência usando o indicador de PSAR. A estratégia usa um stop loss dinâmico e uma meta de ganho, mantendo a relação de risco-benefício em 1: 3.

Princípio da estratégia

A estratégia de usar múltiplos indicadores técnicos para a confirmação de sinais de negociação:

  1. Usando a faixa de Brin com 20 ciclos como o principal indicador de variação de preços
  2. Através do indicador PSAR ((valor inicial de 0.02, valor máximo de 0.2) como ferramenta de confirmação de tendência
  3. Calcule a proporção de entes do fio de alumínio ((length of entity/total length ≥0.33) para garantir a confiabilidade do sinal
  4. Execução de transações dentro da janela de horas de negociação designada (GMT-5 7:30-16:00)
  5. Condição de entrada múltipla: preço de fechamento quebra o caminho e a proporção de ativos de ouro atende aos requisitos
  6. Condições de entrada de cabeça-vazia: preço de fechamento quebra de trilho e a proporção de ativos de alumínio atende aos requisitos

Vantagens estratégicas

  1. Combinação de múltiplos indicadores técnicos para melhorar a confiabilidade do sinal
  2. A adopção de uma relação de risco/benefício fixa (:3) favorece a estabilidade dos rendimentos a longo prazo
  3. Filtração por tempo para evitar interrupções durante períodos de baixa liquidez
  4. Filtragem em proporção de peso de alumínio para reduzir falhas
  5. Estabelecer metas dinâmicas de stop loss e profit, adaptando-se às flutuações do mercado
  6. A lógica da estratégia é clara, fácil de entender e de otimizar

Risco estratégico

  1. A tendência é que os mercados de alta volatilidade possam se deslocar.
  2. O risco-benefício fixo é maior do que a possibilidade de perder parte da oportunidade de lucro.
  3. O filtro de tempo pode ter deixado escapar uma oportunidade de mercado importante
  4. Vários indicadores podem causar atraso no sinal
  5. Perda de lucros em mercados em crise

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

  1. Introdução de ciclos de curvatura adaptáveis para adaptar-se a diferentes cenários de mercado
  2. Desenvolvimento de mecanismos dinâmicos de risco-benefício
  3. Adicionar indicador de volume como confirmação auxiliar
  4. Optimizar os parâmetros de PSAR para melhorar a tração de tendências
  5. Adicionar filtro de taxa de flutuação do mercado
  6. Desenvolver mecanismos de filtragem de tempo mais inteligentes

Resumir

A estratégia de construir um sistema de negociação completo através da aplicação integrada de Brinband, PSAR indicadores e análise de gráficos. A principal vantagem da estratégia é a sinergia de múltiplos indicadores técnicos e rigoroso gerenciamento de risco. Embora existam alguns riscos inerentes, a estratégia de estabilidade e lucratividade pode ser ainda melhorada através da orientação de otimização sugerida. A estratégia é especialmente adequada para os usuários de day trading, que podem obter um retorno estável enquanto controlam o risco.

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

//@version=6
strategy("Estrategia Bollinger con PSAR y TP Máximo/ Mínimo", overlay=true)

// Parámetros de las Bandas de Bollinger
bb_length = input.int(20, title="Periodo de Bandas de Bollinger", minval=1)
bb_stddev = input.float(2.0, title="Desviación Estándar", step=0.1)

// Parámetros del Parabolic SAR
psar_start = input.float(0.02, title="PSAR Factor Inicial", step=0.01)
psar_increment = input.float(0.02, title="PSAR Incremento", step=0.01)
psar_max = input.float(0.2, title="PSAR Máximo", step=0.01)

// Cálculo de Bandas de Bollinger
basis = ta.sma(close, bb_length)
upper_band = basis + bb_stddev * ta.stdev(close, bb_length)
lower_band = basis - bb_stddev * ta.stdev(close, bb_length)

// Cálculo del Parabolic SAR
psar = ta.sar(psar_start, psar_increment, psar_max)

// Cálculo del cuerpo de la vela
body_high = math.max(open, close)
body_low = math.min(open, close)
body_length = body_high - body_low
total_length = high - low
body_ratio = body_length / total_length

// Condiciones de Entrada
long_condition = close > upper_band and body_ratio >= 0.33
short_condition = close < lower_band and body_ratio >= 0.33

// Filtro de tiempo: Operar solo de 7:30 AM a 4:00 PM hora colombiana
start_time = timestamp("GMT-5", year, month, dayofmonth, 7, 30)
end_time = timestamp("GMT-5", year, month, dayofmonth, 16, 0)
time_condition = (time >= start_time) and (time <= end_time)

// Variables para mantener el TP máximo y mínimo
var float max_tp = na
var float min_tp = na
var float dynamic_stop = na

// Condiciones de Entrada y Salida
if (long_condition and time_condition)
    entry_price = close  // Precio de entrada
    stop_loss = low  // SL en el mínimo de la vela
    take_profit = entry_price + 3 * (entry_price - stop_loss)  // TP con relación 1:3
    strategy.entry("Compra", strategy.long)
    strategy.exit("Exit Compra", "Compra", stop=stop_loss, limit=take_profit)

    // Dibujar las etiquetas para SL y TP para la operación larga
    label.new(bar_index, stop_loss, text="SL: " + str.tostring(stop_loss), style=label.style_label_up, color=color.red, textcolor=color.white, size=size.small)
    label.new(bar_index, take_profit, text="TP: " + str.tostring(take_profit), style=label.style_label_down, color=color.green, textcolor=color.white, size=size.small)

if (short_condition and time_condition)
    entry_price = close  // Precio de entrada
    stop_loss = high  // SL en el máximo de la vela
    take_profit = entry_price - 3 * (stop_loss - entry_price)  // TP con relación 1:3
    strategy.entry("Venta", strategy.short)
    strategy.exit("Exit Venta", "Venta", stop=stop_loss, limit=take_profit)

    // Dibujar las etiquetas para SL y TP para la operación corta
    label.new(bar_index, stop_loss, text="SL: " + str.tostring(stop_loss), style=label.style_label_down, color=color.red, textcolor=color.white, size=size.small)
    label.new(bar_index, take_profit, text="TP: " + str.tostring(take_profit), style=label.style_label_up, color=color.green, textcolor=color.white, size=size.small)

// Dibujar Bandas de Bollinger
plot(upper_band, color=color.red, title="Banda Superior")
plot(lower_band, color=color.green, title="Banda Inferior")
plot(basis, color=color.blue, title="Media Base")

// Dibujar Parabolic SAR
plot(psar, style=plot.style_circles, color=color.orange, title="Parabolic SAR")