Estratégia de negociação quantitativa de sinal linear baseada na normalização do Z-score

RSI SMA Z-SCORE LSB TP SL
Data de criação: 2025-01-06 16:14:07 última modificação: 2025-01-06 16:14:07
cópia: 6 Cliques: 437
1
focar em
1617
Seguidores

Estratégia de negociação quantitativa de sinal linear baseada na normalização do Z-score

Visão geral

Esta estratégia é um sistema de negociação quantitativa baseado em sinais lineares e normalização de pontuação Z. Ele constrói sinais de negociação padronizados combinando variáveis ​​exógenas, como RSI, com dados de preços, e usa limites para acionar transações. Essa estratégia é adequada para cenários de negociação intradiária e de alta frequência e tem forte adaptabilidade e configurabilidade.

Princípio da estratégia

Os princípios fundamentais da estratégia incluem as seguintes etapas principais:

  1. Construção de sinal linear: O indicador RSI é combinado linearmente com dados de preço usando um peso configurável (signal_alpha) para formar o sinal inicial.
  2. Normalização do escore Z: com base no período de lookback definido (lookback_period), a média e o desvio padrão do sinal linear são calculados e o sinal é normalizado no formato de escore Z.
  3. Mecanismo de gatilho de limite: quando o Z score é menor que o limite negativo, uma posição longa é aberta; quando é maior que o limite positivo, uma posição curta é aberta. O limite é controlado pelo fator de ajuste de risco (risk_adjustment_factor).
  4. Gerenciamento de risco: defina take-profit e stop-loss para cada transação e ajuste com flexibilidade a relação risco-retorno por meio de parâmetros percentuais.

Vantagens estratégicas

  1. Normalização do sinal: a transformação do escore Z fornece ao sinal boas propriedades estatísticas, facilitando a definição de um limite universal.
  2. Forte flexibilidade: A influência de variáveis ​​exógenas e preços pode ser equilibrada ajustando signal_alpha.
  3. Riscos controláveis: Mecanismo completo de stop-profit e stop-loss, que pode ser configurado de forma flexível de acordo com as características do mercado.
  4. Boa adaptabilidade: aplicável a vários períodos de tempo e pode ser expandido para outros produtos de negociação com alta liquidez.

Risco estratégico

  1. Sensibilidade dos parâmetros: o desempenho da estratégia é sensível à seleção de parâmetros e requer backtesting e verificação suficientes.
  2. Dependência do ambiente de mercado: transações frequentes podem ocorrer em um mercado volátil com tendência fraca.
  3. Atraso do sinal: O atraso causado pelo cálculo da média móvel pode afetar o tempo de entrada.
  4. Risco de liquidez: a negociação de alta frequência pode sofrer perdas por deslizamento quando a liquidez é insuficiente.

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

  1. Ajuste dinâmico de parâmetros: introduza um mecanismo adaptativo para ajustar dinamicamente limites e posições de stop-loss com base na volatilidade do mercado.
  2. Confirmação de múltiplos sinais: adicione outros indicadores técnicos como condições de filtragem para melhorar a confiabilidade do sinal.
  3. Otimização do gerenciamento de posições: Projete um sistema dinâmico de gerenciamento de posições com base na volatilidade e na força do sinal.
  4. Controle de custos de transação: otimize a lógica de abertura e fechamento de posições para reduzir a perda de custos causada por transações frequentes.

Resumir

Esta é uma estratégia de negociação quantitativa com uma estrutura clara e lógica rigorosa. Um sistema de sinal de negociação robusto é construído por meio de combinação linear e processamento de padronização. A estratégia é altamente configurável e tem gerenciamento de risco perfeito, mas é preciso prestar atenção à otimização de parâmetros e à adaptabilidade do mercado. A estabilidade e a lucratividade da estratégia podem ser melhoradas ainda mais por meio das direções de otimização recomendadas.

Código-fonte da estratégia
/*backtest
start: 2024-12-29 00:00:00
end: 2025-01-05 00:00:00
period: 15m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Linear Signal-Based Strategy", shorttitle = "LSB_V1", overlay=true)

// Inputs
lookback_period = input.int(14, title="Lookback Period for Moving Averages")
signal_alpha = input.float(0.5, title="Signal Weight Alpha (Exogenous Variable)")
take_profit_percent = input.float(0.02, title="Take Profit (%)")
stop_loss_percent = input.float(0.01, title="Stop Loss (%)")
risk_adjustment_factor = input.float(1.5, title="Risk Adjustment Factor")

// Fetch Exogenous Variable (Example: RSI as a Proxy)
rsi_value = ta.rsi(close, lookback_period)

// Linear Signal Calculation
linear_signal = signal_alpha * rsi_value + (1 - signal_alpha) * close

// Z-Score Normalization for Signal
mean_signal = ta.sma(linear_signal, lookback_period)
stddev_signal = ta.stdev(linear_signal, lookback_period)
z_score_signal = (linear_signal - mean_signal) / stddev_signal

// Entry Conditions
long_condition = z_score_signal < -risk_adjustment_factor
short_condition = z_score_signal > risk_adjustment_factor

// Risk Management
long_take_profit = close * (1 + take_profit_percent)
long_stop_loss = close * (1 - stop_loss_percent)
short_take_profit = close * (1 - take_profit_percent)
short_stop_loss = close * (1 + stop_loss_percent)

// Execute Trades
if (long_condition)
    strategy.entry("Long", strategy.long, qty=1)
    strategy.exit("Exit Long", "Long", stop=long_stop_loss, limit=long_take_profit)

if (short_condition)
    strategy.entry("Short", strategy.short, qty=1)
    strategy.exit("Exit Short", "Short", stop=short_stop_loss, limit=short_take_profit)