[TOC]

Como sugiere su nombre, la media móvil adaptativa (KAMA) pertenece a la categoría de media móvil, pero a diferencia de la media móvil tradicional, es muy “inteligente”. Sabemos que las medias móviles ordinarias tienen muchas deficiencias. Por ejemplo, la media móvil de corto plazo está cerca de la tendencia de precios y es muy sensible, pero es fácil generar señales falsas; la media móvil de largo plazo es muy precisa al juzgar tendencias, pero a menudo el mercado tarda un tiempo en reaccionar.
La “inteligencia” de KAMA radica en su capacidad de ajustar de forma autónoma su sensibilidad en función de las condiciones actuales del mercado, es decir, la volatilidad. Su manifestación es: en un mercado volátil, los cambios en KAMA se desaceleran significativamente; cuando aparece una tendencia, reacciona rápidamente. En el trading real, su ventaja es que puede reducir los costos de transacción causados por el “desorden diario” y le permite subir a bordo a tiempo cuando el mercado despega.

Entre ellos, n, n1 y n2 son todos parámetros de período. De forma predeterminada, n son 10 períodos, n1 son 2 períodos de corto plazo y n2 son 30 períodos de largo plazo. Este es también un conjunto de parámetros reconocidos por Perry Kaufman, el autor de KAMA. n se utiliza para la eficiencia del cálculo de la dirección y la volatilidad, n1 y n2 son los períodos de la media móvil rápida y la media móvil lenta. En teoría, cuanto mayor sea la Parámetro n1, más suave será el KAMA.
El método de cálculo de KAMA es: primero calcular la dirección (DIR) y la volatilidad (VIR), y luego calcular la eficiencia en función de la relación entre ambas. La eficiencia (ER) es una medida del grado de cambio de precio y se calcula simplemente: dirección / volatilidad. El resultado del cálculo está entre 0 y 1. Cuando el valor ER está más cerca de 0, indica que el mercado se encuentra en un estado volátil. Cuando el valor ER está más cerca de 1, indica que el mercado se encuentra en un estado de tendencia.
Una vez calculada la eficiencia (ER), la constante de suavizado (CS) se puede derivar combinando el promedio móvil rápido y el promedio móvil lento: eficiencia * (rápido - lento) + lento. CS representa la velocidad del movimiento de la tendencia. Según la fórmula de cálculo de CS, podemos encontrar que el cambio de CS es siempre proporcional al cambio de ER.
Luego se calcula el coeficiente (CQ) en función de la potencia de suavizado, con el objetivo de hacer que los parámetros del ciclo lento desempeñen un papel más importante en el cálculo, lo que también es un enfoque más conservador. La suavización final de KAMA está determinada por el coeficiente (CQ). En el cálculo de KAMA, el coeficiente (CQ) determina los parámetros del período de suavización de las dos últimas medias móviles, a saber: media ponderada exponencial (media móvil dinámica (precio de cierre, coeficiente), 2).
Aunque el método de cálculo de KAMA es muy complicado, su uso es similar al de los promedios móviles ordinarios. En aplicaciones prácticas, no solo puede determinar tendencias del mercado, sino que también se puede utilizar para puntos de compra y venta precisos. Debido a que es muy “inteligente”, se puede utilizar en muchas estrategias comerciales e incluso vale la pena probarlo en monedas digitales.
Paso 1: Calcular KAMA
¡Aviso! En la esquina superior izquierda, seleccione el lenguaje de programación:My语言. Ya existe un KAMA listo para usar en la biblioteca talib, pero solo tiene un parámetro externo (n) período, y n1 y n2 tienen valores predeterminados de 2 y 30. Las estrategias de este artículo son solo de referencia. Los amigos con buenas habilidades prácticas también pueden escribir las suyas. Luego, el lenguaje My también se puede mezclar directamente con el lenguaje JavaScript. Preste atención al siguiente código:
%% // My语言内JavaScript的标准格式
scope.KAMA = function() {
var r = _C(exchange.GetRecords); // 获取K线数组
if (r.length > 140) { // 过滤K线长度
var kama = talib.KAMA(r, 140); // 调用talib库计算KAMA
return kama[kama.length - 2]; // 返回KAMA的具体数值
}
return;
}
%% // My语言内JavaScript的标准格式
Paso 2: Calcular las condiciones comerciales y realizar un pedido
%%
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; // 把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; // 平空
Paso 3: Establezca el método de filtrado de señales de estrategia
%%
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; // 启用一开一平信号过滤机制
Para acercarnos más al entorno de trading real, utilizamos un deslizamiento de 2 saltos para las posiciones de apertura y cierre para realizar pruebas de estrés durante el backtesting. El entorno de prueba es el siguiente:
Entorno de prueba
Detalles de ingresos
Curva de financiación

A juzgar por los resultados de las pruebas retrospectivas anteriores, esta sencilla estrategia de KAMA realmente estuvo a la altura de las expectativas. Incluso en el mercado súper bajista de las monedas digitales en 2018, la curva de capital no mostró un gran retroceso y el mercado se encontraba en un período volátil a largo plazo. Abrir y cerrar posiciones de ida y vuelta provocará pérdidas innecesarias. Al mismo tiempo, también tuvo un buen desempeño en el mercado alcista en 2019.
Una estrategia excelente que se pueda poner en práctica debe haber sido refinada y perfeccionada una y otra vez. Las estrategias de este artículo aún tienen mucho margen de optimización y mejora, como la adición de ciertas condiciones de filtrado, la toma de ganancias activa y el stop loss. condiciones de pérdida, etc. Como un tipo de media móvil, KAMA hereda las ventajas y desventajas de las medias móviles ordinarias y las mejora al mismo tiempo. En un mercado impredecible, incluso si se fija un “mejor parámetro”, es difícil adaptarse a las condiciones futuras del mercado. Por lo tanto, este método de seguir la tendencia y cambiar con las condiciones del mercado puede ser una mejor opción.