Estratégia quantitativa de conversão long-short baseada no canal G e na média móvel exponencial

EMA MA SMA RSI MACD
Data de criação: 2024-12-20 14:31:56 última modificação: 2024-12-20 14:31:56
cópia: 0 Cliques: 102
1
focar em
1166
Seguidores

Estratégia quantitativa de conversão long-short baseada no canal G e na média móvel exponencial

Visão geral

A estratégia é um sistema de negociação quantitativa que combina o canal G (G-Channel) e a média móvel do índice (EMA). O núcleo da estratégia é capturar a direção da tendência do mercado através do canal G, ao mesmo tempo em que usa a EMA para a confirmação de sinais e controle de risco, para obter lucros nas flutuações bidirecionais do mercado. A estratégia adota um modelo de negociação totalmente automatizado, sem a necessidade de intervenção humana.

Princípio da estratégia

A estratégia opera com base em dois indicadores centrais: o canal G e a EMA. O canal G identifica a tendência dos preços através do cálculo dinâmico de ascensão e descensão, emitindo um sinal de negociação quando o preço quebra o canal.

Vantagens estratégicas

  1. Combinação de tracking de tendências e características de regressão de valor médio para manter um desempenho estável em diferentes ambientes de mercado
  2. A redução do risco de falsas brechas através da EMA como confirmação auxiliar
  3. A negociação é totalmente automatizada, evitando interferência emocional.
  4. A lógica de computação é simples, clara, fácil de entender e de manter.
  5. Parâmetros ajustáveis para diferentes características do mercado

Risco estratégico

  1. A frequência de transações em mercados turbulentos pode aumentar os custos de transação
  2. A configuração incorreta dos parâmetros do canal G pode causar atraso no sinal
  3. A escolha errada do ciclo da EMA pode ter deixado de lado uma importante reviravolta na tendência
  4. A maior retração pode ocorrer em momentos de forte volatilidade do mercado. Resposta:
  • Introdução de mecanismos de controlo de risco
  • Optimizar a configuração de parâmetros para melhorar a estabilidade do sistema
  • Aumentar os filtros de mercado
  • Estabelecer uma estratégia de gestão de posições razoável

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

  1. Introdução de indicadores de volatilidade, ajuste de parâmetros de estratégia em ambientes de alta volatilidade ou suspensão de negociação
  2. Aumentar a análise do volume de tráfego e melhorar a confiabilidade do sinal
  3. Adição de filtros de intensidade de tendência para evitar negociações frequentes em mercados de tendência fraca
  4. Otimização do mecanismo de auto-adaptação dos parâmetros da EMA para melhorar a adaptabilidade do sistema
  5. Construção de um mecanismo de confirmação de sinais com múltiplos períodos de tempo para melhorar a estabilidade das transações

Resumir

A estratégia, combinando o canal G e os dois indicadores técnicos da EMA, constrói um sistema de negociação quantitativa robusto. A lógica da estratégia é clara, a implementação é simples e possui uma boa escalabilidade.

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © stanleygao01


//@version=5
strategy('G-Channel with EMA Strategy', overlay=true)

// G-Channel parameters
length = input(100, title='G-Channel Length')
src = input(close, title='Source')

a = 0.0
b = 0.0
a := math.max(src, nz(a[1])) - nz(a[1] - b[1]) / length
b := math.min(src, nz(b[1])) + nz(a[1] - b[1]) / length
avg = math.avg(a, b)

crossup = b[1] < close[1] and b > close
crossdn = a[1] < close[1] and a > close
bullish = ta.barssince(crossdn) <= ta.barssince(crossup)

// EMA parameters
emaLength = input(50, title='EMA Length')
ema = ta.ema(close, emaLength)

// Buy and Sell Conditions
buyCondition = bullish and close < ema
sellCondition = not bullish and close > ema

// Plot G-Channel
c = bullish ? color.lime : color.red
p1 = plot(avg, title='Average', color=c, linewidth=1, transp=90)
p2 = plot(close, title='Close Price', color=c, linewidth=1, transp=100)
fill(p1, p2, color=c, transp=90)

// Plot EMA
plot(ema, title='EMA', color=color.new(color.blue, 0), linewidth=2)

// Strategy Entries and Exits
if buyCondition
    strategy.entry('Buy', strategy.long)
if sellCondition
    strategy.close('Buy')

// Plot Buy/Sell Labels
plotshape(buyCondition, title='Buy Signal', location=location.belowbar, color=color.new(color.lime, 0), style=shape.labelup, text='Buy')
plotshape(sellCondition, title='Sell Signal', location=location.abovebar, color=color.new(color.red, 0), style=shape.labeldown, text='Sell')