Estratégia dinâmica de retorno do Papai Noel


Data de criação: 2024-01-12 14:00:00 última modificação: 2024-01-12 14:00:00
cópia: 0 Cliques: 566
1
focar em
1617
Seguidores

Estratégia dinâmica de retorno do Papai Noel

Visão geral

A estratégia de retorno dinâmico do Papai Noel é uma estratégia de negociação quantitativa para identificar pontos de entrada e saída potenciais com base na relação de retorno dinâmico entre o preço e o indicador da linha de coluna. A estratégia usa uma linha média dinâmica de parâmetros ajustáveis em comprimento para traçar a linha de tendência de retorno do preço.

Princípio da estratégia

O núcleo da estratégia é calcular a relação de regressão linear entre o preço e o índice de coluna. Primeiro, calcula-se uma média móvel simples e um desvio padrão de comprimento N. Em seguida, com base nos coeficientes relevantes da amostra e no valor do desvio padrão, obtém-se a inclinação k e a interseção b da linha de regressão.

y = kx + b

onde x é o índice da coluna e y é o preço.

Se a linha de retorno sobe e o preço de fechamento está acima do preço de abertura e do preço máximo da hora anterior, gera um sinal de compra; Se a linha de retorno cai e o preço de fechamento está abaixo do preço de abertura e do preço mínimo da hora anterior, gera um sinal de venda.

Vantagens estratégicas

  1. Parâmetros dinâmicos definidos que podem ser adaptados a variações de preços em diferentes períodos, ajustando o valor de N
  2. A regressão leva em consideração o impacto do tempo e reflete melhor a tendência dos preços.
  3. A combinação de vários critérios gera sinais de negociação, evitando erros.
  4. Indicações de tendências de retorno dos preços, claramente legíveis

Riscos e soluções

  1. N valores mal definidos, podendo causar uma linha de regressão muito lisa ou sensível
  • Solução: ajustar o valor de N para encontrar o melhor ponto de equilíbrio
  1. Os preços de curto prazo e a falha do julgamento de regressão
  • Solução: filtrar os pontos de entrada em combinação com outros indicadores
  1. A correlação de circunferência leva em conta apenas um ponto de tempo e pode omitir extremos locais
  • Solução: estabeleça intervalos de relaxamento apropriados para evitar erros de julgamento

Direção de otimização

  1. Aumentar o mecanismo de saída dinâmica, ajustando o ponto de parada de acordo com a regressão
  2. Verificação de sinais em combinação com indicadores como volume de transações, reduzindo transações erradas
  3. Utilizando métodos de aprendizagem de máquina para otimizar automaticamente os parâmetros para um ambiente de mercado mais amplo
  4. Aumentar a visualização gráfica para mostrar melhor os resultados da estratégia

Resumir

A estratégia de retorno dinâmico do Papai Noel utiliza a relação de retorno dinâmico do preço e do tempo para realizar um sistema de negociação quantitativa flexível, intuitivo e ajustável aos parâmetros. A lógica da estratégia é clara e fácil de entender, e pode ser aplicada a diferentes produtos e ciclos de negociação através da otimização dos parâmetros. A inovação da estratégia consiste na introdução de um fator de tempo para criar um modelo dinâmico, tornando o julgamento mais tendencioso.

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

//@version=5
// Creator - TradeAI
strategy('Moving Santa Claus Strategy | TradeAI', overlay=true)

// Set the length of the moving average
length = input(64)

// Calculate the moving averages and standard deviations
x = bar_index
y = close
x_ = ta.sma(x, length)
y_ = ta.sma(y, length)
mx = ta.stdev(x, length)
my = ta.stdev(y, length)
c = ta.correlation(x, y, length)
slope = c * (my / mx)

// Calculate the parameters of the regression line
inter = y_ - slope * x_
reg = x * slope + inter

// Set the line color based on whether EMA is moving up or down
var color lineColor = na
if (reg > reg[1] and (close > open and close > high[1]))
    lineColor := color.new(#d8f7ff, 0)
if (reg < reg[1] and (close < open and close < low[1]))
    lineColor := color.new(#ff383b, 0)

// Plot the EMA line with different thicknesses
plot(reg, color=lineColor, title="EMA")

var color lineColorrr = na
if (reg > reg[1] and (close > open and close > high[1]))
    lineColorrr := color.new(#d8f7ff, 77)
if (reg < reg[1] and (close < open and close < low[1]))
    lineColorrr := color.new(#ff383b, 77)
plot(reg, color=lineColorrr, title="EMA", linewidth=5)

var color lineColorr = na
if (reg > reg[1] and (close > open and close > high[1]))
    lineColorr := color.new(#d8f7ff, 93)
if (reg < reg[1] and (close < open and close < low[1]))
    lineColorr := color.new(#ff383b, 93)
plot(reg, color=lineColorr, title="EMA", linewidth=10)

var color lineColorrrr = na
if (reg > reg[1] and (close > open and close > high[1]))
    lineColorrrr := color.new(#d8f7ff, 97)
if (reg < reg[1] and (close < open and close < low[1]))
    lineColorrrr := color.new(#ff383b, 97)
plot(reg, color=lineColorr, title="EMA", linewidth=15)

var color lineColorrrrr = na
if (reg > reg[1] and (close > open and close > high[1]))
    lineColorrrrr := color.new(#d8f7ff, 99)
if (reg < reg[1] and (close < open and close < low[1]))
    lineColorrrrr := color.new(#ff383b, 99)
plot(reg, color=lineColorr, title="EMA", linewidth=20)

// Implement trading strategy based on EMA direction
if reg > reg[1] and (close > open and close > high[1])
    strategy.entry('buy', strategy.long)

if reg < reg[1] and (close < open and close < low[1])
    strategy.close('buy')