Estratégia de rastreamento de tendência de momentum cruzado multiindicador combinada com sistema de otimização de stop-profit e stop-loss

SMA AO AC
Data de criação: 2024-12-05 16:21:07 última modificação: 2024-12-05 16:21:07
cópia: 1 Cliques: 364
1
focar em
1617
Seguidores

Estratégia de rastreamento de tendência de momentum cruzado multiindicador combinada com sistema de otimização de stop-profit e stop-loss

Visão geral

A estratégia é um sistema de negociação de acompanhamento de tendências integrado, combinando o mecanismo de confirmação de sinais múltiplos do indicador de crocodilo (Alligator), do indicador de choque dinâmico (AO) e do indicador de choque acelerado (AC). O sistema identifica as tendências do mercado por meio de cruzamentos e confirmação de tendências de múltiplos indicadores e, em conjunto com o stop loss dinâmico, gerencia o risco para obter efeitos de negociação controláveis.

Princípio da estratégia

A lógica central da estratégia baseia-se em três componentes principais:

  1. Sistema de indicadores de crocodilo: uso de médias móveis de diferentes períodos (13/8/5) para confirmar a direção da tendência através da intersecção da linha labial (Lips) com a linha dentária (Teeth).
  2. Sistema de confirmação de força: Combinação de indicadores AO e AC para confirmar a força da tendência, julgando os valores positivos e negativos desses dois indicadores.
  3. Sistema de gerenciamento de risco: configuração de stop loss dinâmico com base no ponto máximo/mínimo de stop loss nas últimas 5 linhas K e configuração de stop loss com um risco-benefício de 1: 2.

Condições de disparo de múltiplos sinais

  • Entrada múltipla: uso de linha dentária na linha do lábio + AO positivo + AC positivo
  • Entrada de cabeça vazia: dentes de alho por baixo da linha do lábio + AO negativo + AC negativo

Vantagens estratégicas

  1. O mecanismo de confirmação de múltiplos sinais diminui o risco de uma falsa invasão.
  2. A configuração de stop loss dinâmica é adaptada às mudanças na volatilidade do mercado.
  3. A relação de risco/benefício fixo contribui para a estabilidade de lucros a longo prazo.
  4. O portfólio de indicadores leva em conta as tendências e a dinâmica, aumentando a precisão das negociações.
  5. O sistema é altamente automatizado, reduzindo a interferência de julgamentos subjetivos.

Risco estratégico

  1. Os indicadores múltiplos podem levar ao atraso do sinal e à perda do melhor momento de entrada.
  2. Os sinais falsos que podem ser frequentes em mercados em turbulência.
  3. A correlação de risco/benefício fixa pode não ser adequada em todas as circunstâncias de mercado.
  4. A parada dinâmica pode ser prematuramente desencadeada quando a oscilação aumenta.

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

  1. Introdução de um mecanismo de adaptação de taxa de flutuação, ajustando dinamicamente a proporção de stop loss.
  2. Aumentar os filtros de intensidade de tendência e evitar a negociação em um ambiente de tendência fraca.
  3. Desenvolver um sistema de classificação de cenários de mercado usando diferentes combinações de parâmetros em diferentes estados de mercado.
  4. A inclusão de um mecanismo de confirmação de volume de transações para aumentar a confiabilidade do sinal.
  5. Considere a introdução de filtros de tempo para evitar períodos de negociação ineficazes.

Resumir

A estratégia cria um sistema de negociação completo através da aplicação integrada de vários indicadores técnicos. O sistema não se concentra apenas na precisão dos sinais, mas também na proteção de fundos por meio de um rigoroso gerenciamento de risco. Embora haja um certo risco de atraso, a estratégia espera obter um melhor desempenho com a orientação de otimização recomendada.

Código-fonte da estratégia
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-04 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Alligator with AO and AC Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// ---------------------------- Индикатор Аллигатор ----------------------------

// Параметры Аллигатора
jawLength = input.int(13, title="Jaw Length")
teethLength = input.int(8, title="Teeth Length")
lipsLength = input.int(5, title="Lips Length")

jawOffset = input.int(8, title="Jaw Offset")
teethOffset = input.int(5, title="Teeth Offset")
lipsOffset = input.int(3, title="Lips Offset")

// Расчёт скользящих средних
jawLine = ta.sma(close, jawLength)
teethLine = ta.sma(close, teethLength)
lipsLine = ta.sma(close, lipsLength)

// Сдвиг линий
jaw = jawLine[jawOffset]
teeth = teethLine[teethOffset]
lips = lipsLine[lipsOffset]

// Отображение линий Аллигатора
plot(jaw, color=color.blue, linewidth=2, title="Jaw (13,8)")
plot(teeth, color=color.red, linewidth=2, title="Teeth (8,5)")
plot(lips, color=color.green, linewidth=2, title="Lips (5,3)")

// ---------------------------- Awesome Oscillator (AO) ----------------------------

// Расчёт AO
medianPrice = (high + low) / 2
ao = ta.sma(medianPrice, 5) - ta.sma(medianPrice, 34)

// Отображение AO
hline(0, "Zero Line", color=color.gray)
plot(ao, title="Awesome Oscillator", color=(ao >= 0 ? color.green : color.red), style=plot.style_histogram, linewidth=2)

// ---------------------------- Accelerator Oscillator (AC) ----------------------------

// Расчёт AC
ac = ao - ta.sma(ao, 5)

// Отображение AC
plot(ac, title="Accelerator Oscillator", color=(ac >= 0 ? color.green : color.red), style=plot.style_histogram, linewidth=2)

// ---------------------------- Логика сигналов и управление позицией ----------------------------

// Условия для открытия длинной позиции
longCondition = ta.crossover(lips, teeth) and ao > 0 and ac > 0
if (longCondition)
    // Определение уровней stop-loss и take-profit
    stopLevel = ta.lowest(low, 5) // Минимум за последние 5 свечей
    takeProfit = close + (close - stopLevel) * 2 // Соотношение риска к прибыли 1:2

    // Открытие длинной позиции
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit", "Long", limit=takeProfit, stop=stopLevel)

// Условия для открытия короткой позиции
shortCondition = ta.crossunder(lips, teeth) and ao < 0 and ac < 0
if (shortCondition)
    // Определение уровней stop-loss и take-profit
    stopLevelShort = ta.highest(high, 5) // Максимум за последние 5 свечей
    takeProfitShort = close - (stopLevelShort - close) * 2 // Соотношение риска к прибыли 1:2

    // Открытие короткой позиции
    strategy.entry("Short", strategy.short)
    strategy.exit("Take Profit Short", "Short", limit=takeProfitShort, stop=stopLevelShort)

// Отображение уровней на графике
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")