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.
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).
Embora o método de cálculo do 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
Para nos aproximarmos do ambiente de negociação real, usamos os 2 pips de deslizamento para testar a pressão na negociação real.
Ambiente de ensaio posterior
Detalhes dos lucros
Curva dos fundos
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.
Para mais informações, contacte-nos em:https://www.fmz.com/strategy/155663
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