Estratégia de arbitragem entre mercados baseada em média móvel regularizada adaptativa


Data de criação: 2023-11-16 16:20:11 última modificação: 2023-11-16 16:20:11
cópia: 0 Cliques: 642
1
focar em
1617
Seguidores

Estratégia de arbitragem entre mercados baseada em média móvel regularizada adaptativa

Visão geral

Esta estratégia permite a arbitragem entre diferentes mercados através do cálculo de médias móveis regularizadas adaptáveis. A estratégia possui características como arbitragem entre mercados, ajuste de parâmetros dinâmicos e controle de risco.

Princípio da estratégia

A estratégia define primeiro uma função scaleMinimax para estandarizar a sequência de tempo para um intervalo especificado. Depois define uma função rema de média móvel de regularização adaptativa para calcular a linha de sinal depois de suavizada. A linha de sinal é calculada da seguinte forma:

  1. Defina uma janela de deslizamento com a duração padrão de 5 dias.
  2. O sig valor diário é a média ponderada do sig valor do dia anterior com o preço de fechamento do dia. A média ponderada usa um mecanismo de ponderação adaptativa, quanto mais próximo do valor atual, maior o peso.
  3. A adição de um parâmetro λ como termo regular torna a transformação de sig mais suave.

Depois de receber o sinal, a estratégia decide sobre a disponibilidade de espaço, julgando o sinal e o preço. Concretamente:

  1. Faça mais quando a sigma estiver no preço.
  2. Quando a assinante fizer o preço, deixe o espaço vazio.

Além disso, a estratégia adiciona o fator de suavização smooth e mostra a linha de sinal show_line como parâmetros ajustáveis, aumentando a flexibilidade da estratégia.

Análise de vantagens

Em comparação com a estratégia de média móvel tradicional, a estratégia tem as seguintes vantagens:

  1. A adoção de um mecanismo de adaptação de aumento de peso permite uma resposta mais rápida às mudanças de preço.
  2. A adição de um elemento de regularização para tornar a linha de sinalização mais suave e evitar sinais errados devido à forte flutuação dos preços.
  3. Arbitragem de mercado, que permite aproveitar as diferenças de preços entre os diferentes mercados.
  4. O design de parâmetros ajustáveis é flexível e pode ser otimizado de acordo com as condições do mercado.

Riscos e soluções

A estratégia também traz alguns riscos:

  1. A solução é ajustar adequadamente os parâmetros de suavização, evitando a vibração da linha de sinal.

  2. A arbitragem entre mercados deve garantir que os dois mercados tenham uma correlação de preços e um movimento consistente. A solução é escolher um mercado de alta correlação para a arbitragem.

  3. A otimização de parâmetros requer o acúmulo de dados históricos suficientes para a retrospectiva. A solução é ajustar cuidadosamente os parâmetros em transações reais.

Direção de otimização

A estratégia também pode ser melhorada nos seguintes aspectos:

  1. Na seleção de parâmetros, é possível introduzir um conjunto de parâmetros de otimização automática de algoritmos de aprendizado de máquina.

  2. Na geração de sinais, pode-se introduzir mais indicadores para combinação, construindo um sinal de negociação mais estável.

  3. No controle de risco, pode-se definir um limite de perda para controlar a perda individual.

  4. A arbitragem de mercado cruzado pode ser ampliada para outras variedades de transações de alta relevância.

Resumir

Esta estratégia permite a negociação de arbitragem entre os mercados através de um método adaptativo de cálculo de médias móveis. Em comparação com a estratégia de médias móveis tradicionais, tem vantagens como adaptação de parâmetros, processamento suave e arbitragem entre os mercados. Em seguida, a estratégia é otimizada ainda mais por meio de aprendizado de máquina, combinação de sinais e gerenciamento de risco.

Código-fonte da estratégia
/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Crossover82%", overlay=true)

//
// Functions
//
scaleMinimax(X, p, min, max) => 
    hi = highest(X, p), lo = lowest(X, p)
    (max - min) * (X - lo)/(hi - lo) + min

rema(ts, p) => // regularized ma
    rm = 0.0, lambda = .5, a = 2 / (p + 1)
    rm := (nz(rm[1]) + a * (ts - nz(rm[1])) + lambda * (2 * nz(rm[1]) - nz(rm[2]))) / (lambda + 1)
    rm
    
//
// Inputs
//
X = input(close, title="Data source")
smooth = input(2, title="REMA smooth factor")
show_line = input(true, title="Show signal line")

//
// Main
//
p = 5
sig = rema(scaleMinimax(pow(X*p,-X) - 0.1, 100, lowest(X, 100), highest(X, 100)), smooth)

plot(show_line ? sig : na, linewidth=1)
plot(cross(sig, X) ? ohlc4 : na, style=circles, linewidth=8, color=blue, transp=50)

longCondition = crossover(sig, X)
if (longCondition)
    strategy.entry("LE", strategy.long)

shortCondition = crossunder(sig, X)
if (shortCondition)
    strategy.entry("SE", strategy.short)