Estratégia de negociação de média móvel de crossover de preço adaptável

HMA SL TP
Data de criação: 2024-09-26 16:12:36 última modificação: 2024-09-26 16:12:36
cópia: 2 Cliques: 441
1
focar em
1617
Seguidores

Estratégia de negociação de média móvel de crossover de preço adaptável

Visão geral

A estratégia de negociação de linha de equilíbrio de preços auto-adaptáveis é uma estratégia de negociação quantitativa baseada na média móvel de Hull (HMA). A estratégia usa o cruzamento de preços com HMA para gerar sinais de compra e venda, ao mesmo tempo em que define níveis fixos de stop loss e stop loss para gerenciar riscos e ganhos. A estratégia usa o HMA de 104 ciclos como principal indicador, combinado com o cruzamento de preços para desencadear a negociação.

Princípio da estratégia

O núcleo da estratégia é o uso da Hull Moving Average (HMA) como principal indicador. A HMA é uma média móvel avançada, capaz de responder rapidamente às mudanças de preço, reduzindo o atraso. A lógica da estratégia é a seguinte:

  1. Calcule o HMA de 104 ciclos.
  2. Quando o preço atravessa a HMA para cima, a posição é maior.
  3. Quando o preço atravessa a HMA para baixo, a posição é fechada.
  4. Para cada transação, defina um nível fixo de stop loss (US\( 1,25) e stop loss (US\) 37,5).
  5. Para cada transação, são usados dois contratos.

A estratégia é de garantir que as posições abertas não sejam reabertas com as posições já abertas. Quando uma transação é liquidada, o sistema reinicializa o indicador, permitindo que um novo sinal de negociação entre em vigor.

Vantagens estratégicas

  1. Adaptabilidade: A HMA é capaz de se adaptar rapidamente às mudanças no mercado, reduzindo os sinais falsos.
  2. Gerenciamento de Risco: Usando níveis fixos de stop loss e stop-loss, controle efetivo do risco de cada transação.
  3. Simplicidade e clareza: as regras de negociação são claras, fáceis de entender e executar.
  4. Negociação bidirecional: Capturar oportunidades de alta e baixa ao mesmo tempo, aumentando o potencial de lucro.
  5. Automatização: as estratégias podem ser totalmente automatizadas, reduzindo a intervenção humana e o impacto emocional.

Risco estratégico

  1. Frequência de negociação: pode gerar sinais de negociação excessivos em um mercado muito volátil, aumentando os custos de negociação.
  2. Stop Loss/Stop Stop: Pode não ser adequado para todas as condições de mercado, em alguns casos pode sair prematuramente ou perder a grande tendência.
  3. Confiar em um único indicador: Confiar apenas no HMA pode não funcionar bem em certos cenários de mercado.
  4. Atraso: Apesar da diminuição do atraso, a HMA pode ainda não ter reagido adequadamente no ponto de abrupta mudança.
  5. Falta de filtragem do cenário de mercado: não leva em conta a tendência ou a volatilidade do mercado em geral, podendo negociar em condições de mercado inadequadas.

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

  1. Introdução de indicadores adicionais: em combinação com outros indicadores técnicos (como RSI ou MACD) para confirmar o sinal e aumentar a precisão.
  2. Paradas e paradas dinâmicas: os níveis de paradas e paradas são ajustados de acordo com a volatilidade do mercado para se adaptar a diferentes condições de mercado.
  3. Adicionar filtros de mercado: Adicionar filtros de intensidade de tendência ou de taxa de flutuação para evitar negociações em condições de mercado desfavoráveis.
  4. Optimizar os parâmetros de HMA: testar diferentes ciclos de HMA para encontrar os parâmetros mais adequados para um determinado mercado.
  5. Introdução de gerenciamento de posições: ajuste dinâmico do tamanho da transação de acordo com o risco de mercado e o tamanho da conta.
  6. Adicionar filtro de tempo: evite negociar em períodos de maior volatilidade do mercado, como durante a divulgação de dados econômicos importantes.

Resumir

A estratégia de negociação de linha de equilíbrio cruzada de preço auto-adaptável é uma estratégia de negociação quantitativa simples e eficaz. Utilizando os benefícios da média móvel de Hull, a estratégia é capaz de capturar as tendências do mercado, enquanto protege os fundos com medidas de gerenciamento de risco fixas. Embora a estratégia tenha alguns riscos potenciais, sua performance e adaptabilidade podem ser melhoradas ainda mais com otimização e melhoria contínua.

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

//@version=5
strategy("SHIESTD", overlay=true)

// Function to calculate Hull Moving Average (HMA)
hma(src, length) =>
    wma1 = ta.wma(src, length)
    wma2 = ta.wma(src, length / 2)
    hma = ta.wma(2 * wma2 - wma1, math.round(math.sqrt(length)))
    hma

// Parameters
hma_length = 104

// Calculate Hull Moving Average
hma_value = hma(close, hma_length)

// Plot HMA
plot(hma_value, title="104-period Hull Moving Average", color=color.blue, linewidth=2)

// Define SL and TP values in dollars
long_sl_amount = 1.25
long_tp_amount = 37.5
short_sl_amount = 1.25
short_tp_amount = 37.5

// Number of contracts
contracts = 2

// Function to calculate SL and TP prices based on entry price and dollar amounts
long_sl_price(entry_price) =>
    entry_price - long_sl_amount

long_tp_price(entry_price) =>
    entry_price + long_tp_amount

short_sl_price(entry_price) =>
    entry_price + short_sl_amount

short_tp_price(entry_price) =>
    entry_price - short_tp_amount

// Trading conditions
price_intersects_hma = ta.crossover(close, hma_value) or ta.crossunder(close, hma_value)

// Long and Short Conditions based on price intersecting HMA
long_condition = ta.crossover(close, hma_value)
short_condition = ta.crossunder(close, hma_value)

// Track open positions
var bool long_open = false
var bool short_open = false

// Handle Long Positions
if (long_condition and not long_open)
    entry_price = close
    strategy.entry("Long", strategy.long, qty=contracts)
    strategy.exit("Exit Long", from_entry="Long", stop=long_sl_price(entry_price), limit=long_tp_price(entry_price))
    long_open := true

// Handle Short Positions
if (short_condition and not short_open)
    entry_price = close
    strategy.entry("Short", strategy.short, qty=contracts)
    strategy.exit("Exit Short", from_entry="Short", stop=short_sl_price(entry_price), limit=short_tp_price(entry_price))
    short_open := true

// Reset flags when the position is closed
if (strategy.opentrades == 0)
    long_open := false
    short_open := false