Sistema de estratégia quantitativa de reversão de momento multifrequencial


Data de criação: 2024-11-29 14:47:54 última modificação: 2024-11-29 14:47:54
cópia: 0 Cliques: 377
1
focar em
1617
Seguidores

Sistema de estratégia quantitativa de reversão de momento multifrequencial

Visão geral

Esta estratégia é um sistema de negociação quantitativa baseado em características de movimento contínuo do mercado, para capturar oportunidades de reversão de mercado através da análise da frequência de aumento ou queda contínua dos preços. O núcleo da estratégia é a tomada de decisões de negociação através da definição de um limiar de queda contínua, tomando a operação de reversão quando o limiar é atingido, ao mesmo tempo em que combina indicadores multidimensionais, como o tempo de posse e a forma da linha K.

Princípio da estratégia

A lógica central da estratégia inclui os seguintes elementos-chave:

  1. Estatísticas de sucessão: o sistema registra em tempo real as sucessivas subidas e descidas de preços e as compara com os valores de queda predeterminados.
  2. Opção de direção de negociação: pode optar por fazer mais ou fazer curto em duas direções, fazer mais quando se foca em queda contínua, fazer curto quando se foca em alta contínua.
  3. Gerenciamento do ciclo de detenção: definir um ciclo de detenção fixo, liquidação automática do prazo de vencimento e evitar a detenção excessiva.
  4. Filtragem de estrelas cruzadas: Introdução de um julgamento de estrelas cruzadas para filtrar os sinais falsos durante os turbulentos mercados.
  5. Controle de posicionamento: utiliza-se uma única posição para negociar, sem adição de posicionamento ou operação de construção em lotes.

Vantagens estratégicas

  1. Lógico claro: a lógica de negociação da estratégia é intuitiva, fácil de entender e executar.
  2. Risco controlado: controle de risco através de um período de detenção fixo e uma posição única.
  3. Adaptabilidade: Parâmetros podem ser ajustados de acordo com diferentes características do mercado.
  4. Alta automação: o processo é executado automaticamente pelo sistema, reduzindo a intervenção humana.
  5. Análise multidimensional: combina tendências de preços, K-linhas e outras dimensões.

Risco estratégico

  1. Risco de continuação da tendência: pode ocorrer um erro de julgamento em mercados de forte tendência.
  2. Sensibilidade de parâmetros: a definição de limites e períodos de detenção afetam diretamente a performance da estratégia.
  3. Dependência do cenário de mercado: Melhor desempenho em mercados turbulentos, mas pode haver frequentes perdas em mercados unilaterais.
  4. Efeitos do ponto de deslizamento: as transações de alta frequência podem ser afetadas pelo ponto de deslizamento.
  5. Pressão de custos: transações frequentes geram custos mais elevados.

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

  1. Introdução de indicadores de taxa de flutuação: ajuste a configuração do limiar por meio de indicadores como o ATR.
  2. Aumentar o filtro de tendências: aumentar a taxa de vitórias em combinação com o julgamento de tendências de longo prazo.
  3. Ciclo de manutenção dinâmico: adaptação do tempo de manutenção de acordo com as características do mercado.
  4. Otimização da gestão de posições: introdução de mecanismos de gestão de posições dinâmicas.
  5. Análise de múltiplos períodos de tempo: adicionar mecanismos de confirmação de sinais múltiplos períodos.

Resumir

A estratégia é um sistema de negociação quantitativa baseado em características de reversão de mercado para capturar oportunidades de reversão de mercado através da análise de movimentos contínuos de preços. A estratégia é projetada de forma razoável, o risco é controlável, mas os parâmetros precisam ser ajustados de acordo com o ambiente de mercado.

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

//@version=5
strategy("Streak-Based Trading Strategy", overlay=true)

// User Inputs
trade_direction = input.string(title="Trade Direction", defval="Long", options=["Long", "Short"]) // Option to choose Long or Short
streak_threshold = input.int(title="Streak Threshold", defval=8, minval=1) // Input for number of streaks before trade
hold_duration = input.int(title="Hold Duration (in periods)", defval=7, minval=1) // Input for holding the position
doji_threshold = input.float(0.01, title="Doji Threshold (%)", minval=0.001) / 100 // Doji sensitivity

// Calculate win or loss streak
is_doji = math.abs(close - open) / (high - low) < doji_threshold
win = close > close[1] and not is_doji
loss = close < close[1] and not is_doji

// Initialize variables for streak counting
var int win_streak = 0
var int loss_streak = 0
var bool in_position = false
var int hold_counter = 0

// Track streaks (only when not in a position)
if not in_position
    if win
        win_streak += 1
        loss_streak := 0
    else if loss
        loss_streak += 1
        win_streak := 0
    else
        win_streak := 0
        loss_streak := 0

// Logic for closing the position after the holding duration
if in_position
    hold_counter -= 1
    if hold_counter <= 0
        strategy.close_all() // Close all positions
        in_position := false // Reset position flag
        win_streak := 0 // Reset streaks after position is closed
        loss_streak := 0

// Trade condition (only when no position is open and streak is reached)
if not in_position
    if trade_direction == "Long" and loss_streak >= streak_threshold
        strategy.entry("Long", strategy.long) // Open a long position
        in_position := true
        hold_counter := hold_duration // Set holding period

    if trade_direction == "Short" and win_streak >= streak_threshold
        strategy.entry("Short", strategy.short) // Open a short position
        in_position := true
        hold_counter := hold_duration // Set holding period

// Plotting streaks for visualization
plot(win_streak, color=color.green, title="Winning Streak", style=plot.style_histogram, linewidth=2)
plot(loss_streak, color=color.red, title="Losing Streak", style=plot.style_histogram, linewidth=2)