Estratégia de negociação quantitativa combinando rastreamento de tendências em vários períodos e blocos de ordens

EMA SMA OB
Data de criação: 2024-07-29 13:57:12 última modificação: 2024-07-29 13:57:12
cópia: 0 Cliques: 533
1
focar em
1617
Seguidores

Estratégia de negociação quantitativa combinando rastreamento de tendências em vários períodos e blocos de ordens

Visão geral

Trata-se de uma estratégia de negociação quantitativa complexa que combina vários indicadores técnicos e ideias de negociação. A estratégia é baseada principalmente em blocos de ordens, detecção de mudanças de tendência, cruzamento de médias móveis e análise de múltiplos prazos para gerar sinais de negociação. A ideia central da estratégia é usar o comportamento de preços e indicadores técnicos de prazos menores para entrar e sair com precisão na direção da tendência no maior período de tempo (uma hora).

Princípio da estratégia

  1. Bloco de pedidos: uma estratégia que usa funções personalizadas para calcular o bloco de pedidos, que é um nível de preço importante e geralmente representa uma região concentrada de pedidos de grandes instituições.

  2. Detecção de mudanças de tendência: uso de cruzamentos de médias móveis simples (SMA) para identificar mudanças de tendência em potencial.

  3. Análise de múltiplos prazos: calcula a média móvel indexada de 50 e 200 ciclos em um período de 1 hora (EMA) para identificar tendências de mercado maiores.

  4. Condições de entrada:

    • Multi-cabeça: quando um sinal de tendência ascendente é exibido no gráfico de 5 minutos e o preço quebra o bloco de pedidos e o 50EMA está acima do 200EMA no gráfico de 1 hora.
    • Cabeça em branco: quando o sinal de tendência descendente é exibido no gráfico de 5 minutos, o preço cai abaixo do bloco de pedidos e o 50EMA está abaixo do 200EMA no gráfico de 1 hora.
  5. Estratégia de saída: usar níveis de stop loss e stop loss de porcentagem fixa para gerenciar riscos e bloquear lucros.

Vantagens estratégicas

  1. Análise multidimensional: combina vários prazos e indicadores técnicos para fornecer uma visão mais abrangente do mercado.

  2. Seguimento de tendências: aumenta a probabilidade de lucro ao negociar na direção das grandes tendências.

  3. Acesso preciso: aproveite os blocos de pedidos e as mudanças nas tendências de curto prazo para otimizar o tempo de entrada.

  4. Gerenciamento de Risco: O uso de paradas e perdas predefinidas para controlar o risco de cada transação.

  5. Adaptabilidade: Os parâmetros da estratégia são ajustáveis e podem ser adaptados a diferentes cenários de mercado.

Risco estratégico

  1. Excesso de negociação: pode gerar sinais de negociação frequentes em mercados com grande volatilidade, aumentando os custos de negociação.

  2. Risco de deslizamento: em mercados com pouca liquidez, o preço de execução real pode ter um grande desvio do preço ideal.

  3. Risco de reversão de tendência: a estratégia pode sofrer perdas contínuas perto do ponto de reversão de tendência.

  4. Sensibilidade de parâmetros: a performance da estratégia pode ser altamente sensível às configurações de parâmetros e precisa de otimização contínua.

  5. Dependência do cenário de mercado: estratégias podem não ser eficazes em mercados de alta volatilidade ou de alta volatilidade.

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

  1. Ajuste de parâmetros dinâmicos: Considere ajustar automaticamente a porcentagem de stop-loss de acordo com a volatilidade do mercado.

  2. Adição de filtros: introdução de indicadores técnicos adicionais ou indicadores de sentimento de mercado para reduzir os falsos sinais.

  3. Filtragem de tempo: adicionar restrições de janela de tempo de negociação para evitar períodos de baixa liquidez.

  4. Gerenciamento de posição: implementa estratégias de gerenciamento de posição mais complexas, como o ajuste de posição baseado na volatilidade.

  5. Retrospecção e otimização: retrospecção de dados históricos mais amplos para encontrar o melhor conjunto de parâmetros.

  6. Aumentar a identificação do cenário de mercado: desenvolver algoritmos para identificar diferentes estados de mercado e ajustar a estratégia de acordo.

Resumir

Trata-se de uma estratégia de negociação quantitativa integrada e logicamente complexa, combinando análise de múltiplos quadros temporais, teoria de blocos de pedidos e tecnologia de acompanhamento de tendências. A estratégia visa aumentar a taxa de sucesso das negociações, procurando pontos de entrada precisos na direção da grande tendência.

Código-fonte da estratégia
/*backtest
start: 2024-06-28 00:00:00
end: 2024-07-28 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("S&P 500", overlay=true)
// Parámetros
length = input(14, "Longitud")
src = input(close, "Fuente")
profit_percent = input.float(0.08955, "Porcentaje de ganancia", step=0.00001, minval=0)
stop_loss_percent = input.float(0.04477, "Porcentaje de stop loss", step=0.00001, minval=0)
// Función para calcular el Order Block
order_block(src, len) =>
    highest = ta.highest(high, len)
    lowest = ta.lowest(low, len)
    mid = (highest + lowest) / 2
    ob = src > mid ? highest : lowest
    ob
// Cálculo del Order Block
ob = order_block(src, length)
// Función para detectar cambios de tendencia
trend_change(src, len) =>
    up = ta.crossover(src, ta.sma(src, len))
    down = ta.crossunder(src, ta.sma(src, len))
    [up, down]
// Detectar cambios de tendencia
[trend_up, trend_down] = trend_change(src, length)
// Calcular EMA 50 y EMA 200 en timeframe de 1 hora
ema50_1h = request.security(syminfo.tickerid, "60", ta.ema(close, 50))
ema200_1h = request.security(syminfo.tickerid, "60", ta.ema(close, 200))
// Condiciones de EMA
ema_buy_condition = ema50_1h > ema200_1h
ema_sell_condition = ema50_1h < ema200_1h
// Señales de compra y venta
buy_signal = trend_up and close > ob and ema_buy_condition
sell_signal = trend_down and close < ob and ema_sell_condition
// Ejecutar la estrategia
if (buy_signal)
    strategy.entry("Compra", strategy.long)
if (sell_signal)
    strategy.entry("Venta", strategy.short)
// Calcular precios de toma de ganancias y stop loss
if (strategy.position_size != 0)
    entry_price = strategy.position_avg_price
    is_long = strategy.position_size > 0
    take_profit = entry_price * (1 + (is_long ? 1 : -1) * profit_percent / 100)
    stop_loss = entry_price * (1 + (is_long ? -1 : 1) * stop_loss_percent / 100)
    strategy.exit(is_long ? "Long TP/SL" : "Short TP/SL", limit=take_profit, stop=stop_loss)
// Visualización
plot(ob, "Order Block", color.purple, 2)
plot(ta.sma(src, length), "SMA", color.blue)
plot(ema50_1h, "EMA 50 1h", color.yellow)
plot(ema200_1h, "EMA 200 1h", color.white)
bgcolor(buy_signal ? color.new(color.green, 90) : sell_signal ? color.new(color.red, 90) : na)