Introdução da média móvel adaptativa KAMA

Autora:Bem-estar, Criado: 2019-07-24 14:09:06, Atualizado: 2023-11-08 20:42:23

img

Como o nome sugere, a média móvel (KAMA) pertence à categoria média móvel, mas ao contrário da média móvel tradicional, é muito mais inteligente do que a MA normal. Sabemos que a MA tem muitas deficiências. Por exemplo, a média móvel de curto prazo está próxima da tendência de preços, que é muito sensível, mas é fácil produzir falsos sinais. A média móvel de longo prazo é muito precisa na captura da tendência, mas geralmente reage muito devagar quando o preço do mercado se move por um tempo.

A "inteligência" do KAMA reflete-se no fato de que ele pode ser baseado no estado atual do mercado, ou seja, na volatilidade, para ajustar a sensibilidade.

Os benefícios são os seguintes: pode reduzir os custos de transacção causados pelos movimentos do preço "no dia" e pode seguir a tendência a tempo de o mercado decolar.

KAMA no gráfico

img

Método de cálculo KAMA

  • Direção (DIR) = preço de encerramento - preço de encerramento antes de n dias
  • Volatilidade (VIR) = soma ((abs (preço de encerramento - preço de encerramento do dia de negociação anterior), n)
  • Eficiência (ER) = direcção / volatilidade
  • Rápido = 2 / (n1 + 1)
  • Lento = 2 / (n2 + 1)
  • Suave (CS) = eficiência * (rápido - lento) + lento
  • Coeficiente (CQ) = liso * liso
  • KAMA = média ponderada exponencialmente (média móvel dinâmica (preço de fechamento, coeficiente), 2)

Entre eles, n, n1 e n2 são parâmetros periódicos. Por padrão, o número de ciclos n é 10, n1 é o número de ciclos de curto prazo é 2, e n2 é o número de ciclos de longo prazo é 30. Este também é um conjunto de parâmetros acordados pelo autor Perry Kaufman, n é usado para eficiência de cálculo de direção e volatilidade, n1 e n2 são o número de períodos de média móvel rápida e média móvel lenta. Teoricamente, quanto maior o parâmetro de n1, mais suave é a KAMA.

O KAMA é calculado primeiro calculando a direção (DIR) e a volatilidade (VIR), em seguida, calculando a eficiência proporcionalmente de acordo com esses dois. A eficiência (ER) é uma medida do grau de mudança de preço e é calculada de uma forma simples: direção / volatilidade. O resultado do cálculo está entre 0 e 1. Quando o valor do ER está mais próximo de 0, o mercado está em um estado de oscilação. Quando o valor do ER está mais próximo de 1, o mercado está em um estado de tendência.

Ao calcular a eficiência (ER), a constante de suavização (CS) pode ser obtida combinando a média móvel rápida e a média móvel lenta:

eficiência * (rápido - lento) + lento

CS representa a velocidade da operação de tendência. De acordo com a fórmula de cálculo de CS, podemos encontrar que a mudança de CS é sempre proporcional à mudança de ER.

Em seguida, o coeficiente (CQ) é calculado de acordo com a potência suavizada e o objetivo é fazer com que o parâmetro do ciclo lento desempenhe um papel mais importante no cálculo, que também é uma abordagem mais conservadora.

A suavidade final da KAMA é determinada pelo coeficiente (CQ). No cálculo da KAMA, o coeficiente (CQ) determina os parâmetros periódicos das duas últimas suavizações da média móvel, a saber: média ponderada exponencial (média móvel dinâmica (preço de fechamento, coeficiente), 2).

Como utilizar KAMA

Embora o método de cálculo do KAMA seja muito complicado, o método de uso é semelhante à média móvel comum. Em aplicações práticas, ele não só pode julgar a tendência do mercado, mas também pode ser usado para pontos de negociação precisos.

  • Quando o preço for superior ao KAMA e o KAMA estiver em alta, a posição longa é aberta.
  • Quando o preço é inferior ao KAMA e o KAMA está em baixa, a posição curta é aberta.
  • Quando o preço é inferior ao KAMA, ou o KAMA está em baixa, a posição longa é fechada.
  • Quando o preço for superior ao KAMA, ou o KAMA estiver em alta, a posição curta é fechada.

Construção de uma estratégia de negociação baseada no KAMA

Passo 1: calcular o KAMA

Observe que no canto superior esquerdo, selecione a linguagem de programação: Meu idioma. Já existe um KAMA pronto na biblioteca talib, mas ele tem apenas um ciclo de parâmetro externo (n), e n1 e n2 são padrão para 2 e 30.

As estratégias neste artigo são usadas apenas como referências. Os leitores com forte habilidade de programação podem escrever seus próprios. Durante o processo de programação do meu idioma, também podemos misturar com a linguagem JavaScript, preste atenção ao seguinte código:

%% // Standard format for JavaScript within My language
scope.KAMA = function() {
    var r = _C(exchange.GetRecords); // Get the K line array
    if (r.length > 140) { // filter the length of the K line
        var kama = talib.KAMA(r, 140); // Call talib library to calculate KAMA
        Return kama[kama.length - 2]; // return the specific value of KAMA
    }
    Return;
}
%% // Standard format for JavaScript within My language

Passo 2: Calcular as condições de negociação e realizar uma encomenda

%%
scope.KAMA = function() {
    var r = _C(exchange.GetRecords);
    if (r.length > 140) {
        var kama = talib.KAMA(r, 140);
        Return kama[kama.length - 2];
    }
    Return;
}
%%

K^^KAMA; // Print KAMA on the chart
A:CLOSE; // print the closing price on the chart

K > REF(K, 1) && CLOSE > K,BK; // Open long position
K < REF(K, 1) && CLOSE < K,SK; // Open short position
K < REF(K, 1) || CLOSE < K,SP; // close long position
K > REF(K, 1) || CLOSE > K,BP; // close short position

Passo 3: Definir o método de filtragem do sinal de estratégia

%%
scope.KAMA = function() {
    var r = _C(exchange.GetRecords);
    if (r.length > 140) {
        var kama = talib.KAMA(r, 140);
        Return kama[kama.length - 2];
    }
    Return;
}
%%

K^^KAMA;
A:CLOSE;

K > REF(K, 1) && CLOSE > K,BK;
K < REF(K, 1) && CLOSE < K,SK;
K < REF(K, 1) || CLOSE < K,SP;
K > REF(K, 1) || CLOSE > K,BP;

AUTOFILTER; // Enable one open and one close signal filtering mechanism

Backtest da estratégia

Para nos aproximarmos do ambiente de negociação real, usamos os 2 pips de deslizamento para testar a pressão na negociação real.

  • Bolsa: BitMEX
  • Variedade de negociação: XBTUSD
  • Tempo: 01 de julho de 2017 ~ 01 de julho de 2019
  • Ciclo da linha K: linha diária
  • Deslizamento: 2 pips para posições de abertura e fechamento

Ambiente de ensaio posterior

img

Detalhes dos lucros

img

Curva dos fundos

img

A partir dos resultados do backtest acima, esta simples estratégia KAMA realmente está à altura das expectativas. Mesmo no super-big bear market da criptomoeda em 2018, a curva de capital não mostrou uma grande retração, e não houve posição aberta e fechada repetidamente no período de choque de longo prazo no mercado causando perdas desnecessárias.

Código fonte da estratégia

Para mais informações, contacte-nos em:https://www.fmz.com/strategy/155663

Resumo

Uma excelente estratégia que pode ser uma estratégia firme deve ser polida. As estratégias neste artigo têm muito espaço para otimizar e atualizar, como adicionar certas condições de filtragem, condições de stop-loss e stop-loss ativas. Como uma espécie de média móvel, a KAMA herda as vantagens e desvantagens das médias móveis comuns e, ao mesmo tempo, sublima. Em um mercado imprevisível, mesmo que você fique com um parâmetro best, é difícil se adaptar ao mercado futuro. Portanto, esse método de mudar com a tendência e mudar com o mercado pode ser uma escolha melhor.


Mais.